Ядра. Каждое ядро процессора содержит в себе все необходимые элементы для выполнения
вычислений. Чем больше ядер – тем больше параллельных вычислений может процессор. Это
полезно для многозадачности и некоторых ресурсоёмких задач.
Как же работает ядро? По своей сути ядро – это огромная фабрика по преобразованию данных –
на входе получаем одно, на выходе получаем другое. Внутри много транзисторов – это
миниатюрные переключатели, которые могут быть в двух состояниях, пропускать ток, или не
пропускать. Эти состояния интерпретируются как нули и единицы, поэтому компьютер работает в
двоичном коде.
Казалось бы, простой переключатель, что с ним можно сделать? Оказывается, очень много! Если
по-умному соединить несколько транзисторов между собой, получаются, так называемые
логические вентили. Получаются физические аналоги функций по типу «если», «но». Если на входе
по обоим проводам течёт ток, то на выходе тоже будет, или не будет, или в одном будет, в другом
– нет. Всё зависит от функции. Но дальше эти вентили можно комбинировать в более сложные
схемы и заставлять процессор делать другие операции, складывать умножать, сравнивать и так
далее, поэтому ядро процессора состоит из множества блоков, каждый из которых делает что-то
своё, как разные цеха на фабрике.
А как же процессору понять, что именно делать с данными? Для этого мы должны загрузить в
процессор инструкции (команды, которые говорят: это надо сложить, это – перемножить, это –
переместить и так далее). Вообще инструкций очень много и для каждого типа процессора они
свои. Например, в мобильных чипах используется более сокращённый простой набор, в
персональных компьютерах инструкция посложнее, поэтому программы с мобильников не
запускаются на ноутбуках и наоборот.
Но для процессора недостаточно просто сказать: вот тебе данные, сделай то-то. Нужно сказать,
откуда взять информацию и куда её положить. Тут-то мы и перейдём к памяти. Для выполнения
команды ядру необходимо получить 2 адреса в памяти, откуда взять, куда положить. И вообще
все данные, инструкции, адреса процессор берёт из оперативной памяти, оперативная память
очень быстрая, но современные процессоры намного быстрее, поэтому, чтобы сократить простой,
в современных процессорах есть более быстрая cash-память, как правило, ставят cash трёх
уровней (иногда и четырёх),
Чем больше кэша, тем реже процессор обращается к оперативке, и тем реже он простаивает.
Ещё одна фишка, которая оптимизирует работу процессора это – предсказатель переходов. Это
специальный алгоритм, который не дожидается поступления новой инструкции, а пытается её
предугадать, такой алгоритм позволяет многократно ускорить работу ядра, но цена ошибки –
велика, поэтому инженеры постоянно оптимизируют её.
Микроархитектура. Все компоненты ядра и то, как между ними устроено взаимодействие -
называется микроархитектура. Чем грамотней устроена микроархитектура, тем больше
инструкций одновременно может выполнять процессор. Этот параметр называется IPC. Это
значит, что если у двух процессоров одинаковая тактовая частота, то вообще не факт, что у них
равны производительности. Чем лучше устроена микроархитектура, тем выше у них IPC.
Система на чипе. Современные процессоры это не только ЦП, это множество различных модулей,
выстроенных в общую систему. Один из которых - графический процессор. Он устроен так же, как
и центральный, у него тоже есть ядра, кэш и он тоже выполняет инструкции, но в отличие от
центрального процессора, он заточен только под одну задачу – отрисовывать пиксели на экране.
Поэтому в графических процессорах ядра устроены гораздо проще, их даже называют не ядрами,
а графическими блоками, чем больше таких блоков – тем лучше. Графика бывает разных типов: от
J1 до J7, а исполнительных блоков бывает от 32 до 64. Также для графики очень важна скорость
оперативки.