Вы читаете эти строки со смартфона, планшета или компьютера. Любое из этих устройств основано на микропроцессоре. Микропроцессор является «сердцем» любого компьютерного устройства. Существует много типов микропроцессоров, но все они решают одни и те же задачи. Сегодня мы поговорим о том, как процессор работает и какие задачи он выполняет. На первый взгляд все это представляется очевидным. Но очень многим пользователям было бы интересно углубить свои знания о важнейшем компоненте, обеспечивающем работу компьютера. Мы узнаем о том, как технология, основанная на простой цифровой логике, позволяет вашему компьютеру не только решать математические задачи, но и быть развлекательным центром. Как всего две цифры — единица и ноль — преобразуются в красочные игры и фильмы? Этот вопрос многие неоднократно задавали себе и будут рады получить на него ответ. Ведь даже в основе недавно нами процессора AMD Jaguar, на котором базируются новейшие игровые приставки, лежит та же древняя логика.

В англоязычной литературе микропроцессор часто называют CPU (central processing unit, [единым] модулем центрального процессора). Причина такого названия кроется в том, что современный процессор представляет собою единый чип. Первый микропроцессор в истории человечества был создан корпорацией в далеком 1971 году.

Роль Intel в истории микропроцессорной индустрии


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

Первым микропроцессором для домашних компьютеров стал представленный в 1974 году Intel 8080. Вся вычислительная мощность 8-битного компьютера помещалась в одном чипе. Но по-настоящему большое значение имел анонс процессора Intel 8088. Он появился в 1979 году и с 1981 года стал использоваться в первых массовых персональных компьютерах IBM PC.

Далее процессоры начали развиваться и обрастать мощью. Каждый, кто хоть немного знаком с историей микропроцессорной индустрии, помнит, что на смену 8088 пришли 80286. Затем настал черед 80386, за которым следовали 80486. Потом были несколько поколений «Пентиумов»: Pentium, Pentium II, III и Pentium 4. Все это «интеловские» процессоры, основанные на базовой конструкции 8088. Они обладали обратной совместимостью. Это значит, что Pentium 4 мог обработать любой фрагмент кода для 8088, но делал это со скоростью, возросшей примерно в пять тысяч раз. С тех пор прошло не так много лет, но успели смениться еще несколько поколений микропроцессоров.


С 2004 года Intel начала предлагать многоядерные процессоры. Число используемых в них транзисторов возросло на миллионы. Но даже сейчас процессор подчиняется тем общим правилам, которые были созданы для ранних чипов. В таблице отражена история микропроцессоров Intel до 2004 года (включительно). Мы сделаем некоторые пояснения к тому, что означают отраженные в ней показатели:
  • Name (Название). Модель процессора
  • Date (Дата). Год, в который процессор был впервые представлен. Многие процессоры представляли многократно, каждый раз, когда повышалась их тактовая частота. Таким образом, очередная модификация чипа могла быть повторно анонсирована даже через несколько лет после появления на рынке первой его версии
  • Transistors (Количество транзисторов). Количество транзисторов в чипе. Вы можете видеть, что этот показатель неуклонно увеличивался
  • Microns (Ширина в микронах). Один микрон равен одной миллионной доле метра. Величина этого показателя определяется толщиной самого тонкого провода в чипе. Для сравнения, толщина человеческого волоса составляет 100 микрон
  • Clock speed (Тактовая частота). Максимальная скорость работы процессора
  • Data Width. «Битность» арифметико-логического устройства процессора (АЛУ, ALU). 8-битное АЛУ может слагать, вычитать, умножать и выполнять иные действия над двумя 8-битными числами. 32-битное АЛУ может работать с 32-битными числами. Чтобы сложить два 32-битных числа, восьмибитному АЛУ необходимо выполнить четыре инструкции. 32-битное АЛУ справится с этой задачей за одну инструкцию. Во многих (но не во всех) случаях ширина внешней шины данных совпадает с «битностью» АЛУ. Процессор 8088 обладал 16-битным АЛУ, но 8-битной шиной. Для поздних «Пентиумов» была характерна ситуация, когда шина была уже 64-битной, а АЛУ по-прежнему оставалось 32-битным
  • MIPS (Миллионов инструкций в секунду). Позволяет приблизительно оценить производительность процессора. Современные микропроцессоры выполняют настолько много разных задач, что этот показатель потерял свое первоначальное значение и может использоваться, в основном, для сравнения вычислительной мощности нескольких процессоров (как в данной таблице)

