Архитектура процессора — что это за хитрое понятие??
В этой статье вы получите развернутый ответ на вопрос «что такое архитектура процессора». Также после ее прочтения вы узнаете о разновидностях архитектуры и научитесь различать их обозначения.

Объяснение термина
Под архитектурой процессора понимается комбинация из:
- Микроархитектуры — способ ее реализации, то есть составные части проца и методы их взаимодействия между собой и описанными ниже компонентами;
- АНК — набор команд, включая модель исполнения, регистры устройства, форматы данных и адресов.
- Микрокода — делает понятными команды уровня АНК для микроархитектуры.
Если рассматривать архитектуру со стороны программистов, то его можно объяснить как совместимость с определенным набором команд (допустим, девайсы, соответствующие командам Intel x86), их структуру (например, как организована система адресации или регистровая память), а также метод исполнения (к примеру, счетчик команд).
Смотря на архитектуру как на аппаратную составляющую компьютера, мы увидим другую картину. Это определенный набор характеристик, которому соответствует целое семейство процессоров, то есть их внутренняя конструкция.
Классификация архитектур
По скорости и количеству выполняемых команд архитектуры делятся на:
- CISC. На английском языке расшифровывается как «Complex Instruction Set Computing», то есть «Комплексный набор команд». Устройствам этого типа свойственно большое количество режимов адресации и команд разного формата и длины, а также сложная кодировка инструкции.
- RISC. Первое слово в расшифровке заменено на «Reduced», что на нашем языке — «Сокращенный». Это значит, что все команды имеют одинаковый формат и кодировку.
- MISC (Multipurpose — Многоцелевой ). База элементов делится на две части, которые находятся или в одном корпусе, или в отдельных. Главной выступает RISC CPU. Он дополнен другой частью — постоянным запоминающим устройством микропрограммного управления. Системе присущи характеристики CISC. Большинство команд выполняет первая часть, а команды расширения преобразуются в адрес микропрограммы.

Также существует классификация процессоров, и соответственно архитектур, по назначению:
- Графические. Как видеокарта отвечает за визуализацию объектов на экране.
- Математические. Нацелены на расширение набора команд, выполняемых центральным процессором, для решения различных математических задач.
- Цифровые сигнальные. Специализированные устройства, предназначенные для обработки оцифрованных сигналов.
С физической точки зрения девайсы разделяются по количеству ядер, которые отвечают за выполнение команд. Если их больше одного, устройства называются многоядерными.
Разбор обозначений
В теме о процессорах вы можете столкнуться с их цифровыми обозначениями типа x64, x86 и пр. Давайте разберемся, что все это значит. Разложу по полочкам.
8086 и компания
В 1978 году компания Intel выпустила 16-битный процессор, получивший название 8086.


После него выходили другие модели, в наименованиях которых первые две цифры оставались прежними, а последние менялись на 88, 186, 286, 386, 486 и прочие.
Вот пример i386.
Как вы заметили, почти все имена заканчиваются одинаково, поэтому все семейство объединили под условное обозначение x86. Оно устоялось среди пользователей и применялось даже когда Интел начала давать своим продуктам словарные названия типа Пентиум, Кор, Атом и т. д. Переняли эту «моду» и другие производители устройств, совместимых с этим семейством, — IBM, VIA, AMD, Cyrix и др.
Чаще всего это обозначение сейчас используется по отношению к 32-битным процессорам. Они также могут называться, к примеру, i386, i486, i586, когда требуется дать более точные сведения о наборе инструкций.
Совершенствование до 64 бит
Компания Intel модернизировала процессоры с 16-битной шиной до 32 бит. Однако AMD приложила усилия к усовершенствованию их до х64. Первый такой продукт она выпустила в 2003 году, не став заморачиваться над названием — просто «AMD64».

Чтобы показать повышенную разрядность процессоров, стали к обозначению «x86» добавлять «64», к примеру, x86_64.
Интел решила выделиться, помечая такие устройства сначала как «IA-32e», а потом «EM64T». Но сейчас чаще можно встретить «Intel 64».
Как узнать архитектуру?
В случае с новыми ЦП прочитать их характеристики можно в инструкции или непосредственно на коробке. Но что делать, если вы берете устройство с рук? Или может быть хотите знать, какая архитектура у вашего проца? Выяснить это можно несколькими способами.
Средства системы
Выполните следующие действия:
- Откройте командную строку через меню «Пуск — Программы — Стандартные» или другим удобным способом.
- Впишите в нее слово systeminfo.
- Нажмите Enter.
Перед вами появятся сведения об операционке, среди которой будет и архитектура процессора.

