Где используются процессоры. Процессор и его компоненты. Чем отличаются процессоры Intel и AMD

Где используются процессоры. Процессор и его компоненты. Чем отличаются процессоры Intel и AMD

29.06.2020

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

Заметим, что энциклопедия не заменяет, а дополняет другие статьи общего характера (например «Современные десктопные процессоры архитектуры x86: общие принципы работы») и аналитику по частным вопросам (например «О разрядности процессоров» и «Методы увеличения вычислительной производительности»). Тут приводятся лишь краткие описания, но не по отдельным терминам, а почти по всем, которые могут встретиться - кроме очень редких и устаревших.

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

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

Энциклопедия постоянно уточняется и пополняется (дата последнего обновления - в конце) и на данный момент содержит 234 термина (без учёта переводов и синонимов).

Общие положения и вычислительные парадигмы

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

coprocessor, сопроцессор - специализированный (например, вещественный или периферийный), обрабатывающий данные только какого-то одного вида, но быстрее, чем это смог бы сделать , за счёт оптимизированного устройства. Может быть как отдельной , так и частью ЦП.

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

word, слово - в общем случае - последовательность информации длиной 2 N байт, где целое N>0. По содержимому может быть данными, адресом или. Иногда используется как мера разрядности (полуслово, двойное слово и т. п.) наряду с битами и байтами. В обозначает 2-байтовое данное.

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

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

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

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

integer, целый, целочисленный - относящийся к целым числам. Имеют разрядность 1, 2, 4 и 8 байт. Как правило, к ним также причисляют логический тип данных, описывающий набор бит. Обработка целых проще и быстрее, чем .

float («плавающий»), FP (floating point: плавающая точка), вещественный - относящийся к вещественным числам (точнее, к их рациональному подмножеству с плавающей запятой). Имеют точности . Обработка вещественных труднее и дольше, чем .

GPR (general purpose register), РОН (регистр общего назначения) - регистр для скалярных данных или адресов, используемый для наиболее частых команд.

ISA (instruction set architecture: архитектура набора команд) - описание процессора как математической модели, каковой он представляется программисту. Состоит из описаний всех исполняемых команд, имеющихся регистров, режимов и пр. структур и состояний, доступных программисту. Основывается на одной или более . Без уточнения термин «архитектура» часто обозначает .

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

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

RISC (reduced instruction set computer: вычислитель с сокращённым набором команд) - парадигма архитектуры, максимально удобной для физической реализации (в противоположность ): процессор имеет небольшое число команд (как правило, до 200), большая часть которых исполняет по одному простому действию (как правило, не сложнее умножения) со значительными ограничениями по разрядности, местоположению и типу аргументов (в частности, используется парадигма ). За счёт простоты почти каждая команда исполняется за одно действие, поэтому процессору не нужен . Чаще всего команды имеют одинаковую длину (как правило, 4 байта) и кодировку .

CISC (complex instruction set computer: вычислитель со сложным набором команд) - парадигма архитектуры, максимально удобной для эффективного (по числу ) программирования (в противоположность ): процессор имеет большое число команд (сотни), исполняющих в т. ч. сложные действия с аргументами разной разрядности, местоположения и типа. Сложные команды исполняются как последовательность простых, для чего процессору нужен . Команды имеют переменную длину; по сравнению с RISC-ЦП код получается более компактным как по числу команд, так и по общей длине. За счёт разнообразия и сложности команд, меньшего числа архитектурных регистров и (часто) формата операндов программирование CISC-ЦП для компилятора сложнее, чем RISC-ЦП, но для человека-программиста это не обязательно. CISC-ЦП для достижения производительности RISC-ЦП на одинаковой частоте должен быть сложнее.

SIMD (single instruction, multiple data: одна команда - много данных), векторность - парадигма параллелизма на уровне данных: помимо скалярных, имеются векторные команды для обработки аргументов-векторов, объединяющих несколько отдельных скалярных значений. Результат векторной команды - чаще всего также вектор. Применяется во всех современных архитектурах для удобной реализации высокоскоростной обработки, когда над большим объёмом данных требуется совершить одно действие. SIMD также подразумевает наличие команд элементов вектора без изменения их содержимого.

