Как работает процессор и что важно знать?

Разбираемся в том, как работают процессоры Intel, какие фишки в них есть и каким образом они построены. Как всегда — доступно и понятно!
aka_opex 30 июня 2020 в 03:54

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

Intel® Core™ i7-1065G7, Ice Lake (10-е поколение), техпроцесс — 10 нм

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

Сегодня мы разберем базовые элементы процессора и на практике проверим за что они отвечают. В этом нам поможет красавец-ноутбук — Acer Swift 7 с процессором Intel на борту.

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

Модель нашего процессора i7-1065G7. Он четырёхядерный и ядра очень хорошо видны на фотографии.

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

Например, для теста мы одновременно запустили четыре 4К-видео. Нагрузка на ядра рспределяется более менее равномерно: мы загрузили процессор на 68%. В итоге больше всего пришлось переживать за то хватит ли Интернет-канала. Современные процессоры отлично справляются с многозадачностью.

Почему это важно? Чтобы ответить на этот вопрос, давайте разберемся — как же работает ядро?

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

Можно сказать, что компоненты внутри компьютера общаются между собой при помощи подобия Азбуки Морзе, которая тоже является примером двоичного кода. Только компьютер отстукивает нам не точки и тире, а нолики и единички. Казалось бы, вот есть какой-то переключатель, и что с ним можно сделать? Оказывается очень многое!

Если по хитрому соединить несколько транзисторов между собой, то можно создать логические вентили. Это такие аналоговые эквиваленты функции “если то”, ну как в Excel. Если на входе по обоим проводам течет ток, то на выходе тоже будет течь или не будет или наоборот, вариантов не так уж и много — всего семь штук.

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

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

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

Но как процессор поймёт, что именно нужно делать с данными? Для этого помимо данных, мы должны загрузить инструкции. Это такие команды, которые говорят процессору:

  • это надо сложить,
  • это перемножить,
  • это просто куда-нибудь отправить.

Инструкций очень много и для каждого типа процессора они свои. Например, в мобильных процессорах используется более простой сокращённый набор инструкций RISC — reduced instruction set computer.

А в ПК инструкции посложнее: CISC — complex instruction set computer.

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

Память

Для выполнения команды ядру нужно минимум два адреса: откуда взять исходные данные и куда их положить.

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

Самая быстрая память — это кэш первого уровня, обозначается как L1 cache. Обычно он всего несколько десятков килобайт. Дальше идёт L2 кэш он уже может быть 0,5-1 мб. А кэш третьего уровня может достигать размера в несколько мегабайт.

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

В нашем процессоре кэша целых 8 мб, это неплохо.

Думаю тут всё понятно, погнали дальше.

Тактовая частота

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

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

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

Современные процессоры умеют варьировать частоту в зависимости от сложности задачи. Например, если мы ничего не делаем и наш процессор работает на частоте 1,3 ГГц — это называется базовой частотой. Но, к примеру, если архивируем папку и мы видим как частота сразу увеличивается. Процессор переходит в турбо-режим, и может разогнаться аж до 3,9 ГГц. Такой подход позволяет экономить энергию, когда процессор простаивает и лишний раз не нагреваться.

А еще благодаря технологии Intel Hyper-threading, каждое ядро делится на два логических и мы получаем 8 независимых потоков данных, которые одновременно может обрабатывать компьютер.

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

Вычислительный конвейер

Так как ядро процессора — это конвейер, все операции через стандартные этапы. Их всего четыре штуки и они очень простые. По-английски называются: Fetch, Decode, Execute, Write-back.

  1. Fetch — получение
  2. Decode — раскодирование
  3. Execute — выполнение
  4. Write-back — запись результата

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

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

Предсказатель переходов

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

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

Микроархитектура

Все компоненты ядра, как там всё организовано, всё это называется микроархитектурой. Чем грамотнее спроектирована микроархитектура, тем эффективнее работает конвейер. И тем больше инструкций за такт может выполнить процессор. Этот показатель называется IPC — Instruction per Cycle.

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

