Войти
Windows. Настройка. Интернет. Обслуживание. Компьютеры. Безопасность
  • Все что вы хотели знать о сканерах отпечатков, но боялись спросить
  • Пакетная обработка фотографий, изображений, картинок
  • Как сфотографировать экран телефона на андроиде
  • Как сидеть в вк, чтоб никто не догадался
  • Возникают проблемы с Batman Arkham Knight - черный экран, тормозит, фпс-лимит, где сохранения, ошибки?
  • Различные тактики ведения боя в wot
  • Как устроен процессор? Разбираемся вместе. Устройство компьютера. Из чего состоит компьютер? Центральная часть процессора

    Как устроен процессор? Разбираемся вместе. Устройство компьютера. Из чего состоит компьютер? Центральная часть процессора

    Устройство и принцип работы процессора

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

    1. Введение.

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

    Большинство современных процессоров состоит из:

    • одного или нескольких ядер, осуществляющих выполнение всех инструкций;
    • нескольких уровней КЭШ-памяти (обычно, 2 или три уровня), ускоряющих взаимодействие процессора с ОЗУ;
    • контроллера ОЗУ;
    • контроллера системной шины (DMI, QPI, HT и т.д.);

    И характеризуется следующими параметрами:

    • типом микроархитектуры;
    • тактовой частотой;
    • набором выполняемых команд;
    • количеством уровней КЭШ-памяти и их объемом;
    • типом и скоростью системной шины;
    • размерами обрабатываемых слов;
    • наличием или отсутствием встроенного контроллера памяти;
    • типом поддерживаемой оперативной памяти;
    • объемом адресуемой памяти;
    • наличием или отсутствием встроенного графического ядра;
    • энергопотреблением.

    Упрощенная структурная схема современного многоядерного процессора представлена на рисунке 1.

    Начнем обзор устройства процессора с его основной части – ядра.

    2. Ядро процессора.

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

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

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

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

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

    Блоки декодирования , как понятно из названия, – это блоки, которые занимаются декодированием инструкций, т.е. определяют, что надо сделать процессору, и какие дополнительные данные нужны для выполнения инструкции. Задача эта для большинства современных коммерческих процессоров, построенных на базе концепции CISC, – очень сложная. Дело в том, что длина инструкций и количество операндов – нефиксированные, и это сильно усложняет жизнь разработчикам процессоров и делает процесс декодирования нетривиальной задачей.

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

    В современных процессорах, обычно, бывает 2-4 блока декодирования инструкций, например, в процессорах Intel Core 2 каждое ядро содержит по два таких блока.

    Блоки выборки данных осуществляют выборку данных из КЭШ-памяти или ОЗУ, необходимых для выполнения текущих инструкций. Обычно, каждое процессорное ядро содержит несколько блоков выборки данных. Например, в процессорах Intel Core используется по два блока выборки данных для каждого ядра.

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

    Блоки выполнения инструкций включают в себя несколько разнотипных блоков:

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

    FPU – устройство по выполнению операций с плавающей точкой;

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

    MMX (Multimedia Extensions) – набор инструкций, разработанный компанией Intel, для ускорения кодирования и декодирования потоковых аудио и видео-данных;

    SSE (Streaming SIMD Extensions) – набор инструкций, разработанный компанией Intel, для выполнения одной и той же последовательности операций над множеством данных с распараллеливанием вычислительного процесса. Наборы команд постоянно совершенствуются, и на данный момент имеются ревизии: SSE, SSE2, SSE3, SSSE3, SSE4;

    ATA (Application Targeted Accelerator) – набор инструкций, разработанный компанией Intel, для ускорения работы специализированного программного обеспечения и снижения энергопотребления при работе с такими программами. Эти инструкции могут использоваться, например, при расчете контрольных сумм или поиска данных;

    3DNow – набор инструкций, разработанный компанией AMD, для расширения возможностей набора инструкций MMX;

    AES (Advanced Encryption Standard) – набор инструкций, разработанный компанией Intel, для ускорения работы приложений, использующих шифрование данных по одноименному алгоритму.

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

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

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

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

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

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

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

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

    2.1 Принцип работы ядра процессора.

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

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

    2. Блок выборки инструкций из счетчика команд считывает адрес команды, предназначенной для выполнения. По этому адресу из КЭШ-памяти или ОЗУ считывается команда. Полученные данные передаются в блок декодирования;

    3. Блок декодирования команд расшифровывает команду, при необходимости используя для интерпретации команды записанный в ПЗУ микрокод. Если это команда перехода, то в счетчик команд записывается адрес перехода и управление передается в блок выборки инструкций (пункт 1), иначе счетчик команд увеличивается на размер команды (для процессора с длинной команды 32 бита – на 4) и передает управление в блок выборки данных;

    4. Блок выборки данных считывает из КЭШ-памяти или ОЗУ требуемые для выполнения команды данные и передает управление планировщику;

    5. Управляющий блок определяет, какому блоку выполнения инструкций обработать текущую задачу, и передает управление этому блоку;

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

    7. При необходимости сохранения результатов в ОЗУ, блок сохранения результатов выполняет требуемые для этого действия и передает управление блоку выборки инструкций (пункт 1).

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

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

    2.2. Способы повышения производительности ядра процессора.

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

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

    Рассмотрим основные способы повышения производительности процессоров.

    2.2.1. Конвейеризация.

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

    Рассмотрим пример, в котором процессор будет выполнять программу, состоящую из пяти инструкций (К1–К5), без использования принципа конвейеризации. Для упрощения примера примем, что каждый блок ядра процессора выполняет инструкцию за 1 такт.

    Такты Выборка инструкции Декодирование инструкции Выборка данных Выполнение инструкции Сохранение результата
    1 K1 - - - -
    2 - K1 - - -
    3 - - K1 - -
    4 - - - K1 -
    5 - - - - K1
    6 K2 - - - -
    7 - K2 - - -
    8 - - K2 - -
    9 - - - K2 -
    10 - - - - K2
    11 K3 - - - -
    12 - K3 - - -
    13 - - K3 - -
    14 - - - K3 -
    15 - - - - K3
    16 K4 - - - -
    17 - K4 - - -
    18 - - K4 - -
    19 - - - K4 -
    20 - - - - K4
    21 K5 - - - -
    22 - K5 - - -
    23 - - K5 - -
    24 - - - K5 -
    25 - - - - K5

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

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

    Рассмотрим пример выполнения той же программы, состоящей из пяти инструкций, но с использованием принципа конвейеризации.

    Такты Выборка инструкции Декодирование инструкции Выборка данных Выполнение инструкции Сохранение результата
    1 K1 - - - -
    2 K2 K1 - - -
    3 K3 K2 K1 - -
    4 K4 K3 K2 K1 -
    5 K5 K4 K3 K2 K1
    6 - K5 K4 K3 K2
    7 - - K5 K4 K3
    8 - - - K5 K4
    9 - - - - K5

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

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

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

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

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

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

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

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

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

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

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

    2.2.2. Суперскалярность.

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

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

    Однако параллельное выполнение инструкций возможно, только если эти инструкции – независимые.

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

    2.2.3. Параллельная обработка данных.

    Бесконечно повышать производительность процессоров, за счет увеличения тактовой частоты, невозможно. Увеличение тактовой частоты влечет за собой увеличение тепловыделения, уменьшение срока службы и надежности работы процессоров, да и задержки от обращения к памяти сильно снижают эффект от увеличения тактовой частоты. Действительно, сейчас практически не встретишь процессоры с тактовой частотой выше 3.8 ГГц.

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

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

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

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

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

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

    Ну и, в-четвертых, себестоимость производства многоядерных процессоров – немаленькая, а, соответственно, и цена на такие процессоры «кусается».

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

    2.2.4. Технология Hyper-Threading.

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

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

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

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

    К тому же практически во всех программах – много условных переходов и зависимых переменных. В результате, использование технологии Hyper-threading может дать существенный прирост производительности, способствуя максимальной загрузке конвейера ядра.

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

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

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

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

    2.2.5. Технология Turbo Boost.

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

    Частота процессора рассчитывается, как частота системной шины, умноженная на некий коэффициент, называемый множителем. Например, процессор Core i7-970 работает с системной шиной DMI на базовой частоте – 133 МГц, и имеет множитель – 24. Таким образом, тактовая частота ядра процессора составит: 133 Мгц*24= 3192 Мгц.

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

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

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

    2.2.6. Эффективность выполнения команд.

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

    • на классические процессоры CISC;
    • на процессоры RISC с сокращенным набором команд;
    • на процессоры MISC c минимальным набором команд;
    • на процессоры VLIW с набором сверхдлинных команд.

    CISC (Complex instruction set computer) – это процессоры со сложным набором команд. Архитектура CISC характеризуется:

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

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

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

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

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

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

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

    Поэтому был принят компромисс, и CISC процессоры, начиная с Intel486DX, стали производить с использованием RISC-ядра. Т.е., непосредственно перед исполнением, сложные CISC-инструкции преобразуют в более простой набор внутренних инструкций RISC. Для этого используют записанные в размещенном внутри ядра процессора ПЗУ наборы микрокоманд – серии простых инструкций, в совокупности выполняющих те же действия, что и одна сложная инструкция.

    RISC (Reduced Instruction Set Computer) – процессоры с сокращенным набором инструкций.

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

    Так же простые RISC-инструкции гораздо проще распараллеливать, чем CISC-инструкции, а, следовательно, появляется возможность больше загрузить конвейер, ввести дополнительные блоки обработки инструкций и т.д.

    Процессоры, построенные по архитектуре RISC, обладают следующими основными особенностями:

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

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

    Однако, несмотря на явное преимущество RISC, процессоры не получили столь серьезного распространения, как CISC. Правда, связано это в основном не с тем, что они по каким-то параметрам могли быть хуже CISC-процессоров. Они не хуже. Дело в том, что СISC-процессоры появились первыми, а программное обеспечение для CISC -процессоров – несовместимо с RISC-процессорами.

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

    MISC (Minimal Instruction Set Computer) – дальнейшее развитие архитектуры RISС, основанное на еще большем упрощении инструкций и уменьшении их количества. Так, в среднем, в MISC-процессорах используется 20-30 простых инструкций. Такой подход позволил еще больше упростить устройство процессора, снизить энергопотребление и максимально использовать возможности параллельной обработки данных.

    VLIW (Very long instruction word) – архитектура процессоров, использующая инструкции большой длины, содержащие сразу несколько операций, объединенных компилятором для параллельной обработки. В некоторых реализациях процессоров длина инструкций может достигать 128 или даже 256 бит.

    Архитектура VLIW является дальнейшим усовершенствованием архитектуры RISC и MISC с углубленным параллелизмом.

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

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

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

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

    Первые VLIW-процессоры появились в конце 1980-х годов и были разработаны компанией Cydrome. Так же к процессорам с этой архитектурой относятся процессоры TriMedia фирмы Philips, семейство DSP C6000 фирмы Texas Instruments, Эльбру?с 2000 – процессор российского производства, разработанный компанией МЦСТ при участии студентов МФТИ и др. Поддержка длинных инструкций с явным параллелизмом есть и в процессорах семейства Itanium.

    2.3. Способы снижения энергопотребления процессора.

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

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

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

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

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

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

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

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

    Существуют и не столь кардинальные пути решения этой проблемы.

    Например, технология EIST (Enhanced Intel SpeedStep Technology) позволяет динамически изменять энергопотребление процессора, за счет изменения тактовой частоты процессора и напряжения. Изменение тактовой частоты происходит, за счет уменьшения или увеличения коэффициента умножения.

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

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

    Аналогичная технология для уменьшения энергопотребления, основанная на динамическом изменении напряжения и тактовой частоты, в зависимости от нагрузки на процессор, используется и компанией AMD, называется она - Cool’n’Quiet .

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

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

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

    3. КЭШ-память.

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

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

    КЭШ-память строится на базе дорогой SRAM-памяти (static random access memory), обеспечивающей доступ к ячейкам памяти гораздо более быстрый, чем к ячейкам DRAM-памяти (dynamic random access memory), на базе которой построена оперативная память. К тому же SRAM-память не требует постоянной регенерации, что так же увеличивает ее быстродействие. Однако более подробно устройство SRAM, DRAM и других типов памяти рассмотрим в следующей статье, а сейчас более подробно рассмотрим принцип работы и устройства КЭШ-памяти.

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

    КЭШ-память более высокого уровня всегда больше по размеру и медленнее КЭШ-памяти более низкого уровня.

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

    КЭШ-память второго уровня – более медленная (время доступа, в среднем, 8-20 тактов процессора), но зато имеет объем несколько мегабайт.

    КЭШ-память третьего уровня – еще медленнее, но имеет сравнительно большой объем. Встречаются процессоры с КЭШ-памятью третьего уровня больше 24 Мб.

    В многоядерных процессорах, обычно, последний уровень КЭШ-памяти делают общим для всех ядер. Причем, в зависимости от нагрузки на ядра, может динамически изменяться отведенный ядру объем КЭШ-памяти последнего уровня. Если ядро имеет высокую нагрузку, то ему выделяется больше КЭШ-памяти, за счет уменьшения объема КЭШ-памяти для менее нагруженных ядер. Не все процессоры обладают такой возможностью, а только поддерживающие технологию Smart Cache (например, Intel Smart Cache или AMD Balanced Smart Cache).

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

    Мы рассмотрели, как устроена КЭШ-память, давайте теперь разберемся, как она работает.

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

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

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

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

    Но, несмотря на такие трудности в работе с КЭШ-памятью, ее применение дает явный прирост скорости работы без существенного увеличения стоимости ЭВМ. И пока не будет придумана оперативная память, которая сможет по скорости соперничать с SRAM-памятью, а по цене – с DRAM-памятью, будет применяться иерархическая организация оперативной памяти с использованием нескольких уровней КЭШ-памяти.

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


    Процессор компьютера – это основной компонент компьютера, его «мозг», скажем так. Он выполняет все логические и арифметические операции, которые задает программа. Кроме этого он выполняет управление всеми устройствами компьютера.

    Что собою представляет современный процессор

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

    • шины адресов и шины данных;
    • арифметико-логическое устройство;
    • регистры;
    • кэш (быстрая память небольшого объема 8-512 Кбайт);
    • счетчики команд;
    • математический сопроцессор.

    Что такое архитектура процессора?

    Архитектура процессора – это способность процессора выполнять набор машинных кодов. Это с точки зрения программистов. Но разработчики компьютерных составляющих придерживаются другой трактовки понятия «архитектура процессора». По их мнению, архитектура процессора – это отражение основных принципов внутренней организации определенных типов процессоров. Допустим, архитектура Intel Pentium обозначается Р5, Pentium II и Pentium III — Р6, а не так давно популярных Pentium 4 – NetBurst. Когда компания Intel закрыла Р5 для конкурирующих производителей, компания AMD разработала свою архитектуру К7 для Athlon и Athlon XP, а для Athlon 64 – К8.

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

    Системная шина или процессорная шина (FSB – Front Side Bus) – это совокупность сигнальных линий, которые объединены по назначению (адреса, данные и т.д.). Каждая линия имеет определенный протокол передачи информации и электрическую характеристику. То есть системная шина – это связующее звено, которое соединяет сам процессор и все остальные устройства ПК (жесткий диск, видеокарта, память и многое другое). К самой системной шине подключается только CPU, все остальные устройства подключаются через контроллеры, которые находятся в северном мосте набора системной логики (чипсет) материнской платы. Хотя в некоторых процессорах контролер памяти подключен непосредственно в процессор, что обеспечивает более эффективный интерфейс памяти CPU.

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

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

    Различают кэш по двум видам – эксклюзивный и не эксклюзивный.

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

    Не эксклюзивный кэш – это кэш, в котором информация повторяется на всех уровнях кэша. Трудно сказать, какой тип кэша лучше, и у первого и у второго есть свои достоинства и недостатки. Эксклюзивный тип кэша используется в процессорах AMD, а не эксклюзивный — Intel.

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

    Первое место занимает процессор Intel Core i5. Отличный вариант для мощной игровой машины.

    Второе место — Intel Celeron E3200, не смотря на достаточно приличную стоимость. Оптимальный вариант для офисной машины.

    Третье место занимает снова intel - на этот раз 4-х ядерный Core 2 Quad.

    Четвертое место — процессор AMD Athlon II X2 215 2.7 GHz 1Mb Socket-AM3 OEM. Хороший выбор для дома и офиса, для тех кто хочет сэкономить и не нуждается в супер мощной машине. К тому у этой модели процессора есть много места для разгона.

    Пятое место — AMD Phenom II X4 945. Хорошая цена, отличная производительность, большой кэш и 4 ядра на борту.

    Если вы готовы заплатить за процессор порядка 1000$, то можете приобрести Intel Сore 2 Extreme. Но такой процессор вряд ли подойдет для широких масс потребителей. Поэтому рассмотрим более доступные варианты.

    Если вы простой пользователь ПК, который работает с текстами, смотрит фильмы, прослушивает музыку и работает в Интернете, вам вполне подойдет или Celeron E1200 или младшие Athlon 64 X2. Последний имеет определенные преимущества перед первым и вам его хватит на долгие годы.

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

    Если вы относитесь к пользователям, которые используют все возможности компьютера, работаете с аудио, Интернет, видео, большими программами и тяжеловесными играми, вам больше всего подойдет Core 2 Duo E8200. Этот процессор обладает высокой производительностью, невысоким тепловыделением, достаточной возможностью разгона, при этом доступен по цене.

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

    Здравствуйте, уважаемые читатели! Буквально каждый уверенный пользователь ПК или обладатель ноутбука не раз задавался вопросом, как устроен процессор внутри? Наверное, многие удивятся, узнав, что в основе строения любого «камня» персонального компьютера или же ноутбука преобладают настоящие камни и горные породы.

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

    Из чего состоит современный микропроцессор?

    Структура процессора сегодня представлена следующими основными элементами:

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

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

    1. Верхняя металлическая крышка используется не только для защиты «камня» от механических повреждений, но также для отвода тепла.
    2. Непосредственно, кристалл или камень и дорогостоящей деталью любого компьютерного микропроцессора.Чем сложнее и совершеннее такой камень, тем быстродействующей является работа «мозга» любого компьютера.
    3. Специальная подложка с контактами на обратной стороне завершает конструкцию микропроцессора, как представлено на картинке. Именно благодаря такой конструкции тыльной стороны и происходит внешнее взаимодействие с центральным «камнем», непосредственно оказывать влияние на сам кристалл невозможно. Скрепление всего строения осуществляется с помощью специального клея‐герметика.

    Как это все работает?

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

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

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

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

    Борьба гигантов компьютерных микропроцессоров

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

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

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

    Центральный процессор является мозгом и сердцем компьютера

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

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

    К СВЕДЕНИЮ:

    очень часто процессор обозначается английской аббревиатурой CPU. Это расшифровывается как Central Processing Unit, или центральное обрабатывающее устройство.

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

    ЦП устанавливается в специальный слот на материнской плате

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

    Принцип работы процессора – это последовательная обработка разных операций. Они происходят очень быстро, основные из них:

    1. При запуске любого процесса, заключающегося в исполнении программного кода, управляющий блок ЦП извлекает все необходимые данные и набор операндов, требуемых к исполнению. Далее это отгружается в буферную или кэш-память.
    2. На выходе из кэша весь поток информации делится на две категории – инструкции и значения. Они перенаправляются в соответствующие ячейки памяти, которые называются регистры. Первые помещаются в регистры команд, вторая категория − в регистры данных.
    3. Находящуюся в регистрах памяти информацию обрабатывает арифметически-логическое устройство. Это одна из частей ЦП, которая требуется для проведения арифметических и логических операций.
    4. Результаты вычислений разделяются на два потока – законченные и незаконченные, которые, в свою очередь, отправляются обратно в кэш-память.
    5. По завершению цикла вычислений конечный итог записывается в оперативную память. Это требуется для высвобождения места в буфере, которое необходимо для проведения новых вычислительных операций. При переполнении кэша все неактивные процессы перемещаются в ОЗУ или на нижний уровень.

    К СВЕДЕНИЮ:

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

    Упрощённая схема работы центрального процессора

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

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

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

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

    Основные детали ЦП − крышка, кристалл и контактная площадка

    Что такое ядро процессора

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

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

    Каждое ядро состоит из определённого количества функциональных блоков:

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

    Ядро процессора представляет собой мельчайшую плату, на которой расположены рабочие элементы

    Что такое сокет процессора

    Термин socket переводится с английского языка как «гнездо» или «разъём». Для персонального компьютера данный термин одновременно относится непосредственно к материнской плате и процессору. Сокет – это место крепления ЦП. Они различаются между собой такими характеристиками, как размер, количество и тип контактов, особенностями монтажа охлаждения.

    Два крупнейших производителя процессоров – Intel и AMD − ведут давнюю маркетинговую войну, предлагая каждый свой собственный сокет, подходящий только под CPU своего производства. Цифра в маркировке конкретного сокета, например, LGA 775, обозначает количество контактов или контактных ножек. Также в технологическом плане сокеты могут различаться между собой:

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

    Сокет также может оказывать влияние на следующие параметры работы компьютера:

    • вид поддерживаемой ОЗУ;
    • частоту работы шины FSB;
    • косвенно, на версию PCI-e и разъём SATA.

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

    Сокет процессор – это гнездо для его установки на материнской плате

    Графическое ядро в процессоре: что это такое

    Одной из деталей ЦП, кроме непосредственно основного ядра, может быть графический процессор. Что это такое, и для чего требуется применение подобного компонента? Сразу следует отметить, что встраивание графического ядра не является обязательным и присутствует не в каждом процессоре. Это устройство требуется для исполнения основных функций CPU в виде решения вычислительных задач, а также поддержку графики.

    К СВЕДЕНИЮ:

    иногда можно встретить аббревиатуру IGP, которая расшифровывается как Integrated Graphics Processor или интегрированный графический процессор. Это означает, что в данном конкретном ПК применяется подобное решение, а дискретная видеокарта может вообще отсутствовать.

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

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

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

    Графическое ядро – это вынесенный на ЦП графический сопроцессор

    Основные понятия процессора в информатике

    Что такое потоки в процессоре

    Поток выполнения в ЦП – это наименьшая единица обработки, которая назначается ядром, необходимая для разделения кода и контекста исполняемого процесса. Одномоментно может существовать несколько процессов, которые одновременно используют ресурсы ЦП. Существует оригинальная разработка компании Intel, которая стала применяться в моделях, начиная с процессора Intel Core i3, которая именуется HyperThreading. Это технология деления физического ядра на два логических. Таким образом, операционная система создаёт дополнительные вычислительные мощности и увеличивает поточность. Получается, что только показатель количества ядер не будет решающим, поскольку в некоторых случаях компьютеры, имеющие 4 ядра, проигрывают по быстродействию тем, которые имеют всего 2.

    Количество потоков можно посмотреть через диспетчер задач

    Что такое техпроцесс в процессоре

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

    Снижению размеров кристалла способствует:

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

    Единицей измерения техпроцесса является нанометр (10-9). Большинство современных процессоров изготавливается по 22 нм технологическому процессу.

    К СВЕДЕНИЮ:

    в качестве примера можно привести процессор Intel Core i7, который при размере кристалла в 160 мм содержит 1,4 млрд рабочих элементов.

    Техпроцесс – это увеличение количества рабочих элементов процессора при сохранении его размеров

    Что такое виртуализация процессора

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

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

    Виртуализация активируется в БИОС

    Что такое регистры процессора

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

    Регистры процессора

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

    Что такое тактовая частота процессора

    Многие пользователи слышали такое понятие, как тактовая частота, но не все до конца представляют себе, что это такое. Говоря простым языком, это количество операций, которое может выполнять ЦП за 1 секунду. Здесь действует правило – чем выше показатель такта, тем более производительный компьютер.

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

    Посмотреть тактовую частоту можно в БИОС или при помощи специального софта

    Что такое разрядность процессора

    Каждый пользователь ОС от Windows при установке новых программ сталкивался с выбором версии под разрядность системы. Что же такое разрядность ЦПУ? Выражаясь простым языком, это показатель, называемый иначе машинным словом, показывающий, сколько бит информации ЦП обрабатывает за один такт. В современных процессорах этот показатель может быть кратным 32 или 64.

    К СВЕДЕНИЮ:

    для обычного пользователя показатель разрядности будет определять максимальный объём ОЗУ, который поддерживается процессором. Для 32 бит это 4 Гб, а для 64 бит верхний предел составляет уже 16 Тб.

    Разрядность может иметь значение 32 и 64 бита

    Что такое троттлинг процессора

    Троттлинг, или дросселирование, – это защитный механизм, который применяется для предотвращения перегрева центрального процессора или возникновения аппаратных сбоев при работе. Функция активна по умолчанию и срабатывает при повышении температуры до критической отметки, которая установлена для каждой конкретной модели ЦП производителем. Защита осуществляется путём снижения производительности ядра. При возвращении температуры к нормальным показателям функция автоматически отключается. Существует возможность принудительно поменять параметры троттлинга через БИОС. Она активно используется любителями разгона ЦП или оверклокерами, но для простого пользователя подобные изменения чреваты поломкой ПК.

    При превышении допустимых температур ЦП автоматически включается система защиты, или троттлинг

    Температура процессора и видеокарты

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

    К СВЕДЕНИЮ:

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

    Самостоятельно контролировать температурный режим можно посредством специального софта для мониторинга (AIDA64, GPU Temp, Speccy). Если при работе или игре наблюдается подтормаживание, значит, вполне вероятно, температура возросла до критической отметки, и автоматически сработала защита.

    Самостоятельно отслеживать температуру ЦП и видеокарты можно посредством специального софта

    Что такое турбо буст в процессоре

    Turbo Boost – это запатентованная технология компании Intel, которая применяется в процессорах Intel Core i5 и i7 первых трёх генераций. Она применяется для аппаратного ускорения работы ЦП на определённое время. С использованием технологии процедура разгона осуществляется с учётом всех важных параметров – силы тока, температуры, напряжения, состояния ОС, поэтому она полностью безопасна для компьютера. Прирост в скорости работы процессора носит временный характер и будет зависеть от типа нагрузки, количества ядер и конфигурации платформы. Дополнительно следует отметить, что технология поддерживается только операционными системами Windows 7 и 8.

    Фирменная технология от компании Intel позволяет добиться временного улучшения производительности компьютера

    Виды процессоров

    Всего принято выделять 5 основных видов процессоров в компьютере:

    1. Буферный . Это сопроцессор, который требуется для предварительной обработки информации между периферией и ЦП.
    2. Препроцессор . По своей сути, это аналогичный предыдущему процессор, назначением которого является промежуточная обработка данных.
    3. CISC . ЦП, выпускаемый компанией Intel, который отличается от обычного увеличенным набором команд.
    4. RISC . Альтернативная версия CISC, имеющая сокращённое количество команд. Большинство крупных производителей процессоров работает на сочетании двух разновидностей (CISC и RISC), что позволит увеличить мощность и скорость работы ядра.
    5. Клоны . Это процессоры, которые выпускаются некрупными производителями по лицензии или полностью пиратским способом.

    Самые популярные модели и производители

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

    Наибольшую популярность в линейке процессоров от Intel приобрели модели Intel Core i3, i5 и i7. В зависимости от модификации они могут использоваться как в игровых ПК, так и в офисных машинах. У AMD одними из лучших считаются процессоры серии Ryzen, демонстрирующие хорошие показатели производительности. Серия Athlon до сих пор встречается, но относится уже к архивным. Для нетребовательного пользователя подойдут процессоры AMD A серии.

    AMD и Intel являются двумя самыми крупными компаниями по производству процессоров

    Что такое скальпирование процессора

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

    Сама процедура заключается в:

    • снятии крышки;
    • удалении старой термопасты;
    • очистке кристалла;
    • нанесении нового слоя термопасты;
    • закрытии крышки.

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

    Как разогнать процессор

    Проведение оверклокинга, или разгона центрального процессора, может быть целесообразно при наличии устаревшего оборудования и отсутствии средств для покупки нового камня. Обычно проведение процедуры позволяет получить прирост производительности от 10 до 20%. Существует два метода, как провести разгон, – путём увеличения частоты шины FSB или повышения множителя процессора. Современные компьютеры, по общему правилу, поставляются с заблокированным множителем, поэтому самым доступным будет способ изменения частоты системной шины.

    Разгон процессора осуществляется путём повышения частоты шины или множителя процессора

    Основные советы по разгону:

    1. Трогать питание ядра при отсутствии опыта не рекомендуется.
    2. Повышение показателя частоты следует проводить поэтапно, увеличивая за один раз не более чем на 100 МГц.
    3. Отслеживать температуру, поскольку при повышении частоты увеличивается тепловыделение.
    4. При решении увеличить питание ядра шаг составляет 0,05В, при этом максимальный предел не должен превышать 0,3В, иначе велика вероятность выхода ЦП из строя.
    5. После каждого повышения требуется тестировать стабильность работы. При первых сбоях разгон необходимо прекратить.

    К СВЕДЕНИЮ:

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

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

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

    Если у вас есть вопросы к нашим экспертам, можно оставить их ниже.

    Речь идет о модели 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