EPIC (explicitly parallel instruction computing: вычисление с явным параллелизмом команд) - парадигма, упрощающая микроархитектуру за счёт явного указания «связок» команд, которые могут одновременно отправиться на исполнение при готовности требуемых данных. Применяется только к -архитектурам, хотя теоретически применима и к . Для обработки данных общего назначения не подходит из-за относительно большого размера кода и сложности эффективного программирования и исполнения на любом алгоритме, поэтому для ЦП малопригодна, но применяется в некоторых и .

GPGPU (general purpose GPU: вычисления общего назначения на ГП) - программы обработки неграфических данных, алгоритмы которых удобны для эффективного исполнения не только на ЦП, но и на ГП. Составление таких алгоритмов сложней из-за бо́льших ограничений ГП по сравнению с ЦП.

APU (accelerated processing unit: блок ускоренной обработки) - термин AMD для обозначения процессора с или ядрами общего назначения архитектуры и встроенным , архитектура которого допускает относительно простую обработку неграфических данных с помощью .

SoC (system on chip: система на чипе) - микросхема, на единственном или основном которой находятся или ядра ЦП, и/или и контроллеры памяти и ввода-вывода. (Остальные кристаллы в случае их присутствия являются памятью.) Используется вместо нескольких отдельных с похожей совокупной функциональностью для уменьшения массы, размеров, сложности монтажа, потребления энергии и цены конечного устройства.

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

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

VA (virtual address: виртуальный адрес) - адрес для , который до использования необходимо пересчитать (транслировать) в в блоках и . Каждый виртуальный адрес попадает в какую-либо , описываемую дескриптором («описателем») размером 4 (в 32-битном режиме ЦП) или 8 (в 64-битном) байт, содержащим физический адрес, тип и права доступа страницы или их группы. 512 или 1024 дескриптора формируют таблицу трансляции, а сами таблицы объединяются операционной системой в 2–4-ярусную древовидную структуру, уникальную для каждой задачи. Ссылка на корневую таблицу дерева передаётся в ЦП при переключении на новую задачу, каждая из которых таким образом получает отдельное виртуальное адресное пространство.

page, страница - элементарный блок памяти при выделении программе. Младшие биты обозначают смещение внутри страницы. Остальные биты задают начальный (базовый) адрес, который требуется транслировать. Для архитектуры чаще всего используются страницы по 4 КБ, но также доступны «большие» страницы: для 32-битного режима - на 4 МБ, а для 64-битного - на 2 МБ и 1 ГБ.

Команды x86 и их наборы

PadLock - поднабор команд для ускорения операций (де)шифрования для всех популярных шифров, включая AES. Также включает аппаратный генератор случайных чисел, применяемый для криптографических программ. Применяется в ЦП VIA.

CPUID (CPU identify: идентификация ЦП) - команда выдачи «паспорта процессора» с перечислением всех основных качественных и количественных характеристик, включая поддерживаемые поднаборы команд.

MSR (model-specific register: специфический для модели регистр) - регистр специального назначения для аппаратной настройки какой-либо функции или режима ЦП. В x86-ЦП MSR-регистров несколько сотен, причём их количество и использование определяются и не зависят от ЦП. Для пользовательских программ чаще всего недоступны.

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

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

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

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

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

back-end («задняя часть»), тыл конвейера - часть , обрабатывающая данные исполнением от . Включает в себя от чтения из и мопов в до их . Непосредственно обработка данных осуществляется только , однако к тылу относят также остальные части , и планировщик(и). , и прочие блоки подсистемы памяти номинально не являются частью конвейера, несмотря на то, что при обработке доступов в память LSU должен сработать до отставки затребовавшей доступ команды.

µop, mop, микрооперация, моп - -подобная (неверно названная ) во внутреннем формате ЦП, исполняющая одно или несколько элементарных действий. Команды -ЦП переводятся в мопы в , причём каждая простая команда генерирует один моп, а сложная - несколько. В RISC-ЦП декодер состоит лишь из простых блоков, выполняющих несложную подготовку команд для исполнения. Одна CISC-команда порождает в среднем более одного мопа, а число конвейера до и после декодера чаще всего одинаково, что создаёт дисбаланс нагрузок на стадии. Для его исправления применяются и .

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

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

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

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