Существует непосредственная связь между тактовой частотой, а также количеством транзисторов и числом операций, выполняемых процессором за одну секунду. Например, тактовая частота процессора 8088 достигала 5 МГЦ, а производительность: всего 0,33 миллиона операций в секунду. То есть на выполнение одной инструкции требовалось порядка 15 тактов процессора. В 2004 году процессоры уже могли выполнять по две инструкции за один такт. Это улучшение было обеспечено увеличением количества процессоров в чипе.

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

Логика микропроцессора


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

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

  • C помощью своего арифметико-логического устройства, процессор выполняет математические действия: сложение, вычитание, умножение и деление. Современные микропроцессоры полностью поддерживают операции с плавающей точкой (с помощью специального арифметического процессора операций с плавающей точкой)
  • Микропроцессор способен перемещать данные из одного типа памяти в другой
  • Микропроцессор обладает способностью принимать решение и, на основании принятого им решения, «перепрыгивать», то есть переключаться на выполнение нового набора команд

Микропроцессор содержит:

  • Address bus (адресную шину). Ширина этой шины может составлять 8, 16 или 32 бита. Она занимается отправкой адреса в память
  • Data bus (шину данных): шириной 8, 16, 32 или 64 бита. Эта шина может отправлять данные в память или принимать их из памяти. Когда говорят о «битности» процессора, речь идет о ширине шины данных
  • Каналы RD (read, чтения) и WR (write, записи), обеспечивающие взаимодействие с памятью
  • Clock line (шина синхронизирующих импульсов), обеспечивающая такты процессора
  • Reset line (шина стирания, шина сброса), обнуляющая значение счетчика команд и перезапускающая выполнение инструкций

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

  • Регистры A, B и C являются логическими микросхемами, используемыми для промежуточного хранения данных
  • Address latch (защелка адреса) подобна регистрам A, B и C
  • Счетчик команд является логической микросхемой (защелкой), способной приращивать значение на единицу за один шаг (если им получена соответствующая команда) и обнулять значение (при условии получения соответствующей команды)
  • ALU (арифметико-логическое устройство) может осуществлять между 8-битными числами действия сложения, вычитания, умножения и деления или выступать в роли обычного сумматора
  • Test register (тестовый регистр) является специальной защелкой, которая хранит результаты операций сравнения, производимых АЛУ. Обычно АЛУ сравнивает два числа и определяет, равны ли они или одно из них больше другого. Тестовый регистр способен также хранить бит переноса последнего действия сумматора. Он хранит эти значения в триггерной схеме. В дальнейшем эти значения могут использоваться дешифратором команд для принятия решений
  • Шесть блоков на диаграмме отмечены, как «3-State». Это буферы сортировки. Множество источников вывода могут быть соединены с проводом, но буфер сортировки позволяет только одному из них (в один момент времени) передавать значение: «0» или «1». Таким образом буфер сортировки умеет пропускать значения или перекрывать источнику вывода возможность передавать данные
  • Регистр команд (instruction register) и дешифратор команд (instruction decoder) держат все вышеперечисленные компоненты под контролем

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

  • «Регистру A принять значение, поступающее в настоящий момент от шины данных»
  • «Регистру B принять значение, поступающее в настоящий момент от шины данных»
  • «Регистру C принять значение, поступающее в настоящий момент от арифметико-логического устройства»
  • «Регистру счетчика команд принять значение, поступающее в настоящий момент от шины данных»
  • «Адресному регистру принять значение, поступающее в настоящий момент от шины данных»
  • «Регистру команд принять значение, поступающее в настоящий момент от шины данных»
  • «Счетчику команд увеличить значение [на единицу]»
  • «Счетчику команд обнулиться»
  • «Активировать один из из шести буферов сортировки» (шесть отдельных линий управления)
  • «Сообщить арифметико-логическому устройству, какую операцию ему выполнять»
  • «Тестовому регистру принять тестовые биты из АЛУ»
  • «Активировать RD (канал чтения)»
  • «Активировать WR (канал записи)»

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

Память микропроцессора


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

