Как работает процессор?
Инструмент проще, чем машина. Зачастую инструментом работают руками, а машину приводит в действие паровая сила или животное.
Компьютер тоже можно назвать машиной, только вместо паровой силы здесь электричество. Но программирование сделало компьютер таким же простым, как любой инструмент.
Процессор — это сердце/мозг любого компьютера. Его основное назначение — арифметические и логические операции, и прежде чем погрузиться в дебри процессора, нужно разобраться в его основных компонентах и принципах их работы.
Функции CPU
Какие функции выполняет центральный процессор CPU? Главная функция ― управление всеми операциями компьютера: от простейших сложений чисел на калькуляторе до запуска компьютерных игр. Если рассматривать основные функции центрального процессора подробнее, CPU:
- получает данные из оперативной памяти, выполняет с ними арифметические и логические операции, передаёт их на внешние устройства,
- формирует сигналы, необходимые для работы внутренних узлов и внешних устройств,
- временно хранит результаты выполненных операций, переданных сигналов и других данных,
- принимает запросы от внешних устройств и обрабатывает их.
Устройство CPU
Любой CPU имеет вычислительное ядро (иногда их бывает несколько), а также кэш, то есть собственную оперативную память. Кэш обычно имеет два уровня – первый и второй (внутренний и внешний). Внутренний имеет меньший объем, но обладает большим быстродействием по сравнению с внешним. Емкость кэша второго уровня современных CPU составляет несколько мегабайт – больше, чем оперативная память первых персональных компьютеров!
В ядре CPU находится несколько функциональных блоков – блок управления, блок выборки инструкций, блок вычислений с плавающей точкой, блок целочисленных вычислений, и.т.д. Также в ядре располагаются главные регистры processor-а, в которых находятся обрабатываемые в определенный момент данные. В классической схеме микропроцессора архитектуры х86 этих регистров всего 16.
На сегодняшний день наибольшее распространение получили две основные разновидности процессоров – CISC (Complex Instruction Set Computing) и RISC (Reduced Instruction Set Computing). В CISC-процессорах мало внутренних регистров, но они поддерживают большой набор команд. В RISC-процессорах регистров много, зато набор команд ограничен. Традиционно микропроцессоры для персональных компьютеров архитектуры Intel х86 принадлежали к классу CISC-процессоров, однако в настоящее время большинство микропроцессоров представляют собой гибрид этих двух архитектур.
Если рассмотреть CPU на аппаратном уровне, то он является, по сути, огромной микросхемой, расположенной на цельном кристалле кремния, в которой содержатся миллионы, а то и миллиарды транзисторов. Чем меньше размеры транзисторов, тем больше их содержится на единицу площади CPU, и тем больше его вычислительная мощность. Кроме того, от размеров транзисторов зависит энерговыделение и энергопотребление процессора — чем меньше их размер, тем эти характеристики процессора меньше. Этот фактор немаловажен, так как CPU является наиболее энергоемким устройством современного ПК. Поэтому проблема уменьшения нагрева процессора входит в число самых важных, стоящих перед разработчиками ПК и самих процессоров.
Отдельно стоит сказать о корпусе, в котором находится CPU. Обычно материалом корпуса процессора служит керамика или пластик. Первоначально процессоры намертво впаивались в системную плату, сейчас же большинство вставляются в специальные гнезда – сокеты. Такой подход заметно упростил модернизацию системы пользователем – достаточно вставить в разъем другой CPU, поддерживаемый данной системной платой, и вы получите более мощный компьютер.
С другими устройствами процессор связан при помощи специальных каналов связи (шин) – шины памяти, шины данных и шины адреса. Разрядность последней очень важна, поскольку от этого параметра зависит объем доступной CPU, а значит, и программам, оперативной памяти.
Память микропроцессора
Знакомство с подробностями, касающимися компьютерной памяти и ее иерархии помогут лучше понять содержание этого раздела.
Выше мы писали о шинах (адресной и данных), а также о каналах чтения (RD) и записи (WR). Эти шины и каналы соединены с памятью: оперативной (ОЗУ, RAM) и постоянным запоминающим устройством (ПЗУ, ROM). В нашем примере рассматривается микропроцессор, ширина каждой из шин которого составляет 8 бит. Это значит, что он способен выполнять адресацию 256 байт (два в восьмой степени). В один момент времени он может считывать из памяти или записывать в нее 8 бит данных. Предположим, что этот простой микропроцессор располагает 128 байтами ПЗУ (начиная с адреса 0) или 128 байтами оперативной памяти (начиная с адреса 128).
Модуль постоянной памяти содержит определенный предварительно установленный постоянный набор байт. Адресная шина запрашивает у ПЗУ определенный байт, который следует передать шине данных. Когда канал чтения (RD) меняет свое состояние, модуль ПЗУ предоставляет запрошенный байт шине данных. То есть в данном случае возможно только чтение данных.
Из оперативной памяти процессор может не только считывать информацию, он способен также записывать в нее данные. В зависимости от того, чтение или запись осуществляется, сигнал поступает либо через канал чтения (RD), либо через канал записи (WR). К сожалению, оперативная память энергозависима. При отключении питания она теряет все размещенные в ней данные. По этой причине компьютеру необходимо энергонезависимое постоянное запоминающее устройство.
Более того, теоретически компьютер может обойтись и вовсе без оперативной памяти. Многие микроконтроллеры позволяют размещать необходимые байты данных непосредственно в чип процессора. Но без ПЗУ обойтись невозможно. В персональных компьютерах ПЗУ называется базовой системой ввода и вывода (БСВВ, BIOS, Basic Input/Output System). Свою работу при запуске микропроцессор начинает с выполнения команд, найденных им в BIOS.
Команды BIOS выполняют тестирование аппаратного обеспечения компьютера, а затем они обращаются к жесткому диску и выбирают загрузочный сектор. Этот загрузочный сектор является отдельной небольшой программой, которую BIOS сначала считывает с диска, а затем размещает в оперативной памяти. После этого микропроцессор начинает выполнять команды расположенного в ОЗУ загрузочного сектора. Программа загрузочного сектора сообщает микропроцессору о том, какие данные (предназначенные для последующего выполнения процессором) следует дополнительно переместить с жесткого диска в оперативную память. Именно так происходит процесс загрузки процессором операционной системы.
Типы процессоров
Основной компанией, выпускающей ЦП для ПК, является компания Intel. Первым процессором для ПК был процессор $8086$. Следующей моделью была $80286$, далее $80386$, со временем цифру $80$ стали опускать и ЦП стали называть тремя цифрами: $286$, $386$ и т.д. Поколение процессоров часто называют семейством $x86$. Выпускаются и другие модели процессоров, например, семейства Alpha, Power PC и др. Компаниями-производителями ЦП также являются AMD, Cyrix, IBM, Texas Instruments.
В названии процессора часто можно встретить символы $X2$, $X3$, $X4$, что означает количество ядер. Например в названии Phenom $X3$ $8600$ символы $X3$ указывают на наличие трех ядер.
Итак, основными типами ЦП являются $8086$, $80286$, $80386$, $80486$, Pentium, Pentium Pro, Pentium MMX, Pentium II, Pentium III и Pentium IV. Celeron является урезанным вариантом процессора Pentium. После названия обычно указывается тактовая частота ЦП. Например, Celeron $450$ обозначает тип ЦП Celeron и его тактовую частоту – $450$ МГц.
Процессор нужно устанавливать на материнскую плату с соответствующей процессору частотой системной шины.
В последних моделях ЦП реализован механизм защиты от перегрева, т.е. ЦП при повышении температуры выше критической переходит на пониженную тактовую частоту, при которой потребляется меньше электроэнергии.
Если в вычислительной системе несколько параллельно работающих процессоров, то такие системы называются многопроцессорными.
Что значит электронное и цифровое устройство
Рассмотрим устройство процессора компьютера. Сначала расшифруем отдельно прилагательные «электронное» и «цифровое».
Прилагательное «электронное» означает, что процессор компьютера работает на электрической энергии и все сигналы, которые обрабатываются этим устройством, являются электрическими.
Вместе с тем в радиоэлектронике электронные устройства делятся на 2 больших класса: аналоговые и цифровые.
Прилагательное «цифровое» означает, что процессор компьютера относится к классу цифровых, а не аналоговых устройств.
Упомянутые аналоговые устройства преобладали среди радиоэлектронной аппаратуры 20-30 лет назад. А появились они тогда, когда радиоинженеры научились записывать и передавать звук и изображение в виде аналоговых сигналов. Это были радиоприемники, телевизоры, магнитофоны и т.п.
Аналоговые устройства уступили пальму первенства лишь в конце прошлого века, когда развитие цифровых устройств привело к тому, что с помощью цифровых кодов научились записывать и передавать любую информацию, включая уже упомянутые звуки и изображения.
Цифровые сигналы в отличие от аналоговых в незначительной степени подвержены помехам и без искажения передаются на расстояния. Они лучше записываются, хранятся и не «портятся» со временем.
Подведение итогов
Процессоры — неотъемлемая часть компьютера. Он отвечает за обработку данных, которые позволяют запускать программы на вашем компьютере. В последние годы процессоры значительно улучшились.
Внедрение многоядерных процессоров, а также новые инновации, такие как гиперпоточность, позволяют нашим компьютерам работать быстрее и эффективнее.
Подытожим на примере
Чтобы подвести итоги, кратко рассмотрим архитектуру процессора Intel Core 2. Это было еще в 2006 году, поэтому некоторые детали могут быть устаревшими, но информации о новых разработках отсутствуют в публичном доступе.
На самом верху располагается кэш команд и буфер ассоциативной трансляции. Буфер помогает процессору определить, где в памяти располагаются необходимые команды. Эти инструкции хранятся в кэше команд первого уровня, а после этого отправляются в предекодер, так как из-за сложностей архитектуры x86 декодирование происходит во множество этапов. Сразу же за ними идет предсказатель переходов и предвыборщик кода, которые снижают вероятность возникновения потенциальных проблем со следующими командами.
Далее команды отправляются в очередь команд. Вспомните, как внеочередное исполнение позволяет процессору выбрать именно ту команду, которую практичнее всего выполнить в конкретный момент из очереди текущих инструкций. После того, как процессор определил нужную команду, та декодируется во множество микроопераций. В то время как команда может содержать сложную для ЦП задачу, микрооперации представляют собой детализированные задачи, которые процессору легче интерпретировать.
Затем эти инструкции попадают в таблицу псевдонимов регистров, переупорядочивающий буфер и станцию резервации. Подробно расписать их принцип работы в одном абзаце, увы, не получится, так как это — информация, которую обычно подают на последних курсах технических вузов. Если в двух словах, то все они используются в процессе внеочередного исполнения для управления зависимостями между командами.
На самом деле, у каждого ядра процессора множество арифметическо-логических устройств и портов памяти. Команды отправляются в станцию резервации, пока не освободится устройство или порт. Затем команда обрабатывается с помощью кэша данных первого уровня, а полученный результат сохраняется для дальнейшего использования, после чего процессор может приступать к следующей задаче. На этом все!
Пусть эта статья и не предназначалась для того, чтобы служить исчерпывающим руководством по тому, как работает каждый из процессоров, она должна дать вам базовое представление об их внутренней работе и сложности. К сожалению, о том, как действительно работают современные процессоры, знают лишь работники Intel и AMD, поэтому информация, описанная в этой статье — лишь вершина айсберга, ведь каждый пункт, описанный в тексте — это результат огромного количества исследований и разработок.