OoO (out-of-order), внеочерёдность - для команд при обработке : обработка в порядке, наиболее удобном ядру в данный момент. Применяется к конвейера: отдельно к исполнительной части () и доступу в память (). Требует наличия аппаратной структуры, хранящей оригинальный порядок мопов (исходя из последовательности породивших их команд) для их .

OoOE (out-of-order execution), внеочерёдное исполнение - концепция , применяемая при исполнении мопов: моп запускается на выполнение, когда готовы все его и целевое , даже если декодированные до него мопы ещё не исполнены. Является одним из видов для команд.

HT (Hyper-Threading), гиперпоточность - «тонкая» версия в ЦП Intel: каждый такт каждая стадия или их группа выбирает один из двух или оба потока команд или мопов, исходя из готовности ресурсов для каждого из них.

MCMT (multicluster multithreading: многокластерная многопоточность) - ускоряющее производительность решение AMD, промежуточное между и : исполняющий два потока делится на параллельно работающие кластеры по несколько стадий каждый, причём одни кластеры разделяют свои ресурсы между потоками (как в SMP), а другие выделяются им монопольно (как в SMT).

IPC (instructions per clock), команд (-а, -ы) за такт - мера производительности , его или отдельного . Пиковая величина IPC измеряется при выполнении потока или , независимых друг от друга по данным, что позволяет по возможности осуществить их одновременное исполнение.

CPI (clocks per instruction), такт (-а, -ов) на команду - величина, обратная . Применяется для удобства, когда IPC

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

throughput, пропуск, темп, ПС (пропускная способность) - о командах: обратная пропускная способность - значение при исполнении мопа(ов) данной команды для отдельного , либо всей исполнительной конвейера. ФУ с пропуском в 1 CPI является полноконвейерным, т. е. принимающим на исполнение новый моп каждый такт, при том, что может быть более 1 такта. ФУ с пропуском 2 является полуконвейерным, а с пропуском, (почти) равным задержке, - неконвейерным. Дробные значения пропуска команд получаются при исполнении. Например, 0,5 означает наличие либо двух одинаковых конвейерных (для исполнения данной команды) ФУ, либо четырёх полуконвейерных, а 1,5 - наличие двух одинаковых с CPI=3.

ILD (instruction length decoder: декодер длин команд), длиномер - определитель длин -команд. В -ЦП анализирует их , и байты modR/M. В ЦП Intel длиномер является частью , измеряя длины «на лету». В большинстве ЦП AMD он работает с командами при их загрузке из в , сохраняя разметку байтов команд в дополнительных битах в L1I, считываемых предекодером при загрузке .

translator («переводчик»), транслятор - часть , обрабатывающая простые и частые команды без использования . В -ЦП Intel есть 1–3 простых транслятора (на 1 меньше числа конвейера), каждый из которых переводит команду в 1 моп за такт, и 1 сложный транслятор, переводящий команду в 1–4 мопа/такт. Как правило, число генерируемых трансляторами мопов не больше числа путей. Большинство ЦП AMD имеют 3–4 транслятора, каждый из которых переводит команду в 1–2 мопа/такт. команды обрабатываются парами любым транслятором, но не более одной пары за такт.

mROM, µROM («микроПЗУ») - энергонезависимое хранилище для размером в несколько сотен килобит. читает микропрограммы из микроПЗУ по несколько мопов за такт (согласно числу конвейера). Для исправления ошибок содержимое может корректироваться прямым программированием или.

mop buffer, буфер мопов - последняя стадия конвейера, принимающая от декодера и/или и отправляющая их в . По терминологии Intel называется IDQ (instruction decode queue: декодирования команд). В ЦП Intel мопов (как и кэш) может работать в режиме блокировки цикла, освобождая на время его исполнения остальные стадии фронта для простоя, накопления мопов команд после цикла или работы над другим потоком (в процессорах с ). Обнаружение и блокировка цикла в IDQ осуществляется блоком LSD (loop stream detector: детектор циклического потока).