Выше мы писали о шинах (адресной и данных), а также о каналах чтения (RD) и записи (WR). Эти шины и каналы соединены с памятью: оперативной (ОЗУ, RAM) и постоянным запоминающим устройством (ПЗУ, ROM). В нашем примере рассматривается микропроцессор, ширина каждой из шин которого составляет 8 бит. Это значит, что он способен выполнять адресацию 256 байт (два в восьмой степени). В один момент времени он может считывать из памяти или записывать в нее 8 бит данных. Предположим, что этот простой микропроцессор располагает 128 байтами ПЗУ (начиная с адреса 0) или 128 байтами оперативной памяти (начиная с адреса 128).

Модуль постоянной памяти содержит определенный предварительно установленный постоянный набор байт. Адресная шина запрашивает у ПЗУ определенный байт, который следует передать шине данных. Когда канал чтения (RD) меняет свое состояние, модуль ПЗУ предоставляет запрошенный байт шине данных. То есть в данном случае возможно только чтение данных.

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

Более того, теоретически компьютер может обойтись и вовсе без оперативной памяти. Многие микроконтроллеры позволяют размещать необходимые байты данных непосредственно в чип процессора. Но без ПЗУ обойтись невозможно. В персональных компьютерах ПЗУ называется базовой системой ввода и вывода (БСВВ, BIOS, Basic Input/Output System). Свою работу при запуске микропроцессор начинает с выполнения команд, найденных им в BIOS.

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

Инструкции микропроцессора


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

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

  • LOADA mem — Загрузить (load) регистр A из некоторого адреса памяти
  • LOADB mem — Загрузить (load) регистр B из некоторого адреса памяти
  • CONB con — Загрузить постоянное значение (constant value) в регистр B
  • SAVEB mem — Сохранить (save) значение регистра B в памяти по определенному адресу
  • SAVEC mem — Сохранить (save) значение регистра C в памяти по определенному адресу
  • ADD — Сложить (add) значения регистров A и B. Результат действия сохранить в регистре C
  • SUB — Вычесть (subtract) значение регистра B из значения регистра A. Результат действия сохранить в регистре C
  • MUL — Перемножить (multiply) значения регистров A и B. Результат действия сохранить в регистре C
  • DIV — Разделить (divide) значение регистра A на значение регистра B. Результат действия сохранить в регистре C
  • COM — Сравнить (compare) значения регистров A и B. Результат передать в тестовый регистр
  • JUMP addr — Перепрыгнуть (jump) к указанному адресу
  • JEQ addr — Если выполняется условие равенства значений двух регистров, перепрыгнуть (jump) к указанному адресу
  • JNEQ addr — Если условие равенства значений двух регистров не выполняется, перепрыгнуть (jump) к указанному адресу
  • JG addr — Если значение больше, перепрыгнуть (jump) к указанному адресу
  • JGE addr — Если значение больше или равно, перепрыгнуть (jump) к указанному адресу
  • JL addr — Если значение меньше, перепрыгнуть (jump) к указанному адресу
  • JLE addr — Если значение меньше или равно, перепрыгнуть (jump) к указанному адресу
  • STOP — Остановить (stop) выполнение

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

Работа микропроцессора на примере вычисления факториала


Рассмотрим работу микропроцессора на конкретном примере выполнения им простой программы, которая вычисляет факториал от числа «5». Сначала решим эту задачку «в тетради»:

факториал от 5 = 5! = 5 * 4 * 3 * 2 * 1 = 120

На языке программирования C этот фрагмент кода, выполняющего данное вычисление, будет выглядеть следующим образом:

A=1;f=1;while (a

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

Компилятор C транслирует (то есть переводит) этот код в набор инструкций языка ассемблера. В рассматриваемом нами процессоре оперативная память начинается с адреса 128, а постоянная память (которая содержит язык ассемблера) начинается с адреса 0. Следовательно, на языке данного процессора эта программа будет выглядеть так:

// Предположим, что a по адресу 128// Предположим, что F по адресу 1290 CONB 1 // a=1;1 SAVEB 1282 CONB 1 // f=1;3 SAVEB 1294 LOADA 128 // if a > 5 the jump to 175 CONB 56 COM7 JG 178 LOADA 129 // f=f*a;9 LOADB 12810 MUL11 SAVEC 12912 LOADA 128 // a=a+1;13 CONB 114 ADD15 SAVEC 12816 JUMP 4 // loop back to if17 STOP

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

  • LOADA — 1
  • LOADB — 2
  • CONB — 3
  • SAVEB — 4
  • SAVEC mem — 5
  • ADD — 6
  • SUB — 7
  • MUL — 8
  • DIV — 9
  • COM — 10
  • JUMP addr — 11
  • JEQ addr — 12
  • JNEQ addr — 13
  • JG addr — 14
  • JGE addr — 15
  • JL addr — 16
  • JLE addr — 17
  • STOP — 18

// Предположим, что a по адресу 128// Предположим, что F по адресу 129Addr машинная команда/значение0 3 // CONB 11 12 4 // SAVEB 1283 1284 3 // CONB 15 16 4 // SAVEB 1297 1298 1 // LOADA 1289 12810 3 // CONB 511 512 10 // COM13 14 // JG 1714 3115 1 // LOADA 12916 12917 2 // LOADB 12818 12819 8 // MUL20 5 // SAVEC 12921 12922 1 // LOADA 12823 12824 3 // CONB 125 126 6 // ADD27 5 // SAVEC 12828 12829 11 // JUMP 430 831 18 // STOP

Как вы заметили, семь строчек кода на языке C были преобразованы в 18 строчек на языке ассемблера. Они заняли в ПЗУ 32 байта.

Декодирование


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

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

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

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

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

Микропроцессоры: производительность и тенденции


Количество транзисторов в процессоре является важным фактором, влияющим на его производительность. Как было показано ранее, в процессоре 8088 на выполнение одной инструкции требовалось 15 циклов тактовой частоты. А чтобы выполнить одну 16-битную операцию, уходило и вовсе порядка 80 циклов. Так был устроен умножитель АЛУ этого процессора. Чем больше транзисторов и чем мощнее умножитель АЛУ, тем больше всего успевает сделать процессор за один свой такт.

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

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

64-битные процессоры


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

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

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

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

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

По материалам computer.howstuffworks.com

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

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

Архитектура

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

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

Ядра

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

  1. Модуль выборки инструкций. Здесь осуществляется распознавание инструкций по адресу, который обозначается в счетчике команд. Число одновременного считывания команд напрямую зависит от количества установленных блоков расшифровки, что помогает нагрузить каждый такт работы наибольшим количеством инструкций.
  2. Предсказатель переходов отвечает за оптимальную работу блока выборки инструкций. Он определяет последовательность исполняемых команд, нагружая конвейер ядра.
  3. Модуль декодирования. Данная часть ядра отвечает за определения некоторых процессов для выполнения задач. Сама задача декодирования очень сложная из-за непостоянного размера инструкции. В самых новых процессорах таких блоков встречается несколько в одном ядре.
  4. Модули выборки данных. Они берут информацию из оперативной или кэш-памяти. Осуществляют они именно выборку данных, которая необходима на этот момент для исполнения инструкции.
  5. Управляющий блок. Само название говорит уже о важности данного компонента. В ядре он является главнейшим элементом, поскольку производит распределение энергии между всеми блоками, помогая выполнять каждое действие вовремя.
  6. Модуль сохранения результатов. Предназначен для записи после окончания обработки инструкции в RAM. Адрес сохранения указывается в исполняющейся задаче.
  7. Элемент работы с прерываниями. ЦП способен выполнять сразу несколько задач благодаря функции прерывания, это позволяет ему останавливать ход работы одной программы, переключаясь на другую инструкцию.
  8. Регистры. Здесь хранятся временные результаты инструкций, данный компонент можно назвать небольшой быстрой оперативной памятью. Часто ее объем не превышает несколько сотен байт.
  9. Счетчик команд. Он хранит в себе адрес команды, которая будет задействована на следующем такте процессора.

Системная шина

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

Кэш-память

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

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

Сокет (разъем)

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

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

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

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

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

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

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

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

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

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

  • УУ на жёсткой логике (англ. 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).

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

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

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

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

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

Из чего состоит процессор

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

Почти все современные процессоры состоят из следующих компонентов:

  1. Несколько ядер (редко 2, чаще 4 или 8), которые выполняют все функции. По сути, ядро представляет собой отдельный миниатюрный процессор. Несколько интегрированных в основной чип ядер параллельно работают над задачами, что ускоряет процесс обработки данных. Однако не всегда большее количество ядер означает более быструю работу чипа.
  2. Несколько уровней памяти КЭШ (2 или 3), благодаря чему время взаимодействия ОЗУ и процессора сокращается. Если информация находится в КЭШе, то время доступа к ней минимизировано. Следовательно, чем большим будет объем КЭШа, тем больше информации в него поместится и тем быстрее будет сам процессор.
  3. Контроллер ОЗУ и системной шины.
  4. Регистры ‒ ячейки памяти, где хранятся обрабатываемые данные. Они всегда имеют ограниченный размер (8, 16 или 32 бит).
  5. Сопроцессор. Отдельное ядро, которое предназначается для выполнения операций определенного типа. Чаще всего в виде сопроцессора выступает графическое ядро (видеокарта).
  6. Адресная шина, которая связывает чип со всеми подключенными к материнской плате устройствами.
  7. Шина данных - для связи процессора с оперативной памятью. По сути, шина представляет собой набор проводников, посредством которых передается или принимается электрический сигнал. И чем больше будет проводников, тем лучше.
  8. Шина синхронизации - позволяет контролировать такты и частоту работы процессора.
  9. Шина перезапуска - обнуляет состояние чипа.

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

Ядра

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

  1. Блок выборки, декодирования и выполнения инструкций.
  2. Блок сохранения результатов.
  3. Блок счетчика команд и т.д.

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

Задача ядер

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

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

Регистры

Из чего состоит процессор еще, кроме ядер? Регистры - второй важный его компонент. Как вы уже знаете, это быстрые ячейки памяти, где находятся обрабатываемые данные. Они бывают разными:

  1. A, B, C - используются для хранения информации во время обработки. Их всего три, но этого достаточно.
  2. EIP - в этом регистре хранится адрес следующей в очереди инструкции.
  3. ESP - адрес данных в ОЗУ.
  4. Z - здесь находится результат последней операции сравнения.

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

Заключение

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

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

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

А начнем с того, что уберем процессор из системного блока. В итоге компьютер не будет работать. Теперь понимаете, какую роль он играет? Но давайте более детально изучим вопрос и узнаем что такое процессор компьютера.

Что такое процессор компьютера

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

Более техническое определение можно найти в Википеди:

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

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

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

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

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

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

Деятельность ЦП можно представить последовательностью следующих событий:

  • Из ОЗУ, куда загрузилась определенная программа (допустим текстовый редактор), управляющий блок процессора извлекает необходимые сведения, а также набор команд, которые обязательно нужно выполнить. Все это отправляется в буферную память (кэш) ЦП;
  • Выходящая из кэш-памяти информация разделяется на два вида: инструкции и значения , которые отправляются в регистры (это такие ячейки памяти в процессоре). Первые идут в регистры команд, а вторые в регистры данных;
  • Информацию из регистров обрабатывает арифметико-логическое устройство (часть ЦПУ, которая выполняет арифметические и логические преобразования поступающих данных), которое из них считывает информацию, а за тем исполняет необходимые команды над получившимися в итоге числами;
  • Получившиеся результаты, разделяющиеся на законченные и незаконченные , идут в регистры, откуда первая группа отправляется в кэш-память ЦП;
  • Этот пункт начнем с того, что есть два основных уровня кэша: верхний и нижний . Последние полученные команды и данные, нужные для выполнения расчетов, поступают в кэш верхнего уровня, а неиспользуемые отправляются в кэш нижнего уровня. Этот процесс идёт следующим образом — вся информация идёт с третьего уровня кэша на второй, а потом попадает на первый, с не нужными на текущий момент данными и их отправкой на нижний уровень все обстоит наоборот;
  • По окончанию вычислительного цикла, конечный итог будет записан в оперативной памяти системы, для освобождения места кэш-памяти ЦП для новых операций. Но может произойти так, что буферная память будет переполнена, тогда неэксплуатируемые данные пойдут в оперативную память, или на нижний уровень кэша.

Поэтапные шаги вышеприведенных действий являются операционным потоком процессора и ответом на вопрос – как работает процессор.

Виды процессоров и основные их производители

Существует множество видов процессоров от слабых одноядерных, до мощных многоядерных. От игровых и рабочих до средних по всем параметрам. Но, есть два основных лагеря ЦП – AMD и знаменитые Intel. Это две компании, производящие самые востребованные и популярные микропроцессоры на рынке. Основное различие между продукцией AMD и Intel – не количество ядер, а архитектура – внутреннее строение. Каждый из конкурентов предлагает свое строение «внутренностей», свой вид процессора, кардинально отличающуюся от конкурента.

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

Плюсы процессоров Intel :

  • Обладает более низким потреблением энергии;
  • Разработчики больше ориентируются на Интел, чем на АМД;
  • Лучше производительность в играх;
  • Связь процессоров Интел с ОЗУ реализована лучше, нежели у АМД;
  • Операции, осуществляемые в рамках только одной программы (на пример разархивирование) идут лучше, АМД в этом плане поигрывает.

Минусы процессоров Intel :

  • Самый большой минус – цена. ЦП от данного производителя зачастую на порядок выше чем у их главного конкурента;
  • Производительность снижается при использовании двух и более «тяжелых» программ;
  • Интегрированные графические ядра уступают АМД;

Плюсы процессоров AMD :

  • Самый большой плюс — самый большой минус Intel – цена. Вы можете купить хороший середнячок от AMD, который будет на твердую 4, а может даже и 5 тянуть современные игры, при этом стоить он будет намного ниже чем аналогичный по производительности процессор от конкурента;
  • Адекватное соотношение качества и цены;
  • Обеспечивают качественную работу системы;
  • Возможность разгона процессора, повышая тем самым его мощность на 10-20%;
  • Интегрированные графические ядра превосходят Интел.

Минусы процессоров AMD :

  • Процессоры от АМД хуже взаимодействуют с ОЗУ;
  • Энергопотребление больше, чем у Интел;
  • Работа буферной памяти на втором и третьем уровне идёт на более низкой частоте;
  • Производительность в играх отстает от показателей конкурента;

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

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

Мы рассмотрели, что такое процессор компьютера, как он работает. Ознакомились с тем, что из себя представляют два основных их вида, время обратить внимание на их характеристики.

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

  • Бренд – кто производит процессор: AMD, или Intel. От данного выбора зависит не только цена приобретения, и производительность, как можно было бы предположить из предыдущего раздела, но также и выбор остальных комплектующих ПК, в частности, материнской платы. Поскольку процессоры от АМД и Интел имеют различную конструкцию и архитектуру, то в сокет (гнездо для установки процессора на материнской плате) предназначенный под один тип процессора, нельзя будет установить второй;
  • Серия – оба конкурента делят свою продукцию на множество видов и подвидов. (AMD — Ryzen, FX,. Intel- i5, i7);
  • Архитектура процессора – фактически внутренние органы ЦП, каждый вид процессоров имеет индивидуальную архитектуру. В свою очередь один вид можно разделить на несколько подвидов;
  • Поддержка определенного сокета - очень важная характеристика процессора, поскольку сам сокет является «гнездом» на материнской плате для подсоединения процессора, а каждый вид процессоров требует соответствующий ему разъем. Собственно об этом было сказано выше. Вам либо нужно точно знать какой сокет расположен на вашей материнской плате и под нее подбирать процессор, либо наоборот (что более правильно);
  • Тактовая частота – один из значимых показателей производительности ЦП. Давайте ответим на вопрос что такое тактовая частота процессора. Ответ будет простым для этого грозного термина — объем операций выполняющихся в единицу времени, измеряющийся в мегагерцах (МГц);
  • Кэш - установленная прямо в процессор память, её ещё называют буферной памятью, имеет два уровня — верхний и нижний. Первый получает активную информацию, второй – неиспользуемую на данный момент. Процесс получения информации идет с третьего уровня во второй, а потом в первый, ненужная информация проделывает обратный путь;
  • Количество ядер - в ЦП их может быть от одного до нескольких. В зависимости от количества процессор будет называться двухъядерных, четырех ядерным и т.д. Соответственно от их числа будет зависеть мощность;
  • Энергопотребление и тепловыделение. Тут все просто – чем выше процессор «съедает» энергии, тем больше тепла он выделит, обращайте внимание на этот пункт, чтобы выбрать соответствующий кулер охлаждения и блок питания.
  • Интегрированная графика – у AMD первые такие разработки появились в 2006, у Intel с 2010. Первые показывают больший результат, чем конкуренты. Но все равно, до флагманских видеокарт пока ни один из них не смог дотянуть.

Выводы

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




Close