В процессорах Ice Lake, Intel использует новую архитектуру впервые с 2015 года. Она называется Sunny Cove.

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

Система на чипе

Естественно, современные процессоры — это не только центральный процессор. Это целые системы на чипе с множеством различных модулей.

ГП

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

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

В десятом поколении графика бывает нескольких типов от G1 до G7. Это указывается в названии процессора.

А исполнительных блоков бывает от 32 до 64. В прошлом поколении самая производительная графика была всего с 24 блоками.

Также для графики очень важна скорость оперативки. Поэтому в новые Intel завезли поддержку скоростной памяти DDR4 с частотой 3200 и LPDDR4 с частотой 3733 МГц.

У нас на обзоре ноутбук как раз с самой топовой графикой G7. Поэтому, давайте проверим на что она способна! Мы проверили его в играх: CS:GO, Dota 2 и Doom Eternal.

Что удобно — Intel сделали портал gameplay.intel.com, где по модели процессора можно найти оптимальные настройки для большинства игр.

В целом, в Full HD разрешении можно комфортно играть в большинство игр прямо на встроенной графике.

Thunderbolt

Но есть в этом процессоре и вишенка на торте — это интерфейс Thunderbolt. Контроллер интерфейса расположен прямо на основном кристалле, вот тут.

Такое решение позволяет не только экономить место на материнской плате, но и существенно сократить задержки. Проверим это на практике.

Подключим через Thunderbolt внешнюю видеокарту и монитор. И запустим те же игры. Теперь у нас уровень производительности ноутбука сопоставим с мощным игровым ПК.

Но на этом приколюхи с Thunderbolt не заканчиваются. К примеру, мы можем подключить SSD-диск к монитору. И всего лишь при помощи одного разъёма на ноуте мы получаем мощный комп для игр, монтажа и вообще любых ресурсоемких задач.

Мы запустили тест Crystalmark. Результаты вы видите сами.

Но преимущества Thunderbolt на этом не заканчиваются. Через этот интерфейс мы можем подключить eGPU, монитор, и тот же SSD и всё это через один кабель, подключенный к компу.

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

Зачем нам нужны нейронные процессоры?

Нейросети и нейропроцессоры — это наше настоящее и, безусловно, наше будущее! Именно искусственный интеллект помогает смартфонам стать ещё круче!
aka_opex 25 июня 2020 в 09:53

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

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

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

Как работают нейросети?

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

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

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

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

А вот так для нейросети выглядит кошка или собака. У искусственного интеллекта явно свои представления о мире.

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

— Ага! Совпало. Узнаю, это кошка.

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

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


Всё вроде бы просто, да не совсем. В нейросетях очень много нейронов и весов. Даже в простой однослойной нейросети, которая распознает цифры на картинках 28 x 28 пикселей для каждого из 10 нейронов используется 784 коэффициента, т.е. веса, итого 7840 значений. А в глубоких нейросетях таких коэффициентов миллионы.

CPU

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

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

Где же взять такой процессор? В офисе IBM? В секретных лабораториях Пентагона?

GPU

На самом деле такой процессор есть у многих из вас дома. Это ваша видеокарта.

Видеокарты как раз заточены на простые параллельные вычисления — отрисовку пикселей! Чтобы вывести на 4K-монитор изображение, нужно отрисовать 8 294 400 пикселей (3840×2160) и так 60 раз в секунду (или 120/144, в зависимости от возможностей монитора и пожеланий игрока, прим.ред.). Итого почти 500 миллионов пикселей в секунду!

Видеокарты отличаются по своей структуре от CPU. Почти всё место в видеочипе занимают вычислительные блоки, то есть маленькие простенькие ядра. В современных видюхах их тысячи. Например в GeForce RTX2080 Ti, ядер больше пяти тысяч.

Всё это позволяет нейросетям существенно быстрее крутиться GPU.