dispatcher, диспетчер - блок конвейера, архитектурно занимающий бо́льшую часть , включая его первую и последнюю стадии. Принимая от или , диспетчер осуществляет , мопов, приём сигналов о завершении мопов и породивших их команд. диспетчер проще: он не делает переименование и размещение и заменяет собой .

register rename, переименование регистров - привязка номера архитектурного -приёмника, описываемого в и указанного в , к аппаратному регистру (должна точнее называться перенумерацией). Является первой стадией и выполняется перед мопа. Аппаратных регистров в 4–10 раз больше, чем архитектурных того же типа, что позволяет реализовать одновременное исполнение мопов, до переименования ссылавшихся на один регистр, за счёт удаления ложных зависимостей по операндам. Не смотря на поочерёдность операции, диспетчер может не только переименовать несколько регистров за такт (учитывая, что в мопе приёмник максимум один, не считая регистра ), но и несколько раз за такт переименовать один и тот же архитектурный регистр. Часто также переименовываются 4–6 важнейших флагов и регистр управления вещественными вычислениями. Аппаратные регистры иногда бывают вдвое меньше архитектурных - в этом случае переименование делается для старшей и младшей половин архитектурного. В продвинутых мопы некоторых команд (обмен, копирование и обнуление) при работе только с регистрами уже на этой стадии и до размещения не доходят.

ROB (reorder buffer: «буфер переупорядочивания») - вопреки названию (термин Intel), хранит оригинальный (программный) порядок мопов, поэтому правильней называется RQ (retire(ment) queue: ; термин AMD). Число мопов в ROB определяет т. н. OoO-окно - диапазон, внутри которого мопы могут . Ячейка в ROB хранит урезанную версию мопа, в которой оставлены лишь необходимые планировщику поля. В частности, если подключен к хранящему , то ROB после исполнения мопов хранит копии их результатов; если к ссылочному - то он хранит ссылки на результаты в ; ни одна из версий не хранит и другую информацию, нужную для мопа.

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

Ссылочный планировщик Хранящий планировщик
Не хранит и не перемещает мопы и данные в резервации. Хранит в резервации мопы и данные, сдвигая их при каждом запуске.
Манипулирует только мопами и номерами регистров, отслеживая и записи в таблице привязки. Манипулирует мопами и уже известным (в т. ч. упреждающим) содержимым регистров, перехватывая результаты, возвращаемые исполненными мопами.
Имеет резервацию, рассчитанную на все . Имеет либо одну многопортовую резервацию, либо несколько однопортовых (с распределением ФУ между ними).
мопы привязаны номерами регистров к . Размещаемые мопы привязаны номерами регистров к ; разместитель записывает в резервацию уже известные значения их операндов из .
После исполнения мопа возвращает его диспетчеру со ссылкой на результат. После исполнения мопа копирует в резервацию записанный им в упреждающий РФ результат и возвращает моп с результатом диспетчеру.

issue («выпуск»), запуск - передача из в для . Если планировщик допускает хранение в своей и мопов (не требуя их разделения при ), то такие мопы запускаются по нескольку раз. Вычислительные мопы, читающие аргумент из памяти, сначала попадают в , затем в и, наконец, в нужное для обработки. Мопы, сохраняющие аргумент в памяти (и которые в не бывают вычислительными), должны в любом порядке запуститься в AGU и LSU. Каждый получатель слитого мопа интерпретирует его по-своему, исполняя одну операцию. После выполнения последней из них моп удаляется из резервации, а планировщик сообщает о возможности удалённого мопа.

EX (execution), исполнение - одна или несколько стадий исполнения мопов, содержащая все (при сюда не включены). Фактическая длина этой стадии определяется для каждого мопа числом стадий обрабатывающего его ФУ.

EU (execution unit: исполнительный блок), FU (functional unit: функциональный блок), ФУ, функциональное устройство - блок , исполняющий и обрабатывающий данные и адреса. Имеет управления для приёма мопов из , 2–3 порта приёма аргументов и порт выдачи результата. Чаще всего именуется по названию исполняемой в нём команды или группы похожих команд. Физически находится в . Для наиболее частых команд может содержать более одного ФУ нужного типа. Производительность ФУ определяется исполняемых команд.