- Щелкните правой кнопкой мыши на значке «Мой компьютер»;
- Откройте «Свойства»;
- Перейдите в «Диспетчер устройств»;
- Кликните пункт «Процессор».
И тоже получите все данные о нем.

Сторонние программы
Одной из хороших программ, помогающих узнать все о проце, является CPU-Z .
Она бесплатная и распространенная, поэтому вы без проблем ее отыщите и скачаете.
Вам нужно лишь установить и запустить ее, чтобы посмотреть необходимую информацию.
В качестве альтернативного варианта могу предложить еще одну достойную прогу — AIDA 64 . Она платная (Есть триал период), зато может рассказать все о вашем железе в целом, не только о ЦП. Кстати, если вы не захотите платить, можете воспользоваться демо-версией.
Получить сведения о процессоре через нее можно, перейдя по разделам «Компьютер — Системная плата — ЦП».

На этом буду заканчивать.
Чтобы не забывать заглядывать ко мне чаще и узнавать больше новой интересной информации, подписывайтесь на обновления.
Что такое архитектура процессора, какая бывает и используется в смартфонах
С момента изобретения первых электронно-вычислительных машин в первой половине 20 века произошла только одна истинная революция. Случилось это в 50-60-х годах, когда на смену громоздким вакуумным лампам пришли полупроводниковые технологии. Тогда в качестве основного материала для их производства были выбраны кристаллы кремния. На них, с помощью различных технологий, вытравливаются миниатюрные транзисторы и связующие их цепи. С тех пор, на протяжении полувека, меняется в сторону уменьшения только размер транзисторов (техпроцесс), и увеличивается их количество на кристалле.
В условиях использования единой технологии (и отсутствия практически применимых альтернатив, так как до массового внедрения квантовых процессоров еще далеко) единственным способом приспособить вычислительные чипы под те или иные задачи — стало изобретение различных архитектур ЦП.
Что такое архитектура процессора
Архитектура процессора — это совокупность главных принципов его конструирования, общая схема расположения деталей на кремниевом кристалле и схема взаимодействия программного обеспечения с чипом. Если еще более упрощенно, то архитектура — это схема, по которой устроен процессор.
За все время было создано много различных архитектур. Самые популярные из них — CISC, MISC, VLIW и RISC. Различия между ними касаются, главным образом, системы взаимодействия процессора с обрабатываемыми данными. Сейчас активно используются конвейерные архитектуры CISC и RISC.
Как работает архитектура процессора
В конвейерной архитектуре данные обрабатываются последовательно, переходя от одного этапа к следующему. Например, на первом этапе процессор получает инструкцию, на втором — производится чтение данных из памяти, на третьем — осуществляется вычислительная операция, а на четвертой — выдача полученного результата. Когда первый этап конвейера освобождается — он может приступить к выполнению следующей инструкции. Этот процесс можно сравнить с работой автозавода: когда работник прикручивает последнюю ступицу колеса — конвейер двигается дальше. Второй работник прикручивает колеса на ступицы, а первый — опять прикручивает ступицы на следующей машине.
Количество стадий конвейера может быть разным. Если программа получает данные исправно, в них не содержится ошибок, то такой подход повышает производительность. Чем длиннее конвейер — тем больше операций выполняется за такт (1 герц частоты процессора). В аналогии с автозаводом, количество этапов конвейера — это количество работников за лентой, по которой двигаются кузова собираемых машин. Чем больше мегагерц — тем быстрее движется лента, тем быстрее работают сборщики. Однако если первый работник что-то сделает не так — получится брак, машину придется собирать заново.
В процессоре все аналогично: если на раннем этапе конвейера происходит ошибка — конвейер нужно перезапускать. Это замедляет производительность и приводит к пустым тратам энергии. Так как для компактных и мобильных устройств энергоэффективность очень важна — специально для них была создана архитектура RISC. От CISC она отличается упрощенным набором команд, которые принимает процессор, и укороченным конвейером. Такая особенность приводит к снижению производительности на фоне CISC (а компьютерные x86-процессоры Intel и AMD построены на ней), но позволяет минимизировать пустую трату энергии.
Архитектура процессоров ARM
Всевозможные MIPS, PowerPC, SPARC и прочие архитектуры типа RISC оставим IT-специалистам. Когда дело касается смартфонов — стоит детальнее уделить внимание ARM, Это — разновидность RISC архитектуры с коротким конвейером, которая является одной из самых распространенных и удачных. Именно ARM использует большинство производителей (Qualcomm, MediaTek, Apple, Samsung, Huawei-HiSilicon и другие). Только Intel в своих SoC атом используют x86-совместимые CISC ядра.
Особенностью ARM процессоров является использование короткого конвейера. Его длина составляет 3 и более этапов, что немного на фоне десятков стадий у CISC. За счет этого сбои в работе конвейера минимально сказываются на скорости обработки программ, максимально эффективно нагружая каждый такт. Поэтому именно ARM стала самой популярной архитектурой процессоров для смартфонов и планшетов.
Архитектура и микроархитектура процессора
Довольно часто в СМИ и интернете происходит путаница между понятиями архитектуры и микроархитектуры процессора. Чтобы внести ясность, следует установить отношение между данными терминами. Так вот, архитектура — это общий принцип устройства и работы процессора, а микроархитектура — всего лишь один из вариантов ее реализации, имеющий свои особенности, но сохранающий совместимость с базовой архитектурой.
Виды микроархитектур ARM для смартфонов
Большинство чипсетов для смартфонов содержат процессоры, созданные на ARM, а именно — микроархитектурах семейства Cortex и других. Список актуальных версий и их отличия приведены ниже.
-
Cortex A7. Устаревающая микроархитектура процессоров для смартфонов. Отличается низким энергопотреблением, имеет конвейер из 8-10 этапов. Не умеет работать с 64-битными инструкциями. Относится к семейству ARMv7.
Архитектура процессора — что это такое, на что влияет и какие есть отличия?