Производительность RTX2080 Ti где-то 13 TFLOPS (FLOPS — FLoating-point Operations Per Second), что значит 13 триллионов операций с плавающей запятой в секунду. Для сравнения, мощнейший 64-ядерный Ryzen Threadripper 3990X, выдаёт только 3 TFLOPS, а это заточенный под многозадачность процессор.

Триллионы операций в секунду звучит внушительно, но для действительно продвинутых нейронных вычислений — это как запустить FarCry на калькуляторе.

Недавно мы игрались с алгоритмом интерполяции кадров DAIN, основанном на машинном обучении. Алгоритм очень крутой, но с видеокартой Geforce 1080 уходило 2-3 минуты на обработку одного кадра. А нам нужно чтобы подобные алгоритмы работали в риалтайме, да и желательно на телефонах.

TPU

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


Производительность второй версии 180 TFLOPS, а третьей — целых 420 TFLOPS! 420 Триллионов операций в секунду. Как они этого добились?

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

Такой кластер из тензорных процессоров третьей версии могут выдать 430 PFLOPS (пета флопс) производительности. Если что, это 430 миллионов миллиардов операций в секунду.

Где мы и что нас ждёт?

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

В 2000 году первый суперкомпьютер с производительностью 1 терафлопс занимал 150 квадратных метров и стоил 46 миллионов долларов.

Спустя 15 лет NVIDIA мощностью 2?3 терафлопса, которая помещается в руке стоит 59$.

Так что в следующие 15-20 лет суперкомпьютер Google тоже поместится в руке. Ну или где мы там будем носить процессоры?

Кадр из режиссерской версии фильма «Терминатор-2»

А мы пока ждём момента, довольствуемся нейромодулями в наших смартфонах — в тех же Qualcomm Snapdragon’ах, Kirin’ах от Huawei и в Apple Bionic — они уже тихо делают свою работу.

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

 

Топ-10 мобильных процессоров по версии AnTuTu

Илья Рябов 7 марта 2016 в 01:38

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

Antutu

В официальном блоге появились данные о 10 самых производительных мобильных процессоров начала 2016 года.
(далее…)

Helio X20 от MediaTek поражает производительностью

Илья Рябов 23 декабря 2015 в 07:28

Helio X20 — топовый процессор, над которым трудятся инженеры MediaTek, ещё до выхода смартфонов разогревая публику. Это и отличало чипсет китайцев от Snapdragon 810, который подогревал, как правило, смартфоны.

Helio X20

Результаты GeekBench доказывают другие преимуществе процессора, а именно производительность: Helio X20 показал впечатляющие результаты в тесте.
(далее…)

Huawei работает над собственными GPU и чипом памяти

Егор Беляков 21 декабря 2015 в 06:32

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

Собственные комплектующие позволили бы корпорации существенно увеличить производительность смартфонов. Сейчас вендор из Поднебесной использует графику Mali от ARM.
(далее…)

Первые подробности о Helio X30 от MediaTek

Илья Рябов 12 ноября 2015 в 04:12

Похоже, MediaTek не оставляет шансов на реабилитацию процессора Snapdragon 820, который лишён проблем с перегревом.

MediaTek Helio X30
Уже на следующий день после презентации Qualcomm, от тайваньской компании произошла «утечка», касающаяся спецификаций флагманского чипсета Helio X30.
(далее…)

Планшет MiPad 2 от Xiaomi может получить процессор от Intel

Илья Рябов 6 августа 2015 в 05:28

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

MiPad

По слухам, компания Xiaomi рассматривает возможность установить чипсет от Intel в новом планшете.
(далее…)

Project Ganesh повысит производительность Chrome на Android

Егор Беляков 20 ноября 2014 в 04:42

Google совсем скоро улучшит производительность браузера Chrome для Android с помощью нового проекта, который получил название Project Ganesh.

Дудл от Google с богом Ганешем

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