bypass («обход»), шунт, шлюз - коммутаторы и связанные с ними шины передачи данных внутри (шунт) или между ним и другими блоками (шлюз). Каждый шунт связывает одну из шин записи со всеми шинами чтения, позволяя использовать в следующем такте результат только что исполненного мопа - в обход записи в и чтения из . Шлюзы на шинах записи ведут в другие тракты и , а на шинах чтения - от них и от (для подачи констант, включая адреса и адресные смещения).

retire, отставка, commit («совершение») - последняя стадия конвейера и , «легализующая» результаты команд, мопы которых находятся в . Для этого диспетчер (в зависимости от типа ) либо переносит результат мопа из ROB в , либо корректирует используемую для таблицу ссылок на , чтобы записанный мопом архитектурный регистр указывал на верный физический. Т. к. во диспетчер мопы возвращаются из планировщика не обязательно в программном порядке, в отставку заранее завершившийся моп может уйти, только если все предыдущие внесённые в ROB мопы уже отставлены или уходят в данном такте. Многомоповые команды могут отставиться только после отставки всех своих мопов. Отказ в отставке возможен в случае обнаружения:

В последних двух случаях диспетчер возвращает конвейер в предыдущее точно известное состояние («сброс конвейера»), теряя все результаты; успешная отставка обновляет это состояние. Отставка перехода вне зависимости от успешности предсказания пополняет статистику предсказателя.

exception, исключение, исключительная ситуация - событие при обработке , требующее аварийной реакции:

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

Блоки процессора

BTB (branch target buffer: буфер целей ветвлений) - таблица адресов, на которые нацелены часто встречаемые . Позволяет сделать , не читая сами команды. Пополняется (с вытеснением старых адресов) при исполнении нового или «забытого» перехода. (Однако в некоторых ЦП целевые адреса условных переходов попадают в BTB, только если переход .)

GBHR (global branch history register: регистр глобальной истории ветвлений) - регистр сдвига, хранящий поведение нескольких последних исполненных условных переходов. При исполнении перехода GBHR смещается, вытесняя самый «старый» бит и добавляя новый в зависимости от поведения перехода: 1 - , 0 - «пропущен». Используется для индексации .

BHT (branch history table: таблица истории ветвлений) - таблица 2-битных счётчиков, предсказывающих поведение переходов по 4-позиционной шкале (от «наверняка будет пропущен» до «наверняка будет взят»). Индексируется кодирующей хэш-функцией, использующей биты и адреса перехода.

RSB (return stack buffer: буфер стека возврата) - часть BPU, буферизующая адреса возвратов из подпрограмм, вызванных последними. (Отдельного стека для адресов возврата в x86 нет - они находятся в общем стеке среди аргументов и результатов подпрограмм.) Для x86-ЦП имеет размер 12–24 адреса.

ALU (arithmetic-logic unit), АЛУ, арифметико-логическое устройство - тесно связанный набор , исполняющий за 1 такт простые арифметические, логические и некоторые невычислительные команды над операндами, являясь, таким образом, наиболее универсальным и часто используемым исполнительным блоком. Виды:

FPU (floating point unit: «устройство плавающей точки») - блок вещественных операций, состоящий из нескольких ФУ. Виды:

Иногда под FPU понимается весь векторно-вещественный .

MUL (multiplier: умножитель) - ФУ, выполняющее умножения. Является самым сложным и большим видом ФУ, поэтому иногда для экономии места (в ущерб скорости) делается половинной разрядности (относительно наибольших операндов).

MAD, MADD (multiplier-adder: умножитель-сумматор) - тесно спаренные и , выполняющие слитое умножение-сложение и умножение-вычитание быстрее и точнее пары отдельных ФУ. Исполняет команды , отдельное умножение и (иногда) отдельные сложение и вычитание.

DIV (divider: делитель) - сложное неконвейерное ФУ для выполнения деления (а для вещественных чисел - и извлечения квадратного корня). Часто тесно связан с . Иногда для экономии вместо двух специализированных делителей имеется один универсальный - для целых и вещественных чисел.

PLL (phase-locked loop: фазовая синхронизация), умножитель частоты - аналого-цифровой блок процессора, генерирующий такты внутренней синхронизации для всей или её части (ядра, общего , и т. п.) умножением внешней частоты на задаваемый множитель. При изменении множителя умножителю требуется относительно много времени для стабилизации на новой частоте, во время чего тактируемые схемы простаивают.

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