Привет! Об архитектурах процессора, я уверен, вы слышали. Но если спрашиваешь, кто как понимает, что это такое, часть обычно затрудняется с ответом, а часть и вовсе путает архитектуру и разрядность, не видя в них разницы. Поэтому я решил сделать отдельный материал, чтобы внести ясность, что значит архитектура процессора, влияет на что и как посмотреть её с помощью простых программ.
Что такое архитектура CPU
Если вы уже пробовали узнать больше об архитектурах процессора, то наверняка видели, насколько по-разному авторы статей могут формулировать описание этого термина. И пусть они в целом говорят об одном и то же, разность подачи нередко приводит к тому, что читатели путаются. Я постараюсь этого избежать.
В одном из своих материалов я уже рассказывал об инструкциях процессора, поэтому для лучшего понимания темы напомню, что это.
Любая программа любой сложности, даже ОС Windows 10, состоит из набора команд, которые процессор должен выполнить. Чтобы процессору это удавалось, в него закладывается набор инструкций. Процессор использует инструкции, чтобы правильно обработать каждый запрос программы, благодаря чему она и работает. То есть процессор должен знать инструкции, а программа — быть под них заточена. В этом симбиозе считай весь смысл использования ПК.
Так вот, если говорить простыми словами, архитектура расскажет вам о составе инструкций процессора и особенностях их обработки.
Какие существуют виды
Можно сказать, что архитектур много, но все их перечислять нет необходимости. Тем более, вряд ли можно найти информацию прямо о всех-всех сборках инструкций. Но их знать и не обязательно, гораздо полезнее будет разобраться в видах, объединяющих в себе сразу много архитектур.
В первую очередь, бывают CISC и RISC. CISC — это Complex Instruction Set Computer, тип с полным набором команд. Считается, что разработчики здесь относятся к фирме IBM, и для основы использовали набор команд для IBM/360.
Среди характеристик CISC:
- Длина команды может быть любой, поэтому больших инструкций много. Они выполняются не за один такт, а за несколько.
- Вычислительные арифметические действия выполняются по одному.
- Число регистров небольшое, каждое занято собственной функцией.
Среди наиболее популярных CISC-архитектур, например, х86 от Intel и x86_64 от AMD.
Когда CISC достигла своеобразного потолка развития, её логичным продолжением стала RISC — Reduced Instruction Set Computer, то есть компьютер с сокращённым набором собственных команд.
Главное отличие от CISC — сокращённые набор команд, которые, в большинстве, выполняются по одной за такт. Регистров гораздо больше, чем у CISC-процессоров. И пусть программы из-за RISC стали длиннее из-за использования множества мелких команд, процессоры с этой архитектурой всё равно отличаются сниженным энергопотреблением.
И несмотря на то, что RISC опережали CISC по производительности, они не полностью заменили собой предыдущую архитектуру. Среди основных причин — популярные Intel x86 и x86_64 от AMD сделаны на CISC, и многие компании слишком щедро вложились в технологию, чтобы от неё отказываться. А вскоре Intel смогла ещё улучшить CISC, благодаря добавлению RISC-ядра и некоторых других элементов.
На RISC сделаны ARM, MIPS, PowerPC, SPARC. На SPARC создан российский R1000 от МЦСТ, а на ядре MIPS Warrior — Baikal-T1 от «Байкал Электроникс».
Также нельзя оставить без внимания MISC и VLIW. Здесь:
- MISC — это Minimal Instruction Set Computer, что значит «компьютер с минимальным набором команд». Здесь энергопотребление ниже, но производительность может быть повышена за счёт выполнения команд до того, как станет понятно, нужны они или нет.
- VLIW, наоборот, переводится как Very Long Instruction Word, то есть называется «очень длинная машинная команда». Здесь предполагается, что некоторые инструкции могут выполняться одновременно, а не по очереди. Это своего рода CISC-архитектура, но доработанная. На VLIW сделаны Intel Itanium, Эльбрус-3.
На эти базисы опирается большинство архитектур, а CISC остаётся наиболее популярной, так как на ней сделаны основные сборки инструкций Intel и AMD, ключевых игроков рынка.
Влияние на производительность
Пока вам могло быть непонятно, какая польза от знания архитектур, но я сейчас расскажу и об этом. Ведь здесь всё опирается на производительность процессора.
В первую очередь, дело как раз таки в самих инструкциях, которые входят в состав сборок. Ведь я уже рассказывал, что есть универсальные инструкции, которые и позволяют процессору обрабатывать запросы пользователя, а есть дополнительные, сделанные для оптимизации работы CPU.
Чем больше инструкций процессор может обрабатывать, тем лучше, ведь с большим количеством инструментов можно оптимальнее выполнять задачи вне зависимости от их сложности.
При этом важно понимать, что дело не в скорости, за которую отвечает разрядность процессора. Дело именно в обработке запросов и подходе к их решению. Ведь, например, знание математических формул заметно упрощает работу над примерами.
Чем отличаются архитектуры процессоров и можно ли их сравнивать
Как я уже упоминал выше, архитектуры процессоров в основном отличаются длиной команд и принципами их обработки — за один такт, за несколько, целиком или разделяя. И может сложиться впечатление, что раз есть признаки, положительные и отрицательные качества, значит их можно и сравнивать, чтобы найти самые лучшие экземпляры. Но на самом деле, всё не так просто.
Базовые, о которых я упоминал, продолжают развиваться, как и их гибриды, потому что разработчики постоянно ищут лучшие решения.
Архитектуры, построенные на упомянутых базах, тоже улучшаются, и состав дополнительных инструкций, часто направленных на оптимизацию работы всего ПК, постоянно меняется, чтобы отвечать современным требованиям.
И это я ещё максимально упрощаю тему, потому что не рассказал вам ещё много важных деталей, которые делают картину более полноценной. Поэтому вы можете заняться тонким сравнением, но перед этим вам придётся гораздо глубже погрузиться в тему.
Как посмотреть какая архитектура используется
Узнать, какая архитектура принята для вашего процессора, можно попробовать через спецификации. Но на самом деле, там эта информация может и не встретиться. Лучше воспользоваться программами, которые предоставляют больше данных о ваших ПК, вроде CPU-Z.
Используя CPU-Z, будет легко разобраться, как узнать какая сборка инструкций принята для ЦП. Ведь здесь будет поле Instructions в первом же окне. Здесь подробнее, какими инструкциями пользуется ваш процессор, а также его архитектура. Обычно она предпоследняя в строчке.
Конечно того, что я рассказал вам сегодня, недостаточно, чтобы разобраться, что это такое — архитектуры процессора. Но общее представление о том, почему эта тема не такая простая, у вас теперь есть. А если захотите узнать больше, подпишитесь на мои социальные сети, чтобы новые публикации не прошли мимо вас. Всего доброго!
Как разрабатываются и создаются процессоры? Часть 1: Фундаментальные основы архитектуры процессоров

Существует общественное мнение, что процессор — мозг компьютера. Но как работает этот самый мозг, состоящий из миллиардов транзисторов? В этой небольшой серии статей (всего из четырех частей)портал Techspotрешил тщательно разобраться в том, что же заставляет работать ваше «железо».
В статьях будут затронуты такие темы, как принцип работы компьютерной архитектуры, дизайн микросхем процессоров, сверхбольшая масштабная интеграция (VLSI), создание чипов и грядущие тренды. Если вам всегда было интересно, как работают процессоры, то присаживайтесь прямо сейчас и наслаждайтесь чтением, потому что именно с этого и начнется данная статья.
Для началанужно понять, из чего состоит процессор, и как блоки соединяются в функциональное целое. Также будет затронута тема ядер процессоров, иерархии памяти, прогнозирования ветвлений и многого другого. Для начала, стоит дать базовое определение тому, что именно делает процессор. Если говорить простым языком, то процессор проводит операции над введенными командами, следуя конкретным инструкциям. Такой операцией может быть считывание значений из памяти, сложение этих значений, а затем сохранение их в другом отделе памяти. Или что-то более сложное — например, деление двух чисел, если результат предыдущего вычисления оказался выше нуля.
Любая программа, будь то операционная система или видеоигра, представляет собой набор инструкций, которые необходимо выполнить. Эти действия загружаются из памяти и запускаются по очереди, вплоть до окончания программы. Многие разработчики пишут программы на сложных языках программирования, например, C++ или Python, но стоит отметить, что процессор их попросту не понимает. Все, что он может — обработать нули и единицы, поэтому необходимо представить код в подобном формате.
Программы представляют собой набор низкоуровневых инструкций. Их называют языком ассемблера (assembly language), и они являются одной из частей архитектуры набора команд (ISA). Процессоры запрограммированы на распознавание и выполнение этих инструкций. Самыми распространенными архитектурами набора команд являются x86, MIPS, ARM, RISC-V и PowerPC. Каждая из них отличается друг от друга написанием кода, по аналогии с языками программирования.
Эти архитектуры можно разбить на две категории: архитектуры с фиксированной длиной и переменной длиной. RISC-V является архитектурой с фиксированной длиной, и это означает, что по количеству битов можно понять можно определить тип инструкции. Ее полная противоположность — это x86: архитектура с переменной длиной, в которой каждая инструкция может быть закодирована совершенно по-разному и с разным количеством битов в каждой части. Именно поэтому декодер инструкций на процессорах с архитектурой x86 является самой сложной деталью всего устройства.
Инструкции с фиксированной длиной декодируются легче и быстрее, но у таких архитектур существует лимит поддерживаемых инструкций. Так, самые распространенные процессоры на RISC-V с открытым доступом поддерживают около 100 инструкций, а x86 является закрытой архитектурой, поэтому никто не знает точного количества поддерживаемых инструкций. Многие считают, что это число достигает нескольких тысяч, но это лишь догадки. Тем не менее, несмотря на такую разницу, процессоры на обеих архитектурах выполняют одни и те же функции.
Примеры инструкций архитектуры RISC-V. Инструкция opcode справа занимает 7 бит, что, в свою очередь, определяет ее тип. Каждая инструкция состоит из битов, которые отвечают за то, какие регистры и функции будут выполняться. Так инструкции ассемблера превращаются в бинарный код, который процессор способен считывать.
Итак, теперь можно включать компьютер и запускать программы. Стоит отметить, что выполнение инструкции состоит из нескольких базовых шагов.
Первым таким шагом является перенос инструкции из памяти в сам процессор. На второй стадии инструкция декодируется, чтобы процессор смог понять, что это за инструкция. Типов инструкций много — от арифметических действий до инструкций памяти. После того, как процессор определил тип инструкции, он достает необходимые операнды из памяти или внутренних регистров. Объясняется это просто — вы не можете сложить числа A и B, если не знаете их значений. Стоит также упомянуть, что, так как многие современные процессоры 64-битные, то размер значения данных тоже будет составлять 64 бита.
64 бита — это пропускная способность регистра процессора; пути данных и/или адреса памяти. Чем больше бит, тем больше информации компьютер может обрабатывать за раз. Проще говоря, 64-битный процессор может обрабатывать в два раза больше информации, чем 32-битный.
После того, как процессор получил необходимые операнды, начинается выполнение инструкции и операций над введенными данными. Это может быть добавление чисел, проведение логических манипуляций или даже отсутствие действий, когда значение просто отправляется дальше. После подсчета результатапроцессор может снова обратиться к памяти, чтобы сохранить полученное значение там или же просто отложить полученное значение в одном из внутренних регистров. Только после того, как результат сохранен, процессор обновит состояние различных элементов и перейдет к выполнению следующей инструкции.
Следует отметить, что вся вышеперечисленная цепочка действий значительно упрощена, поскольку в реальных ситуациях большинство современных процессоров разделяют все эти действия на 20+ более мелких циклов, чтобы повысить эффективность. В профессиональной среде подобное называется пайплайном — чем-то вроде трубопровода, который постепенно заполняется жидкостью, но как только заполнится полностью, внутри создается постоянный поток.
Пример четырехступенчатого пайплайна. Цветные квадраты представляют собой независимые друг от друга инструкции.
Прохождение циклов — тщательно отлаженный процесс, но не все инструкции заканчиваются одновременно. Сложение, например, выполняется невероятно быстро, а вот делению или загрузке из памяти может потребоваться на выполнение несколько сотен циклов. Современные процессорывместо того, чтобы простаивать в ожидании завершения одной медленной инструкции, могут выполнять инструкции вне очереди. Процессор сам способен определить, какую инструкцию лучше выполнить в данный момент, а какие — после нее. Если выполняемая инструкция еще не готова, то система может забежать немного вперед, чтобы посмотреть, готово ли что-то другое.
Современные процессоры, кроме внеочередного выполнения инструкций, обладают также суперскалярной архитектурой. Это означает, что процессор может выполнять сразу несколько инструкций на каждом из этапов пайплайна. Для того, чтобы это было возможно, процессору необходимо иметь несколько копий каждого этапа пайплайна. Таким образом, если процессор видит две доступные для исполнения инструкции, между которыми нет никакой зависимости друг от друга, то он сможет одновременно выполнить обе. Такая технология называется одновременной многопотоковостью (SMT), более известной как гиперпотоковость (Hyper-Threading). Процессоры Intel и AMD поддерживают двухстороннюю одновременную многопотоковость, в то время как IBM разработала чипы, поддерживающие уже восьмистороннюю многопотоковость.
Для того, чтобы в точности прорабатывать подобную схему, процессорупомимо ядра для работы необходимы и другие элементы. В каждом процессоре расположены сотни модулей, причем каждый предназначен для специфической задачи, но в этой статье будут затронуты лишь самые важные. Основные два — это кэш и блок предсказания ветвлений.
Неопытных пользователей кэш может сбить с толку, ведь его главная задача — хранить данные, прямо как оперативная память или любой другой накопитель. Главное отличие кэша заключается в его огромной скорости и низкой задержке при работе с данными. Несмотря на то, что оперативная память обладает высокой скоростью работы с данными, она все еще в разы медленней кэша и слишком медленная для работы процессора. Если говоритьо более точных цифрах, то кэш быстрее оперативной памяти в 100 раз и в 1000 раз быстрее любого SSD. Без кэша процессоры работали бы в разы медленней.
Почти в каждом процессоре есть три уровня кэша — это называется иерархией памяти. Кэш 1 уровня (L1) самый быстрый и самый маленький, 3 уровня (L3), наоборот, крупнейший и медленный, а кэш 2 уровня (L2) — «золотая середина» между ними. Выше кэша в иерархии памяти стоят маленькие регистры, в которых сохраняется одиночное значение данных во время работы процессора. Эти регистры по скорости даже опережают кэш. Регистры используются, когда компилятор переводит высокоуровневые программы в язык ассемблера.
Когда процессор запрашивает данные из памяти, то он сначала проверяет, находятся ли эти данные в кэше первого уровня. Если они там есть, то процессор получает доступ к ним всего за пару циклов. Однако, если данных нет в кэше первого уровня, то процессор поищет их в кэше второго, а затем третьего уровня. С каждым уровнем будет снижаться скорость и увеличиваться задержка. Наконец, если в кэше данных не было, процессор начнет искать их уже в основной памяти (RAM).
В большинстве процессоров каждое ядро оснащено двумя кэшами первого уровня: один предназначен для данных, а другой — для инструкций. Кэш первого уровнязачастуюоколо 100 КБ в размере, хотя это число может отличаться в зависимости от процессора. Обычно на каждое ядро приходится по кэшу второго уровня, хотя в некоторых архитектурах процессоров может кэш может быть разделен между двумя ядрами. Размер этого кэша составляет уже несколько сотен килобайт. Самым большим (несколько десятков мегабайт) является кэш 3 уровня, который делится сразу между всеми ядрами процессора.
Во время обработки кода процессороминструкции и значения данных в большинстве случаев направляются в кэш. Так значительно увеличивается скорость выполнения задачи, поскольку процессору не нужно обращаться к главной памяти. Более подробно работа систем памяти будет рассмотрена во второй и третьей части этой серии статей.
Вторым важнейшим элементом процессора является блок предсказания ветвлений. Разветвленные инструкции являются чем-то вроде команды “если”, только в контексте процессора. Одна часть инструкций будет выполняться, если условие верно, а другая — если условие ложно. Пример: необходимо сравнить два числа, иесли числа равны, то выполнить одну функцию, а если нет — то другую. Ветвления довольно распространены изачастуюсоставляют около 20% всех инструкций программы.
На бумаге разветвленные инструкции звучат довольно просто, но для процессоров их выполнение может быть довольно проблематичным. Поскольку процессор может выполнять 10-20 инструкций одновременно, ему важно понимать, какие именно нужно обработать. Процессору может понадобиться 5 циклов, чтобы определить, является ли инструкция разветвленной, а затем до 10 циклов для того, чтобы определить верна она или нет. В это же время, процессор может начать выполнять десятки дополнительных инструкций, даже не зная правильно ли их выполнение.
Для решения этой проблемы все современные высокопроизводительные процессоры используют технологию спекулятивного выполнения. Благодаря этой технологии, процессор запоминает выполняемые разветвленные инструкции и автоматически угадывает, произойдет ли ветвление или нет. Если системе удалось угадать, то процессор будет заранее выполнять другие инструкции, что увеличивает производительность. Если же не удалось, то процессор остановит выполнение всех неподходящих инструкций и начнет выполнять задачи с правильной точки.
Блоки предсказания ветвлений — это нечто вроде ранней формы машинного обучения, поскольку блок будет постепенно заучивать принцип работы разветвленных инструкций. Благодаря тому, что блоки развивались и улучшались десятилетиями, точность прогнозов в современных процессорах превышает 90%.
Несмотря на то, что эти предсказания могут увеличить производительность процессора, они также образуют дыры в безопасности. Так, недавняя уязвимость Spectre позволяла злоумышленникам получить доступ к процессору именно через блок предсказания ветвлений. Из-за этого производители процессоров вынуждены были переписать алгоритмы работы, тем самым слегка снизив производительность.
В последние несколько десятилетий процессоры развились до невероятных высот. Благодаря умелому использованию многих элементов процессоров, производителям удалось поднять производительность на новый уровень. Увы, но эти самые производители держат все принципы работы своих технологий в строжайшем секрете, поэтому трудно понять, как работают мельчайшие детали. К счастью, большинство фундаментальных основ работы процессоров остаются неизменными, стандартизированным и общеизвестными. Если Intel вдруг внезапно решит каким-то волшебным образом увеличить скорость работы кэша, либо AMD добавит более продвинутый блок предсказания ветвлений, знайте — обе компании стараются добиться одной и той же цели.
На этом заканчивается небольшая экскурсия в мир основ работы процессоров. В следующей статье речь пойдет о том, как создаются различные компоненты процессора, о логических вентилях, частоте, энергопотреблении, печатных схемах и многом другом.