Процессор
Общая информация
Центра́льный проце́ссор (ЦП; также центра́льное проце́ссорное устро́йство — ЦПУ; англ. central processing unit, CPU, дословно — центральное обрабатывающее устройство, часто просто процессор) — электронный блок либо интегральная схема, исполняющая машинные инструкции (код программ), главная часть аппаратного обеспечения компьютера или программируемого логического контроллера. Иногда этот компонент называют просто процессором.
Изначально термин центральное процессорное устройство описывал специализированную систему элементов, предназначенных для понимания и выполнения машинного кода компьютерных программ, а не только фиксированных логических операций. Начало применения термина и его аббревиатуры по отношению к компьютерным системам было положено в 1960-е годы. Устройство, архитектура и реализация процессоров с тех пор неоднократно менялись. В современных вычислительных системах все функции центрального процессора обычно выполняет одна микросхема высокой степени интеграции — микропроцессор.
Главными характеристиками ЦПУ являются: тактовая частота, производительность, энергопотребление, нормы литографического процесса, используемого при производстве (для микропроцессоров), и архитектура[англ.].
Ранние ЦП создавались в виде уникальных составных частей для уникальных и даже единственных в своём роде компьютерных систем. Позднее от дорогостоящего способа разработки процессоров, предназначенных для выполнения одной единственной или нескольких узкоспециализированных программ, производители компьютеров перешли к серийному изготовлению типовых классов многоцелевых процессорных устройств. Тенденция к стандартизации компьютерных комплектующих зародилась в эпоху бурного развития полупроводниковых элементов, мейнфреймов и мини-компьютеров, а с появлением интегральных схем она стала ещё более популярной. Создание микросхем позволило ещё больше увеличить сложность ЦП с одновременным уменьшением их физических размеров.
Стандартизация и миниатюризация процессоров привели к глубокому проникновению основанных на них цифровых устройств в повседневную жизнь человека. Современные процессоры можно найти не только в таких высокотехнологичных устройствах, как компьютеры, но и в автомобилях, калькуляторах, мобильных телефонах и даже в детских игрушках. Чаще всего они представлены микроконтроллерами, где, помимо вычислительного устройства, на кристалле расположены дополнительные компоненты (память программ и данных, интерфейсы, порты ввода-вывода, таймеры и др.). Современные вычислительные возможности микроконтроллера сравнимы с процессорами персональных ЭВМ тридцатилетней давности, а чаще даже значительно превосходят их показатели.
Конвейерная архитектура
Конвейерная архитектура (англ. pipelining) была введена в центральный процессор с целью повышения быстродействия. Обычно для выполнения каждой команды требуется осуществить некоторое количество однотипных операций, например: выборка команды из ОЗУ, дешифровка команды, адресация операнда в ОЗУ, выборка операнда из ОЗУ, выполнение команды, запись результата в ОЗУ. Каждую из этих операций сопоставляют одной ступени конвейера. Например, конвейер микропроцессора с архитектурой MIPS-I содержит четыре стадии:
- получение и декодирование инструкции,
- адресация и выборка операнда из ОЗУ,
- выполнение арифметических операций,
- сохранение результата операции.
После освобождения k-й ступени конвейера она сразу приступает к работе над следующей командой. Если предположить, что каждая ступень конвейера тратит единицу времени на свою работу, то выполнение команды на конвейере длиной в n ступеней займёт
n единиц времени, однако в самом оптимистичном случае результат выполнения каждой следующей команды будет получаться через каждую единицу времени.
Действительно, при отсутствии конвейера выполнение команды займёт
n единиц времени (так как для выполнения команды по-прежнему необходимо выполнять выборку, дешифровку и т. д.), и для исполнения m команд понадобится n⋅m единиц времени; при использовании конвейера (в самом оптимистичном случае) для выполнения m команд понадобится всего лишь n+m единиц времени.
Факторы, снижающие эффективность конвейера:
Простой конвейера, когда некоторые ступени не используются (например, адресация и выборка операнда из ОЗУ не нужны, если команда работает с регистрами).
Ожидание: если следующая команда использует результат предыдущей, то последняя не может начать выполняться до выполнения первой (это преодолевается при использовании внеочередного выполнения команд — out-of-order execution).
Очистка конвейера при попадании в него команды перехода (эту проблему удаётся сгладить, используя предсказание переходов). Некоторые современные процессоры имеют более 30 ступеней в конвейере, что повышает производительность процессора, но, однако, приводит к увеличению длительности простоя (например, в случае ошибки в предсказании условного перехода). Не существует единого мнения по поводу оптимальной длины конвейера: различные программы могут иметь существенно различные требования.
Суперскалярная архитектура
Способность выполнения нескольких машинных инструкций за один такт процессора путём увеличения числа исполнительных устройств. Появление этой технологии привело к существенному увеличению производительности, в то же время существует определённый предел роста числа исполнительных устройств, при превышении которого производительность практически перестает расти, а исполнительные устройства простаивают. Частичным решением этой проблемы является, например, технология Hyper-threading.
CISC-процессоры
Complex instruction set computer — вычисления со сложным набором команд. Процессорная архитектура, основанная на усложнённом наборе команд. Типичными представителями CISC являются микропроцессоры семейства x86 (хотя уже много лет эти процессоры являются CISC только по внешней системе команд: в начале процесса исполнения сложные команды разбиваются на более простые микрооперации (МОП), исполняемые RISC-ядром).
RISC-процессоры
Reduced instruction set computer — вычисления с упрощённым (сокращённым) набором команд. Архитектура процессоров, построенная на основе упрощённого набора команд, характеризуется наличием команд фиксированной длины, большого количества регистров, операций типа регистр-регистр, а также отсутствием косвенной адресации. Концепция RISC разработана Джоном Коком из IBM Research, название придумано Дэвидом Паттерсоном (David Patterson).
Упрощение набора команд призвано сократить конвейер, что позволяет избежать задержек на операциях условных и безусловных переходов. Однородный набор регистров упрощает работу компилятора при оптимизации исполняемого программного кода. Кроме того, RISC-процессоры отличаются меньшим энергопотреблением и тепловыделением.
Среди первых реализаций этой архитектуры были процессоры MIPS, PowerPC, SPARC, Alpha, PA-RISC. Крайне широко распространены ARM-процессоры, применяются практически повсеместно - сетевое оборудование (маршрутизаторы, коммутаторы и так далее), цифровые фотоаппараты и видеокамеры, видеорегистраторы, мобильные телефоны, планшетные компьютеры, телевизоры, игровые консоли, электронные книги, умные колонки, и очень многое другое.
MISC-процессоры
Minimum instruction set computer — вычисления с минимальным набором команд. Дальнейшее развитие идей команды Чака Мура, который полагает, что принцип простоты, изначальный для RISC-процессоров, слишком быстро отошёл на задний план. В пылу борьбы за максимальное быстродействие RISC догнал и обогнал многие CISC-процессоры по сложности. Архитектура MISC строится на стековой вычислительной модели с ограниченным числом команд (примерно 20—30 команд).
VLIW-процессоры
Very long instruction word — сверхдлинное командное слово. Архитектура процессоров с явно выраженным параллелизмом вычислений, заложенным в систему команд процессора. Являются основой для архитектуры EPIC. Ключевым отличием от суперскалярных CISC-процессоров является то, что для CISC-процессоров загрузкой исполнительных устройств занимается часть процессора (планировщик), на что отводится достаточно малое время, в то время как загрузкой вычислительных устройств для VLIW-процессора занимается компилятор, на что отводится существенно больше времени (качество загрузки и, соответственно, производительность теоретически должны быть выше).
Например, Intel Itanium, Transmeta Crusoe, Efficeon и Эльбрус.
Многоядерные процессоры
Содержат несколько процессорных ядер в одном корпусе (на одном или нескольких кристаллах).
Процессоры, предназначенные для работы одной копии операционной системы на нескольких ядрах, представляют собой высокоинтегрированную реализацию мультипроцессорности.
Первым многоядерным микропроцессором стал POWER4 от IBM, появившийся в 2001 году и имевший два ядра.
В октябре 2004 года Sun Microsystems выпустила двухъядерный процессор UltraSPARC IV, который состоял из двух модифицированных ядер UltraSPARC III. В начале 2005 был создан двухъядерный UltraSPARC IV+.
9 мая 2005 года AMD представила первый двухъядерный процессор на одном кристалле для пользовательских ПК — Athlon 64 X2 с ядром Manchester. Поставки новых процессоров официально начались 1 июня 2005 года.
14 ноября 2005 года Sun выпустила восьмиядерный UltraSPARC T1, каждое ядро которого выполняло 4 потока.
5 января 2006 года Intel представила двухъядерный процессор на одном кристалле Core Duo, для мобильной платформы.
В ноябре 2006 года вышел первый четырёхъядерный процессор Intel Core 2 Quad на ядре Kentsfield, представляющий собой сборку из двух кристаллов Conroe в одном корпусе. Потомком этого процессора стал Intel Core 2 Quad на ядре Yorkfield (45 нм), архитектурно схожем с Kentsfield, но имеющем больший объём кэша и рабочие частоты.
В октябре 2007 года в продаже появились восьмиядерные UltraSPARC T2, каждое ядро выполняло 8 потоков.
10 сентября 2007 года были выпущены в продажу настоящие (в виде одного кристалла) четырёхъядерные процессоры для серверов AMD Opteron, имевшие в процессе разработки кодовое название AMD Opteron Barcelona. 19 ноября 2007 года вышел в продажу четырёхъядерный процессор для домашних компьютеров AMD Phenom. Эти процессоры реализуют новую микроархитектуру K8L (K10).
Компания AMD пошла по собственному пути, изготовляя четырёхъядерные процессоры единым кристаллом (в отличие от Intel, первые четырёхъядерные процессоры которой представляют собой фактически склейку двух двухъядерных кристаллов). Несмотря на всю прогрессивность подобного подхода, первый «четырёхъядерник» фирмы, названный AMD Phenom X4, получился не слишком удачным. Его отставание от современных ему процессоров конкурента составляло от 5 до 30 и более процентов в зависимости от модели и конкретных задач[5].
К 1—2 кварталу 2009 года обе компании обновили свои линейки четырёхъядерных процессоров. Intel представила семейство Core i7, состоящее из трёх моделей, работающих на разных частотах. Основными изюминками данного процессора является использование трёхканального контроллера памяти (типа DDR3) и технологии эмулирования восьми ядер (полезно для некоторых специфических задач). Кроме того, благодаря общей оптимизации архитектуры удалось значительно повысить производительность процессора во многих типах задач. Слабой стороной платформы, использующей Core i7, является её чрезмерная стоимость, так как для установки данного процессора необходима дорогая материнская плата на чипсете Intel X58 и трёхканальный набор памяти типа DDR3, также имеющий на данный момент высокую стоимость.
Компания AMD, в свою очередь, представила линейку процессоров Phenom II X4. При её разработке компания учла свои ошибки: был увеличен объём кэша (по сравнению с первым поколением Phenom), процессоры стали изготавливаться по 45-нм техпроцессу (это, соответственно, позволило снизить тепловыделение и значительно повысить рабочие частоты). В целом, AMD Phenom II X4 по производительности стоит вровень с процессорами Intel предыдущего поколения (ядро Yorkfield) и весьма значительно отстаёт от Intel Core i7. С выходом 6-ядерного процессора AMD Phenom II X6 Black Thuban 1090T ситуация немного изменилась в пользу AMD.
По состоянию на 2013 год массово доступны процессоры с двумя, тремя, четырьмя и шестью ядрами, а также двух-, трёх- и четырёхмодульные процессоры AMD поколения Bulldozer (количество логических ядер в 2 раза больше количества модулей). В серверном сегменте также доступны 8-ядерные процессоры Xeon и Nehalem (Intel) и 12-ядерные Opteron (AMD).
Кэширование
Кэширование — это использование дополнительной быстродействующей памяти (так называемого кэша — англ. cache, от фр. cacher — «прятать») для хранения копий блоков информации из основной (оперативной) памяти, вероятность обращения к которым в ближайшее время велика.
Различают кэши 1-, 2- и 3-го уровней (обозначаются L1, L2 и L3 — от Level 1, Level 2 и Level 3). Кэш 1-го уровня имеет наименьшую латентность (время доступа), но малый размер, кроме того, кэши первого уровня часто делаются многопортовыми. Так, процессоры AMD K8 умели производить одновременно 64-битные запись и чтение, либо два 64-битных чтения за такт, AMD K8L может производить два 128-битных чтения или записи в любой комбинации. Процессоры Intel Core 2 могут производить 128-битные запись и чтение за такт. Кэш 2-го уровня обычно имеет значительно большую латентность доступа, но его можно сделать значительно больше по размеру. Кэш 3-го уровня — самый большой по объёму и довольно медленный, но всё же он гораздо быстрее, чем оперативная память.
Гарвардская архитектура
Гарвардская архитектура отличается от архитектуры фон Неймана тем, что программный код и данные хранятся в разной памяти. В такой архитектуре невозможны многие методы программирования (например, программа не может во время выполнения менять свой код; невозможно динамически перераспределять память между программным кодом и данными); зато гарвардская архитектура позволяет более эффективно выполнять работу в случае ограниченных ресурсов, поэтому она часто применяется во встраиваемых системах.
Параллельная архитектура
Архитектура фон Неймана обладает тем недостатком, что она последовательная. Какой бы огромный массив данных ни требовалось обработать, каждый его байт должен будет пройти через центральный процессор, даже если над всеми байтами требуется провести одну и ту же операцию. Этот эффект называется узким горлышком фон Неймана.
Для преодоления этого недостатка предлагались и предлагаются архитектуры процессоров, которые называются параллельными. Параллельные процессоры используются в суперкомпьютерах.
Возможными вариантами параллельной архитектуры могут служить (по классификации Флинна):
- SISD — один поток команд, один поток данных;
- SIMD — один поток команд, много потоков данных;
- MISD — много потоков команд, один поток данных;
- MIMD — много потоков команд, много потоков данных.
Цифровые сигнальные процессоры
Для цифровой обработки сигналов, особенно при ограниченном времени обработки, применяют специализированные высокопроизводительные сигнальные микропроцессоры (англ. digital signal processor, DSP) с параллельной архитектурой.
Производители
Наиболее популярные процессоры сегодня производят:
- для персональных компьютеров, ноутбуков и серверов — Intel и AMD;
- для суперкомпьютеров — Intel и IBM;
- для ускорителей компьютерной графики и высокопроизводительных вычислений — NVIDIA, AMD и Intel
- для мобильных телефонов и планшетов[11] — Apple, Samsung, HiSilicon, Qualcomm и MediaTek.
- Процессоры Intel: 8086, 80286, i386, i486, Pentium, Pentium II, Pentium III, Celeron (упрощённый вариант Pentium), Pentium 4, Core 2 Duo, Core 2 Quad, Core i3, Core i5, Core i7, Core i9, Xeon (серия процессоров для серверов), Itanium, Atom (серия процессоров для встраиваемой техники) и др.
AMD имеет в своей линейке процессоры архитектуры x86 (аналоги 80386 и 80486, семейство K6 и семейство K7 — Athlon, Duron, Sempron) и x86-64 (Athlon 64, Athlon 64 X2, Ryzen, Phenom, Opteron и др.). Процессоры IBM (POWER6, POWER7, Xenon, PowerPC) используются в суперкомпьютерах, в видеоприставках 7-го поколения, встраиваемой технике; ранее использовались в компьютерах фирмы Apple.
Большинство процессоров для персональных компьютеров, ноутбуков и серверов Intel-совместимо по системе команд. Большинство процессоров, используемых в настоящее время в мобильных устройствах, ARM-совместимо, то есть имеет набор инструкций и интерфейсы программирования, разрабатываемые в компании ARM Limited.
Рыночные доли продажи процессоров для персональных компьютеров, ноутбуков и серверов по годам:
Год Intel AMD Другие 2007 78,9 % 13,1 % 8,0 % 2008 80,4 % 19,3 % 0,3 % 2009 79,7 % 20,1 % 0,2 % 2010 80,8 % 18,9 % 0,3 % 2011 83,7 % 10,2 % 6,1 % 2012 65,3 % 6,4 % 28,3 % 2018 77,1 % 22,9 % 0 % 2019 69,2 % 30,8 % 0 %
в 2022 г. первое место среди производителей процессоров по объёмам выручки заняла компания Samsung (10,9 % рынка), далее шла Intel (9,7 % рынка).
В 2023 г. первое место заняла уже Intel (9 % рынка), далее Samsung (7,5 % рынка)