Подсистема памяти

cache, «$», кэш - программно недоступная буферная память, используемая процессором для ускорения обмена с оперативной памятью (улучшением ) заменой обращений к ОЗУ обращениями к самому кэшу в случае кэш- . В ЦП имеет 2–4-уровневую иерархию, причём оперативная память может считаться дополнительным (последним) уровнем. Как правило, каждый следующий уровень кэша относительно текущего (чаще всего начиная с ) имеет…

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

mop cache (кэш мопов) - часть конвейера, находящаяся перед стадией . Кэширует из команд , потому также называется кэшем 0-го уровня для мопов (L0m). В терминологии Intel называется DIC (decoded instruction cache: кэш декодированных команд) или DSB (decode stream buffer: буфер потока декодера).

L1I (level 1 for instructions: 1-й уровень для команд) - кэш для команд, подключенный к конвейера. Записывается только со стороны , со стороны конвейера только читается. Почти всегда 1-портовый, разрядность совпадает с размером . Иногда освобождается от в пользу .

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

L3 (level 3: 3-й уровень) - кэш для данных и команд, используемый при в (других структур с тремя и более уровнями иерархии в процессорах нет). Иногда называется LLC (last level cache: кэш последнего уровня), имея ввиду, что после промаха в нём идёт обращение в память. Является общим для (в ЦП с - модулей). Иногда работает на частоте, меньшей, чем у ядер. В ЦП имеет по одному на , начиная от простого 1-банкового устройства.

miss, промах - ситуация не нахождения нужной информации при обращении в кэш. Антоним . Если текущий уровень кэша не последний - далее происходит обращение к следующему, иначе - к памяти. Возвращённые оттуда данные отдаются инициатору обращения и заполняют (fill) текущий уровень кэша, вытесняя (evict) из выбранного старую, наименее нужную информацию - причём если она пока больше нигде не записана, то её надо сохранить в следующем уровне. Почти все кэши являются неблокирующими (non-blocking), т. е. продолжают принимать запросы, пока обрабатываются промахи. Число удерживаемых промахов определяется размером специального , при заполнении которого кэш блокирует обработку запросов.

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

associativity, ассоциативность - индексируемость не адресом, а содержимым. Для наборно-ассоциативного и ассоциативность это показатель числа. При прочих равных, кэш/TLB с бо́льшей ассоциативностью имеет меньшую частоту , но бо́льшие площадь , потребление энергии (на байт) и (иногда) задержку. Полная ассоциативность означает, что кэш/TLB состоит из единственного (это также применимо к ). Может принимать значения, не равные целой степени двойки. Кэш с ассоциативностью 1 также называется кэшем с прямым отображением (direct-mapped).

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

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

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

TLB (translation look-aside buffer: буфер-шпаргалка для трансляции) - кэш дескрипторов страниц , заменяющий трансляцию в более быстрым считыванием. Обращение в TLB нужно для обращения в физически адресуемый кэш (чаще всего - ) и происходит либо одновременно с чтением и выборкой этого кэша, либо (реже) - до. При в TLB полученный физический адрес используется для проверки наличия нужной информации в выбранном теге кэша. Часто несколько TLB организуются в иерархию: TLB L1I и TLB L1D обслуживают запросы к кэшам и , при обращаются во TLB бо́льшего размера (общий TLB L2 или отдельные TLB L2I и TLB L2D), а при промахе в нём (них) виртуальный адрес поступает в . TLB L2 не обслуживают кэш L2, а только промахи в TLB L1: трансляция адресов нужна только для доступа к кэшам L1, а при промахе в них обращения в остальные кэши и память используют уже готовый физический адрес. Часто TLB делится на несколько массивов: самый большой - для страниц по 4 КБ, меньшие - для страниц по 2/4 МБ и 1 ГБ (может вовсе отсутствовать). TLB L1 часто . кэшу требуется N-портовый TLB или N 1-портовых TLB с одинаковым содержимым.

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

LSU (load-store unit: блок загрузки-сохранения), MEU (memory unit: блок памяти) - блок интерфейса между конвейера и . Содержит чтений и записей с отслеживанием их зависимостей и функциями, и. Иногда неточно называется MOB (memory order buffer, «буфер порядка» [записей в] память), имея ввиду очередь программного порядка записей - часть LSU, аналогичную для .

STLF (store-to-load forwarding: перенаправление сохранения к загрузке) - функция записи в , позволяющая немедленно исполнить чтение (подставив данные из очереди вместо доступа к кэшу) в случае совпадения адреса чтения с адресом содержащейся в очереди предшествующей записи. Очередь продолжает хранить данные и после записи, поэтому STLF срабатывает вне зависимости от факта совершения записи читаемых данных.

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

flush (смыв) - процесс сохранения всего (пока не сохранённого) содержимого кэша данного уровня в следующем уровне иерархии. Происходит перед отключением кэша или при изменении в таблицах адресов.

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

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

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

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

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

non-exclusive («неисключающая»), mainly inclusive («в основном включающая»), свободная - комбинированная политика работы кэша, допускающая (необязательное) хранение копий некоторых строк кэшей меньших уровней.

WT (write-through), сквозная запись - проведение записи в кэш следующего уровня или память сразу после записи в данный уровень. Упрощает взаимодействие кэшей (при большом темпе записей и отсутствии - в ущерб производительности).

WB (write-back: «обратная запись»), отложенная запись - проведение записи в кэш следующего уровня или память много позже записи в данный уровень (например, при вытеснении этой строки при ). Усложняет взаимодействие кэшей, но позволяет осуществить . Не путать с стадией конвейера.

WC (write combine: слияние записи) - операция замены нескольких записей по одинаковому адресу последней из этих записей и/или замены нескольких записей по последовательным адресам одной записью совокупной длины. Выполняется в очереди записи и отдельном , увеличивая производительность при большом темпе записей.

coherency, когерентность - согласование содержимого кэшей в многоядерной и/или многопроцессорной системе с помощью протокола когерентности. Разные протоколы описывают 4–5 состояний кэша, определяющих действия при её локальных и удалённых чтениях и записях, а также (по первым буквам состояний) название самого протокола (чаще всего - MESI, MOESI и MESIF). С числом ядер растут сложность соблюдения когерентности и синхронизирующий её -трафик.

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

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

IO, I/O (input-output), ввод-вывод - общее название операций или блоков для обмена даннымимежду процессором и периферией.

BIU (bus interface unit: блок шинного интерфейса) - контроллер шины между процессором и северным мостом чипсета или межпроцессорной шины.

Описание и назначение процессоров

Определение 1

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

Чем мощнее процессор, тем выше быстродействие ПК.

Замечание

Центральный процессор часто называют просто процессором, ЦПУ (Центральное Процессорное Устройство) или CPU (Central Processing Unit), реже – кристаллом, камнем, хост-процессором.

Современные процессоры являются микропроцессорами.

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

Рисунок 1. Микропроцессор Intel 4004 (1971 г.)

Рисунок 2. Микропроцессор Intel Pentium IV (2001 г.). Слева – вид сверху, справа – вид снизу

ЦП предназначен для автоматического выполнения программы.

Устройство процессора

Основными компонентами ЦП являются:

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

Рисунок 3. Упрощенная схема процессора

Принципы работы процессора

ЦП работает под управлением программы, которая находится в оперативной памяти.

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

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

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

Характеристики процессора

Тактовая частота указывает частоту, на которой работает ЦП. За $1$ такт выполняется несколько операций. Чем выше частота, тем выше быстродействие ПК. Тактовая частота современных процессоров измеряется в гигагерцах (ГГц): $1$ ГГц = $1$ миллиард тактов в секунду.

Для повышения производительности ЦП стали использовать несколько ядер, каждое из которых фактически является отдельным процессором. Чем больше ядер, тем выше производительность ПК.

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

Разрядность шины данных указывает на количество информации (в байтах), которое можно передать за $1$ раз (за $1$ такт). От разрядности адресной шины зависит максимальный объем оперативной памяти, с которым может работать ЦП.

От частоты системной шины зависит количество данных, которые передаются за отрезок времени. Для современных ПК за $1$ такт можно передать несколько бит. Важна также и пропускная способность шины, равная частоте системной шины, умноженной на количество бит, которые можно передать за $1$. Если частота системной шины равна $100$ Мгц, а за $1$ такт передается $2$ бита, то пропускная способность равна $200$ Мбит/сек.

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

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

Замечание 1

Существует кэш-память трех видов:

  • Кэш-память $1$-го уровня самая быстрая, находится в ядре ЦП, поэтому имеет небольшие размеры ($8–128$ Кб).
  • Кэш-память $2$-го уровня находится в ЦП, но не в ядре. Она быстрее оперативной памяти, но медленнее кэш-памяти $1$-го уровня. Размер от $128$ Кбайт до нескольких Мбайт.
  • Кэш-память $3$-го уровня быстрее оперативной памяти, но медленнее кэш-памяти $2$-го уровня.

От объема этих видов памяти зависит скорость работы ЦП и соответственно компьютера.

ЦП может поддерживать работу только определенного вида оперативной памяти: $DDR$, $DDR2$ или $DDR3$. Чем быстрее работает оперативная память, тем выше производительность работы ЦП.

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

Типы процессоров

Основной компанией, выпускающей ЦП для ПК, является компания Intel. Первым процессором для ПК был процессор $8086$. Следующей моделью была $80286$, далее $80386$, со временем цифру $80$ стали опускать и ЦП стали называть тремя цифрами: $286$, $386$ и т.д. Поколение процессоров часто называют семейством $x86$. Выпускаются и другие модели процессоров, например, семейства Alpha, Power PC и др. Компаниями-производителями ЦП также являются AMD, Cyrix, IBM, Texas Instruments.

В названии процессора часто можно встретить символы $X2$, $X3$, $X4$, что означает количество ядер. Например в названии Phenom $X3$ $8600$ символы $X3$ указывают на наличие трех ядер.

Итак, основными типами ЦП являются $8086$, $80286$, $80386$, $80486$, Pentium, Pentium Pro, Pentium MMX, Pentium II, Pentium III и Pentium IV. Celeron является урезанным вариантом процессора Pentium. После названия обычно указывается тактовая частота ЦП. Например, Celeron $450$ обозначает тип ЦП Celeron и его тактовую частоту – $450$ МГц.

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

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

Определение 2

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

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

Что такое центральный процессор

В данном случае, речь идет о центральном процессоре. Ведь в компьютере есть и другие, например, видеопроцессор.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

КЭШ процессора состоит из двух основных уровней: верхнего и нижнего. Самые последние команды и данные отправляются в верхний кэш, а те, которые не используются, идут в нижний.

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

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

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

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

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

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

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

Нужно отметить, что у обоих вариантов существуют свои сильные и слабые стороны. К примеру, Intel отличаются такими плюсами :

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

В то же время, присутствуют и свои минусы :

  • Как правило, стоимость чипсетов Intel дороже, чем аналог AMD;
  • При работе с несколькими тяжелыми программами падает производительность;
  • Графические ядра слабее, чем у конкурента.

AMD отличаются следующими преимуществами :

  • Гораздо более выгодное соотношение цены и качества;
  • Способны обеспечить надежную работу всей системы;
  • Присутствует возможность разогнать процессор, увеличив на 10-20% его мощность;
  • Более мощные интегрированные графические ядра.

Однако AMD уступает по следующим параметрам:

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

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

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

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

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

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

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

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

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

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

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

Вывод

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

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

Структура центрального процессора

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

Блок управления процессором;

Регистры команд и данных;

Арифметико-логические устройства (выполняют арифметические и логические операции);

Блок операций с действительными числами, то есть с числами с плавающей точкой или проще говоря с дробями (FPU);

Буферная память (кэш) первого уровня (отдельно для команд и данных);

Буферная память (кэш) второго уровня для хранения промежуточных результатов вычислений;

В большинстве современных процессоров имеется и кэш третьего уровня;

Интерфейс системной шины.

Принцип работы процессора

Алгоритм работы центрального процессора компьютера можно представить как последовательность следующих действий.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ядра

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

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

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

Задача ядер

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

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

Регистры

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

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

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

Заключение

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

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



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows