stringtranslate.com

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

Современный потребительский процессор от Intel : Intel Core i9-14900KF
Внутри центрального процессора: интегральная схема процессора Intel Xeon 3060 , впервые выпущенного в 2006 году.

Центральный процессор ( ЦП ), также называемый центральным процессором , главным процессором или просто процессором , является самым важным процессором в данном компьютере . [1] [2] Его электронные схемы выполняют инструкции компьютерной программы , такие как арифметические , логические, управляющие и операции ввода-вывода (I/O). [3] [4] [5] Эта роль контрастирует с ролью внешних компонентов, таких как основная память и схемы ввода-вывода, [6] и специализированных сопроцессоров , таких как графические процессоры (GPU).

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

Большинство современных ЦП реализованы на основе микропроцессоров с интегральными схемами (ИС) , с одним или несколькими ЦП на одном кристалле ИС. Микропроцессорные чипы с несколькими ЦП называются многоядерными процессорами . [8] Отдельные физические ЦП, называемые ядрами процессора , также могут быть многопоточными для поддержки многопоточности на уровне ЦП. [9]

Микросхема, содержащая ЦП, может также содержать память , периферийные интерфейсы и другие компоненты компьютера; [10] такие интегрированные устройства по-разному называются микроконтроллерами или системами на кристалле (SoC).

История

EDVAC , один из первых компьютеров с хранимой программой

Ранние компьютеры, такие как ENIAC, приходилось физически перемонтировать для выполнения различных задач, из-за чего эти машины стали называть «компьютерами с фиксированной программой». [11] Термин «центральный процессор» используется с 1955 года. [12] [13] Поскольку термин «ЦП» обычно определяется как устройство для выполнения программного обеспечения (компьютерной программы), самые ранние устройства, которые можно было бы по праву назвать ЦП, появились с появлением компьютера с хранимой программой .

Идея компьютера с хранимой программой уже присутствовала в проекте ENIAC Дж. Преспера Экерта и Джона Уильяма Мочли , но изначально была опущена, чтобы ENIAC можно было закончить раньше. [14] 30 июня 1945 года, до того, как был создан ENIAC, математик Джон фон Нейман распространил статью под названием « Первый черновик отчета об EDVAC» . Это был набросок компьютера с хранимой программой, который в конечном итоге был завершен в августе 1949 года. [15] EDVAC был разработан для выполнения определенного количества инструкций (или операций) различных типов. Примечательно, что программы, написанные для EDVAC, должны были храниться в высокоскоростной памяти компьютера, а не определяться физической разводкой компьютера. [16] Это преодолело серьезное ограничение ENIAC, которое заключалось в значительном времени и усилиях, необходимых для перенастройки компьютера для выполнения новой задачи. [17] С проектом фон Неймана программа, которую запускал EDVAC, могла быть изменена просто путем изменения содержимого памяти. EDVAC не был первым компьютером с хранимой программой; Manchester Baby , который был небольшим экспериментальным компьютером с хранимой программой, запустил свою первую программу 21 июня 1948 года [18] , а Manchester Mark 1 запустил свою первую программу в ночь с 16 на 17 июня 1949 года. [19]

Ранние ЦП были индивидуальными разработками, используемыми как часть более крупного и иногда отличительного компьютера. [20] Однако этот метод проектирования индивидуальных ЦП для конкретного применения в значительной степени уступил место разработке многоцелевых процессоров, производимых в больших количествах. Эта стандартизация началась в эпоху дискретных транзисторных мэйнфреймов и мини-компьютеров и быстро ускорилась с популяризацией интегральных схем (ИС). ИС позволила проектировать и производить все более сложные ЦП с допусками порядка нанометров . [21] Как миниатюризация, так и стандартизация ЦП увеличили присутствие цифровых устройств в современной жизни далеко за пределы ограниченного применения специализированных вычислительных машин. Современные микропроцессоры появляются в электронных устройствах, начиная от автомобилей [22] и заканчивая мобильными телефонами [23] , а иногда даже в игрушках. [24] [25]

Хотя фон Нейману чаще всего приписывают разработку компьютера с хранимой программой из-за его разработки EDVAC, а сама разработка стала известна как архитектура фон Неймана , другие до него, такие как Конрад Цузе , предлагали и реализовывали похожие идеи. [26] Так называемая гарвардская архитектура Harvard Mark I , которая была завершена до EDVAC, [27] [28] также использовала конструкцию с хранимой программой, использующую перфоленту, а не электронную память. [29] Ключевое различие между архитектурами фон Неймана и Гарварда заключается в том, что последняя разделяет хранение и обработку инструкций и данных ЦП, в то время как первая использует одно и то же пространство памяти для обоих. [30] Большинство современных ЦП в первую очередь имеют конструкцию фон Неймана, но встречаются и ЦП с архитектурой Гарварда, особенно во встраиваемых приложениях; например, микроконтроллеры Atmel AVR являются процессорами с архитектурой Гарварда. [31]

Реле и электронные лампы (термоэлектронные лампы) обычно использовались в качестве коммутационных элементов; [32] [33] полезный компьютер требует тысячи или десятки тысяч коммутационных устройств. Общая скорость системы зависит от скорости переключателей. Электронные лампы, такие как EDVAC, имели тенденцию в среднем восемь часов между отказами, тогда как релейные компьютеры, такие как более медленный, но более ранний Harvard Mark I, выходили из строя очень редко. [13] В конце концов, ламповые процессоры стали доминирующими, поскольку значительные преимущества в скорости, которые они обеспечивали, как правило, перевешивали проблемы надежности. Большинство этих ранних синхронных процессоров работали на низких тактовых частотах по сравнению с современными микроэлектронными конструкциями. Частоты тактовых сигналов в диапазоне от 100 кГц до 4 МГц были очень распространены в то время, что в значительной степени ограничивалось скоростью коммутационных устройств, с которыми они были построены. [34]

Транзисторные процессоры

Процессор IBM PowerPC 604e

Сложность конструкции ЦП возросла, поскольку различные технологии способствовали созданию более мелких и надежных электронных устройств. Первое такое усовершенствование произошло с появлением транзистора . Транзисторные ЦП в 1950-х и 1960-х годах больше не должны были строиться из громоздких, ненадежных и хрупких коммутационных элементов, таких как электронные лампы и реле . [35] Благодаря этому усовершенствованию более сложные и надежные ЦП были построены на одной или нескольких печатных платах, содержащих дискретные (отдельные) компоненты.

В 1964 году IBM представила свою архитектуру компьютера IBM System/360 , которая использовалась в серии компьютеров, способных выполнять одни и те же программы с разной скоростью и производительностью. [36] Это было важно в то время, когда большинство электронных компьютеров были несовместимы друг с другом, даже те, которые были произведены одним и тем же производителем. Чтобы облегчить это улучшение, IBM использовала концепцию микропрограммы ( часто называемой «микрокодом»), которая до сих пор широко используется в современных процессорах. [37] Архитектура System/360 была настолько популярна, что она доминировала на рынке мэйнфреймов в течение десятилетий и оставила наследие, которое продолжают аналогичные современные компьютеры, такие как IBM zSeries . [38] [39] В 1965 году Digital Equipment Corporation (DEC) представила еще один влиятельный компьютер, нацеленный на научные и исследовательские рынки — PDP-8 . [40]

Плата Fujitsu с процессорами SPARC64 VIIIfx

Транзисторные компьютеры имели несколько явных преимуществ по сравнению со своими предшественниками. Помимо повышения надежности и снижения энергопотребления, транзисторы также позволяли процессорам работать на гораздо более высоких скоростях из-за короткого времени переключения транзистора по сравнению с лампой или реле. [41] Повышенная надежность и значительно возросшая скорость коммутационных элементов, которые к тому времени были почти исключительно транзисторами; тактовые частоты процессоров в десятки мегагерц были легко получены в этот период. [42] Кроме того, в то время как дискретные транзисторные и IC процессоры были в интенсивном использовании, начали появляться новые высокопроизводительные конструкции, такие как векторные процессоры с одной инструкцией и несколькими данными (SIMD) . [43] Эти ранние экспериментальные конструкции позже дали начало эре специализированных суперкомпьютеров, таких как те, что были созданы Cray Inc и Fujitsu Ltd. [ 43]

Процессоры малой интеграции

Центральный процессор, основная память и интерфейс внешней шины DEC PDP-8 /I, выполненные из интегральных схем среднего масштаба

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

System/370 от IBM , преемник System/360, использовал микросхемы SSI вместо дискретных транзисторных модулей Solid Logic Technology . [46] [47] PDP-8 /I и KI10 PDP-10 от DEC также перешли с отдельных транзисторов, используемых в PDP-8 и PDP-10, на микросхемы SSI, [48] а их чрезвычайно популярная линейка PDP-11 изначально была построена с микросхемами SSI, но в конечном итоге была реализована с компонентами LSI, как только они стали практичными.

Крупномасштабные интеграционные процессоры

Ли Бойсел опубликовал влиятельные статьи, включая «манифест» 1967 года, в котором описывалось, как построить эквивалент 32-битного мэйнфреймового компьютера из относительно небольшого числа больших интегральных схем (БИС). [49] [50] Единственным способом создания микросхем БИС, которые представляют собой микросхемы с сотней или более вентилей, было их создание с использованием процесса производства полупроводников металл-оксид-полупроводник (МОП) (либо логика PMOS , логика NMOS , либо логика CMOS ). Однако некоторые компании продолжали создавать процессоры из микросхем биполярной транзисторно -транзисторной логики (ТТЛ), поскольку биполярные переходные транзисторы были быстрее, чем микросхемы МОП, вплоть до 1970-х годов (несколько компаний, таких как Datapoint, продолжали создавать процессоры из микросхем ТТЛ до начала 1980-х годов). [50] В 1960-х годах МОП-микросхемы были медленнее и изначально считались полезными только в приложениях, требующих малой мощности. [51] [52] После разработки технологии МОП с кремниевым затвором Федерико Фаггином в Fairchild Semiconductor в 1968 году, МОП-ИС в значительной степени заменили биполярные ТТЛ в качестве стандартной технологии чипов в начале 1970-х годов. [53]

По мере развития микроэлектронной технологии все большее число транзисторов размещалось на ИС, что уменьшало количество отдельных ИС, необходимых для полного ЦП. ИС MSI и LSI увеличили количество транзисторов до сотен, а затем и до тысяч. К 1968 году количество ИС, необходимых для построения полного ЦП, было сокращено до 24 ИС восьми различных типов, причем каждая ИС содержала примерно 1000 МОП-транзисторов. [54] В резком контрасте со своими предшественниками SSI и MSI, первая реализация LSI PDP-11 содержала ЦП, состоящий всего из четырех интегральных схем LSI. [55]

Микропроцессоры

Внутри ноутбука, процессор вынут из сокета

С тех пор как микропроцессоры были впервые представлены, они почти полностью обогнали все другие методы реализации центральных процессоров. Первым коммерчески доступным микропроцессором, выпущенным в 1971 году, был Intel 4004 , а первым широко используемым микропроцессором, выпущенным в 1974 году, был Intel 8080. Производители мэйнфреймов и мини-компьютеров того времени запустили собственные программы разработки ИС для обновления своих старых компьютерных архитектур и в конечном итоге выпустили совместимые по набору инструкций микропроцессоры, которые были обратно совместимы с их старым оборудованием и программным обеспечением. В сочетании с появлением и окончательным успехом повсеместного персонального компьютера , термин ЦП теперь применяется почти исключительно [a] к микропроцессорам. Несколько ЦП (обозначаемых ядрами ) могут быть объединены в одну микросхему обработки. [56]

Предыдущие поколения ЦП были реализованы в виде дискретных компонентов и многочисленных небольших интегральных схем (ИС) на одной или нескольких платах. [57] Микропроцессоры, с другой стороны, являются ЦП, изготовленными на очень небольшом количестве ИС; обычно только на одной. [58] Общий меньший размер ЦП, в результате реализации на одном кристалле, означает более быстрое время переключения из-за физических факторов, таких как уменьшение паразитной емкости затвора . [59] [60] Это позволило синхронным микропроцессорам иметь тактовую частоту от десятков мегагерц до нескольких гигагерц. Кроме того, возможность создания чрезвычайно малых транзисторов на ИС увеличила сложность и количество транзисторов в одном ЦП во много раз. Эта широко наблюдаемая тенденция описывается законом Мура , который оказался довольно точным предсказателем роста сложности ЦП (и других ИС) до 2016 года. [61] [62]

Хотя сложность, размер, конструкция и общая форма ЦП сильно изменились с 1950 года, [63] базовая конструкция и функции практически не изменились. Почти все распространенные сегодня ЦП можно очень точно описать как машины фон Неймана с хранимой программой. [64] [b] Поскольку закон Мура больше не действует, возникли опасения относительно ограничений технологии транзисторов интегральных схем. Чрезвычайная миниатюризация электронных вентилей приводит к тому, что эффекты таких явлений, как электромиграция и подпороговая утечка, становятся гораздо более значительными. [66] [67] Эти новые опасения являются одними из многих факторов, заставляющих исследователей исследовать новые методы вычислений, такие как квантовый компьютер , а также расширять использование параллелизма и других методов, которые увеличивают полезность классической модели фон Неймана.

Операция

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

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

Некоторые инструкции манипулируют счетчиком программ, а не производят данные результата напрямую; такие инструкции обычно называются «переходами» и облегчают поведение программы, например циклы , условное выполнение программы (с помощью условного перехода) и существование функций . [c] В некоторых процессорах некоторые другие инструкции изменяют состояние битов в регистре «флагов» . Эти флаги могут использоваться для влияния на поведение программы, поскольку они часто указывают на результат различных операций. Например, в таких процессорах инструкция «сравнить» оценивает два значения и устанавливает или очищает биты в регистре флагов, чтобы указать, какое из них больше или равны ли они; один из этих флагов затем может использоваться последующей инструкцией перехода для определения потока программы.

Принести

Извлечение включает в себя извлечение инструкции (представленной числом или последовательностью чисел) из памяти программ. Местоположение инструкции (адрес) в памяти программ определяется счетчиком программ (PC; в микропроцессорах Intel x86 называется «указателем инструкций» ), который хранит число, идентифицирующее адрес следующей инструкции для извлечения. После извлечения инструкции PC увеличивается на длину инструкции, чтобы он содержал адрес следующей инструкции в последовательности. [d] Часто извлекаемая инструкция должна быть извлечена из относительно медленной памяти, что приводит к остановке ЦП в ожидании возврата инструкции. Эта проблема в значительной степени решается в современных процессорах с помощью кэшей и конвейерных архитектур (см. ниже).

Расшифровать

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

Способ интерпретации инструкции определяется архитектурой набора инструкций ЦП (ISA). [e] Часто одна группа битов (то есть «поле») в инструкции, называемая кодом операции, указывает, какая операция должна быть выполнена, в то время как остальные поля обычно предоставляют дополнительную информацию, необходимую для операции, такую ​​как операнды. Эти операнды могут быть указаны как постоянное значение (называемое непосредственным значением) или как местоположение значения, которое может быть регистром процессора или адресом памяти, как определено некоторым режимом адресации .

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

Выполнять

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

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

Структура и реализация

Блок-схема базового компьютера с однопроцессорным ЦП. Черные линии обозначают поток данных, красные линии обозначают поток управления; стрелки указывают направления потока.

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

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

Блок управления

Блок управления (БУ) — это компонент ЦП, который управляет работой процессора. Он сообщает памяти, арифметико-логическому блоку и устройствам ввода и вывода компьютера, как реагировать на инструкции, отправленные процессору.

Он управляет работой других блоков, предоставляя сигналы синхронизации и управления. Большинство ресурсов компьютера управляются CU. Он управляет потоком данных между CPU и другими устройствами. Джон фон Нейман включил блок управления как часть архитектуры фон Неймана . В современных компьютерных конструкциях блок управления обычно является внутренней частью CPU, и его общая роль и работа не изменились с момента его появления. [69]

Арифметико-логическое устройство

Символическое представление АЛУ и его входных и выходных сигналов

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

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

Современные процессоры обычно содержат более одного АЛУ для повышения производительности.

Блок генерации адреса

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

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

Возможности AGU зависят от конкретного ЦП и его архитектуры . Таким образом, некоторые AGU реализуют и предоставляют больше операций вычисления адресов, в то время как некоторые также включают более продвинутые специализированные инструкции, которые могут работать с несколькими операндами одновременно. Некоторые архитектуры ЦП включают несколько AGU, поэтому одновременно может выполняться более одной операции вычисления адресов, что обеспечивает дальнейшее повышение производительности из-за суперскалярной природы современных конструкций ЦП. Например, Intel включает несколько AGU в свои микроархитектуры Sandy Bridge и Haswell , которые увеличивают пропускную способность подсистемы памяти ЦП, позволяя выполнять несколько инструкций доступа к памяти параллельно.

Блок управления памятью (MMU)

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

Кэш

Кэш ЦП [71] — это аппаратный кэш, используемый центральным процессором (ЦП) компьютера для снижения средней стоимости (времени или энергии) доступа к данным из основной памяти . Кэш — это меньшая, более быстрая память, расположенная ближе к ядру процессора , которая хранит копии данных из часто используемых ячеек основной памяти . Большинство ЦП имеют различные независимые кэши, включая кэши инструкций и данных , где кэш данных обычно организован в виде иерархии большего количества уровней кэша (L1, L2, L3, L4 и т. д.).

Все современные (быстрые) ЦП (за несколькими специализированными исключениями [f] ) имеют несколько уровней кэшей ЦП. Первые ЦП, которые использовали кэш, имели только один уровень кэша; в отличие от более поздних кэшей уровня 1, он не был разделен на L1d (для данных) и L1i (для инструкций). Почти все современные ЦП с кэшами имеют разделенный кэш L1. Они также имеют кэши L2, а для более крупных процессоров — также кэши L3. Кэш L2 обычно не разделен и действует как общее хранилище для уже разделенного кэша L1. Каждое ядро ​​многоядерного процессора имеет выделенный кэш L2 и обычно не используется совместно ядрами. Кэш L3 и кэши более высокого уровня используются совместно ядрами и не разделены. Кэш L4 в настоящее время встречается редко и, как правило, находится в динамической памяти с произвольным доступом (DRAM), а не в статической памяти с произвольным доступом (SRAM), на отдельном кристалле или чипе. Это также имело место исторически с L1, в то время как более крупные чипы позволили интегрировать его и, как правило, все уровни кэша, за исключением, возможно, последнего уровня. Каждый дополнительный уровень кэша, как правило, больше и оптимизируется по-разному.

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

Кэши обычно имеют размер, кратный степеням двойки: 2, 8, 16 и т. д. Размеры КБ или МиБ (для больших не-L1), хотя IBM z13 имеет 96 КБ кэша инструкций L1. [72]

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

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

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

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

Один из методов работы с переключением ненужных компонентов называется стробированием тактовой частоты , которое включает отключение сигнала тактовой частоты для ненужных компонентов (фактически отключая их). Однако это часто считается сложным для реализации и поэтому не находит широкого применения за пределами очень маломощных конструкций. Одной из примечательных недавних разработок ЦП, которая использует обширное стробирование тактовой частоты, является Xenon на базе IBM PowerPC , используемый в Xbox 360 ; это снижает требования к питанию Xbox 360. [73]

Процессоры без тактовой частоты

Другим методом решения некоторых проблем с глобальным тактовым сигналом является полное удаление тактового сигнала. Хотя удаление глобального тактового сигнала значительно усложняет процесс проектирования во многих отношениях, асинхронные (или безтактовые) конструкции имеют заметные преимущества в потреблении энергии и рассеивании тепла по сравнению с аналогичными синхронными конструкциями. Хотя это и необычно, целые асинхронные ЦП были построены без использования глобального тактового сигнала. Двумя яркими примерами этого являются совместимый с ARM AMULET и совместимый с MIPS R3000 MiniMIPS. [74]

Вместо того, чтобы полностью удалить тактовый сигнал, некоторые конструкции ЦП позволяют определенным частям устройства быть асинхронными, например, используя асинхронные АЛУ в сочетании с суперскалярной конвейеризацией для достижения некоторого прироста арифметической производительности. Хотя не совсем ясно, могут ли полностью асинхронные конструкции работать на сопоставимом или лучшем уровне, чем их синхронные аналоги, очевидно, что они, по крайней мере, преуспевают в более простых математических операциях. Это, в сочетании с их превосходными свойствами энергопотребления и рассеивания тепла, делает их очень подходящими для встраиваемых компьютеров . [75]

Модуль регулятора напряжения

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

Диапазон целых чисел

Каждый ЦП представляет числовые значения определенным образом. Например, некоторые ранние цифровые компьютеры представляли числа как знакомые значения десятичной (основание 10) системы счисления , а другие использовали более необычные представления, такие как троичные (основание три). Почти все современные ЦП представляют числа в двоичной форме, причем каждая цифра представлена ​​некоторой двузначной физической величиной, такой как «высокое» или «низкое» напряжение . [g]

Шестибитное слово, содержащее двоичное кодированное представление десятичного значения 40. Большинство современных процессоров используют размеры слов, являющиеся степенью двойки, например 8, 16, 32 или 64 бита.

С числовым представлением связаны размер и точность целых чисел, которые может представлять ЦП. В случае двоичного ЦП это измеряется числом бит (значащих цифр двоично-кодированного целого числа), которые ЦП может обработать за одну операцию, что обычно называется размером слова , разрядностью , шириной пути данных , точностью целого числа или размером целого числа . Размер целого числа ЦП определяет диапазон целочисленных значений, с которыми он может напрямую работать. [h] Например, 8-битный ЦП может напрямую манипулировать целыми числами, представленными восемью битами, которые имеют диапазон 256 (2 8 ) дискретных целочисленных значений.

Диапазон целых чисел также может влиять на количество ячеек памяти, к которым ЦП может напрямую обращаться (адрес — это целочисленное значение, представляющее определенную ячейку памяти). Например, если двоичный ЦП использует 32 бита для представления адреса памяти, то он может напрямую обращаться к 2 32 ячейкам памяти. Чтобы обойти это ограничение и по разным другим причинам, некоторые ЦП используют механизмы (например, переключение банков ), которые позволяют адресовать дополнительную память.

Процессоры с большим размером слова требуют больше схем и, следовательно, физически больше, стоят дороже и потребляют больше энергии (и, следовательно, генерируют больше тепла). В результате, в современных приложениях обычно используются меньшие 4- или 8-битные микроконтроллеры , хотя доступны процессоры с гораздо большим размером слова (например, 16, 32, 64 и даже 128-бит). Однако, когда требуется более высокая производительность, преимущества большего размера слова (большие диапазоны данных и адресные пространства) могут перевесить недостатки. Процессор может иметь внутренние пути данных короче размера слова, чтобы уменьшить размер и стоимость. Например, несмотря на то, что архитектура набора инструкций IBM System/360 представляла собой 32-битный набор инструкций, System/360 Model 30 и Model 40 имели 8-битные пути данных в арифметико-логическом устройстве, так что для 32-битного сложения требовалось четыре цикла, по одному на каждые 8 ​​бит операндов, и, несмотря на то, что набор инструкций серии Motorola 68000 представлял собой 32-битный набор инструкций, Motorola 68000 и Motorola 68010 имели 16-битные пути данных в арифметико-логическом устройстве, так что для 32-битного сложения требовалось два цикла.

Чтобы получить некоторые из преимуществ, предоставляемых как меньшей, так и большей длиной бит, многие наборы инструкций имеют различную ширину бит для целочисленных и плавающих данных, что позволяет ЦП, реализующим этот набор инструкций, иметь различную ширину бит для разных частей устройства. Например, набор инструкций IBM System/360 был в основном 32-битным, но поддерживал 64-битные значения с плавающей точкой для обеспечения большей точности и диапазона чисел с плавающей точкой. [37] System/360 Model 65 имел 8-битный сумматор для десятичной и двоичной арифметики с фиксированной точкой и 60-битный сумматор для арифметики с плавающей точкой. [76] Многие более поздние конструкции ЦП используют похожую смешанную ширину бит, особенно когда процессор предназначен для общего назначения, где требуется разумный баланс возможностей целочисленных и плавающих точек.

Параллелизм

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

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

Этот процесс приводит к присущей субскалярным ЦП неэффективности. Поскольку за раз выполняется только одна инструкция, весь ЦП должен ждать завершения этой инструкции, прежде чем переходить к следующей инструкции. В результате субскалярный ЦП «зависает» на инструкциях, выполнение которых занимает более одного такта. Даже добавление второго исполнительного блока (см. ниже) не сильно повышает производительность; вместо того, чтобы зависать один путь, теперь зависают два пути, и увеличивается количество неиспользуемых транзисторов. Такая конструкция, в которой ресурсы выполнения ЦП могут работать только с одной инструкцией за раз, может достичь лишь скалярной производительности (одна инструкция за такт, IPC = 1 ). Однако производительность почти всегда субскалярная (менее одной инструкции за такт, IPC < 1 ).

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

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

Параллелизм на уровне инструкций

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

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

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

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

Улучшения в конвейеризации инструкций привели к дальнейшему сокращению времени простоя компонентов ЦП. Конструкции, которые называются суперскалярными, включают длинный конвейер инструкций и несколько идентичных исполнительных блоков , таких как блоки загрузки-хранения , арифметико-логические блоки , блоки с плавающей точкой и блоки генерации адресов . [77] В суперскалярном конвейере инструкции считываются и передаются диспетчеру, который решает, могут ли инструкции выполняться параллельно (одновременно). Если да, они отправляются исполнительным блокам, что приводит к их одновременному выполнению. В общем, количество инструкций, которые суперскалярный ЦП выполнит за цикл, зависит от количества инструкций, которые он может одновременно отправить исполнительным блокам.

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

Когда часть ЦП является суперскалярной, та часть, которая не является таковой, страдает от снижения производительности из-за простоев планирования. Intel P5 Pentium имел два суперскалярных ALU, которые могли принимать по одной инструкции за такт каждый, но его FPU не мог. Таким образом, P5 был целочисленным суперскаляром, но не суперскаляром с плавающей точкой. Преемник архитектуры P5 от Intel, P6 , добавил суперскалярные возможности к своим функциям с плавающей точкой.

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

Параллелизм на уровне задач

Другая стратегия достижения производительности — параллельное выполнение нескольких потоков или процессов . Эта область исследований известна как параллельные вычисления . [78] В таксономии Флинна эта стратегия известна как множественный поток инструкций, множественный поток данных (MIMD). [79]

Одной из технологий, используемых для этой цели, является многопроцессорность (МП). [80] Первоначальный тип этой технологии известен как симметричная многопроцессорность (СМП), где небольшое количество ЦП совместно используют согласованное представление своей системы памяти. В этой схеме каждый ЦП имеет дополнительное оборудование для поддержания постоянно актуального представления памяти. Избегая устаревших представлений памяти, ЦП могут сотрудничать в одной и той же программе, а программы могут мигрировать с одного ЦП на другой. Чтобы увеличить количество взаимодействующих ЦП сверх нескольких, в 1990-х годах были введены такие схемы, как протоколы неравномерного доступа к памяти (NUMA) и когерентности на основе каталогов . Системы СМП ограничены небольшим количеством ЦП, в то время как системы NUMA были построены с тысячами процессоров. Первоначально многопроцессорность была построена с использованием нескольких дискретных ЦП и плат для реализации взаимосвязи между процессорами. Когда процессоры и их соединения реализованы на одном кристалле, такая технология называется многопроцессорной обработкой на уровне кристалла (CMP), а отдельный кристалл — многоядерным процессором .

Позднее было признано, что более мелкозернистый параллелизм существует с одной программой. Одна программа может иметь несколько потоков (или функций), которые могут выполняться отдельно или параллельно. Некоторые из самых ранних примеров этой технологии реализовали обработку ввода/вывода , такую ​​как прямой доступ к памяти, как отдельный поток от потока вычислений. Более общий подход к этой технологии был представлен в 1970-х годах, когда системы были разработаны для параллельного запуска нескольких потоков вычислений. Эта технология известна как многопоточность (МП). Подход считается более экономически эффективным, чем многопроцессорность, поскольку только небольшое количество компонентов внутри ЦП реплицируется для поддержки МП, в отличие от всего ЦП в случае МП. В МП исполнительные блоки и система памяти, включая кэши, совместно используются несколькими потоками. Недостатком МП является то, что аппаратная поддержка многопоточности более заметна для программного обеспечения, чем у МП, и, таким образом, супервизорное программное обеспечение, такое как операционные системы, должно претерпевать более существенные изменения для поддержки МП. Один из типов MT, который был реализован, известен как временная многопоточность , где один поток выполняется до тех пор, пока он не остановится в ожидании возврата данных из внешней памяти. В этой схеме ЦП затем быстро переключается на другой поток, который готов к запуску, переключение часто выполняется за один такт ЦП, например, UltraSPARC T1 . Другой тип MT — одновременная многопоточность , где инструкции из нескольких потоков выполняются параллельно в течение одного тактового цикла ЦП.

В течение нескольких десятилетий с 1970-х до начала 2000-х годов основное внимание при проектировании высокопроизводительных универсальных процессоров уделялось достижению высокого ILP с помощью таких технологий, как конвейеризация, кэширование, суперскалярное выполнение, внеочередное выполнение и т. д. Эта тенденция достигла кульминации в больших, прожорливых процессорах, таких как Intel Pentium 4. К началу 2000-х годов проектировщики процессоров не смогли добиться более высокой производительности с помощью методов ILP из-за растущего несоответствия между рабочими частотами процессора и рабочими частотами основной памяти, а также из-за растущего рассеивания мощности процессора из-за более экзотических методов ILP.

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

Это изменение акцента подтверждается распространением двух- и более ядерных процессорных конструкций и, в частности, новыми разработками Intel, напоминающими ее менее суперскалярную архитектуру P6 . Поздние разработки в нескольких семействах процессоров демонстрируют CMP, включая x86-64 Opteron и Athlon 64 X2 , SPARC UltraSPARC T1 , IBM POWER4 и POWER5 , а также несколько процессоров для игровых консолей, таких как трехъядерная конструкция PowerPC Xbox 360 и 7-ядерный микропроцессор Cell PlayStation 3 .

Параллелизм данных

Менее распространенная, но все более важная парадигма процессоров (и, конечно, вычислений в целом) имеет дело с параллелизмом данных. Все рассмотренные ранее процессоры называются некоторым типом скалярного устройства. [j] Как следует из названия, векторные процессоры имеют дело с несколькими фрагментами данных в контексте одной инструкции. Это контрастирует со скалярными процессорами, которые имеют дело с одним фрагментом данных для каждой инструкции. Используя таксономию Флинна , эти две схемы работы с данными обычно называются единым потоком инструкций , множественным потоком данных ( SIMD ) и единым потоком инструкций, единым потоком данных ( SISD ) соответственно. Большая полезность в создании процессоров, которые имеют дело с векторами данных, заключается в оптимизации задач, которые, как правило, требуют выполнения одной и той же операции (например, суммы или скалярного произведения ) над большим набором данных. Некоторые классические примеры этих типов задач включают мультимедийные приложения (изображения, видео и звук), а также многие типы научных и инженерных задач. В то время как скалярный процессор должен завершить весь процесс извлечения, декодирования и выполнения каждой инструкции и значения в наборе данных, векторный процессор может выполнить одну операцию над сравнительно большим набором данных с помощью одной инструкции. Это возможно только тогда, когда приложение имеет тенденцию требовать много шагов, которые применяют одну операцию к большому набору данных.

Большинство ранних векторных процессоров, таких как Cray-1 , были связаны почти исключительно с научными исследованиями и криптографическими приложениями. Однако, поскольку мультимедиа в значительной степени переместилось в цифровые носители, потребность в некоторой форме SIMD в процессорах общего назначения стала существенной. Вскоре после того, как включение блоков с плавающей точкой стало обычным явлением в процессорах общего назначения, спецификации и реализации блоков исполнения SIMD также начали появляться для процессоров общего назначения. [ когда? ] Некоторые из этих ранних спецификаций SIMD — например, Multimedia Acceleration eXtensions (MAX) от HP и MMX от Intel — были только целочисленными. Это оказалось существенным препятствием для некоторых разработчиков программного обеспечения, поскольку многие приложения, которые извлекают выгоду из SIMD, в первую очередь имеют дело с числами с плавающей точкой . Постепенно разработчики усовершенствовали и переделали эти ранние разработки в некоторые из распространенных современных спецификаций SIMD, которые обычно связаны с архитектурой одного набора инструкций (ISA). Некоторые известные современные примеры включают Streaming SIMD Extensions (SSE) компании Intel и связанный с PowerPC AltiVec (также известный как VMX). [k]

Счетчик производительности оборудования

Многие современные архитектуры (включая встроенные) часто включают в себя счетчики производительности оборудования (HPC), которые позволяют осуществлять низкоуровневый (на уровне инструкций) сбор, тестирование , отладку или анализ метрик работающего программного обеспечения. [81] [82] HPC также может использоваться для обнаружения и анализа необычной или подозрительной активности программного обеспечения, такой как эксплойты возвратно-ориентированного программирования (ROP) или возвратно-ориентированного программирования (SROP) и т. д. [83] Обычно это делается группами по безопасности программного обеспечения для оценки и поиска вредоносных двоичных программ. [84]

Многие крупные поставщики (такие как IBM , Intel , AMD и Arm ) предоставляют программные интерфейсы (обычно написанные на C/C++), которые можно использовать для сбора данных из регистров ЦП с целью получения метрик. [85] Поставщики операционных систем также предоставляют программное обеспечение, такое как perf(Linux), для записи, тестирования или отслеживания событий ЦП при запуске ядер и приложений.

Аппаратные счетчики предоставляют малозатратный метод сбора комплексных показателей производительности, связанных с основными элементами ЦП (функциональными блоками, кэшами, основной памятью и т. д.), что является существенным преимуществом по сравнению с программными профилировщиками. [86] Кроме того, они, как правило, устраняют необходимость в изменении базового исходного кода программы. [87] [88] Поскольку аппаратные конструкции различаются в зависимости от архитектуры, конкретные типы и интерпретации аппаратных счетчиков также будут меняться.

Привилегированные режимы

Большинство современных процессоров имеют привилегированные режимы для поддержки операционных систем и виртуализации.

Облачные вычисления могут использовать виртуализацию для предоставления виртуальных центральных процессоров [89] ( vCPU ) для отдельных пользователей. [90]

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

Производительность

Производительность или скорость процессора зависит, среди многих других факторов, от тактовой частоты (обычно указывается в кратных герцах ) и инструкций за такт (IPC), которые вместе являются факторами для инструкций в секунду (IPS), которые может выполнить ЦП. [92] Многие сообщенные значения IPS представляют собой «пиковые» скорости выполнения на искусственных последовательностях инструкций с небольшим количеством ветвей, тогда как реалистичные рабочие нагрузки состоят из смеси инструкций и приложений, некоторые из которых выполняются дольше, чем другие. Производительность иерархии памяти также сильно влияет на производительность процессора, вопрос, который едва ли учитывается в расчетах IPS. Из-за этих проблем были разработаны различные стандартизированные тесты, часто называемые «бенчмарками» для этой цели — например, SPECint ‍ — чтобы попытаться измерить реальную эффективную производительность в часто используемых приложениях.

Производительность обработки компьютеров увеличивается за счет использования многоядерных процессоров , что по сути является подключением двух или более отдельных процессоров (называемых ядрами в этом смысле) к одной интегральной схеме. [93] В идеале двухъядерный процессор должен быть почти в два раза мощнее одноядерного. На практике прирост производительности гораздо меньше, всего около 50%, из-за несовершенных программных алгоритмов и реализации. [94] Увеличение количества ядер в процессоре (т. е. двухъядерный, четырехъядерный и т. д.) увеличивает рабочую нагрузку, с которой можно справиться. Это означает, что процессор теперь может обрабатывать многочисленные асинхронные события, прерывания и т. д., которые могут нанести урон ЦП при перегрузке. Эти ядра можно рассматривать как разные этажи на перерабатывающем заводе, где каждый этаж обрабатывает разные задачи. Иногда эти ядра будут обрабатывать те же задачи, что и соседние с ними ядра, если одного ядра недостаточно для обработки информации. Многоядерные ЦП повышают способность компьютера выполнять несколько задач одновременно, предоставляя дополнительную вычислительную мощность. Однако увеличение скорости не прямо пропорционально количеству добавленных ядер. Это происходит потому, что ядрам необходимо взаимодействовать через определенные каналы, и эта межъядерная коммуникация потребляет часть доступной скорости обработки. [95]

Из-за специфических возможностей современных ЦП, таких как одновременная многопоточность и uncore , которые предполагают совместное использование фактических ресурсов ЦП с целью повышения их использования, мониторинг уровней производительности и использования оборудования постепенно стал более сложной задачей. [96] В ответ на это некоторые ЦП реализуют дополнительную аппаратную логику, которая отслеживает фактическое использование различных частей ЦП и предоставляет различные счетчики, доступные программному обеспечению; примером является технология Performance Counter Monitor компании Intel . [9]

Смотрите также

Примечания

  1. ^ Интегральные схемы в настоящее время используются для реализации всех процессоров, за исключением нескольких машин, разработанных для того, чтобы выдерживать большие электромагнитные импульсы, например, от ядерного оружия.
  2. ^ В так называемом «меморандуме фон Неймана» излагается идея хранимых программ, [65] которые, например, могут храниться на перфокартах , бумажной ленте или магнитной ленте.
  3. ^ Некоторые ранние компьютеры, такие как Harvard Mark I, не поддерживали никаких команд «перехода», что фактически ограничивало сложность программ, которые они могли запускать. Во многом по этой причине эти компьютеры часто не считаются содержащими надлежащий ЦП, несмотря на их близкое сходство с компьютерами с хранимой программой.
  4. ^ Поскольку счетчик программ считает адреса памяти , а не инструкции , он увеличивается на количество единиц памяти, которые содержит слово инструкции. В случае простых ISA с фиксированной длиной слова инструкции это всегда одно и то же число. Например, ISA с фиксированной длиной 32 бита слова инструкции, которое использует 8 бит слова памяти, всегда будет увеличивать PC на четыре (за исключением случая переходов). ISA, которые используют слова инструкции переменной длины, увеличивают PC на количество слов памяти, соответствующих длине последней инструкции.
  5. ^ Поскольку архитектура набора инструкций ЦП является основополагающей для его интерфейса и использования, она часто используется как классификация «типа» ЦП. Например, «ЦП PowerPC» использует некоторый вариант ISA PowerPC. Система может выполнять другой ISA, запустив эмулятор.
  6. ^ Несколько специализированных ЦП, ускорителей или микроконтроллеров не имеют кэша. Чтобы быть быстрыми, если это необходимо/желательно, они все еще имеют встроенную в чип память с аналогичной функцией, в то время как управляются программно. Например, в микроконтроллерах может быть лучше для использования в жестком реальном времени иметь его или, по крайней мере, не иметь кэша, так как с одним уровнем памяти задержки загрузки предсказуемы.
  7. ^ Физическое понятие напряжения является аналоговым по своей природе, практически имеющим бесконечный диапазон возможных значений. Для физического представления двоичных чисел определены два конкретных диапазона напряжений: один для логического «0», а другой для логической «1». Эти диапазоны диктуются конструктивными соображениями, такими как запасы по шуму и характеристики устройств, используемых для создания ЦП.
  8. ^ Хотя размер целого числа ЦП устанавливает ограничение на диапазон целых чисел, это можно (и часто удается) преодолеть, используя комбинацию программных и аппаратных методов. Используя дополнительную память, программное обеспечение может представлять целые числа, во много раз большие, чем может представить ЦП. Иногда набор инструкций ЦП даже облегчает операции с целыми числами, большими, чем он может изначально представить, предоставляя инструкции, чтобы сделать арифметику больших целых чисел относительно быстрой. Этот метод работы с большими целыми числами медленнее, чем использование ЦП с большим размером целого числа, но является разумным компромиссом в случаях, когда собственная поддержка полного необходимого диапазона целых чисел будет непомерно затратной. Подробнее о чисто программно поддерживаемых целых числах произвольного размера см. в разделе Арифметика произвольной точности .
  9. ^ Ни ILP , ни TLP по своей сути не превосходят друг друга; они просто являются разными способами увеличения параллелизма ЦП. Таким образом, оба они имеют преимущества и недостатки, которые часто определяются типом программного обеспечения, для которого предназначен процессор. ЦП с высоким TLP часто используются в приложениях, которые хорошо подходят для разделения на множество меньших приложений, так называемых « затруднительно параллельных задачах». Часто вычислительная задача, которая может быть быстро решена с помощью стратегий проектирования с высоким TLP, таких как симметричная многопроцессорная обработка, занимает значительно больше времени на устройствах с высоким ILP, таких как суперскалярные ЦП, и наоборот.
  10. ^ Ранее термин скаляр использовался для сравнения количества IPC, предоставляемого различными методами ILP. Здесь термин используется в строго математическом смысле для противопоставления векторам. См. скаляр (математика) и вектор (геометрия) .
  11. ^ Хотя SSE/SSE2/SSE3 заменили MMX в процессорах общего назначения Intel, более поздние разработки IA-32 по-прежнему поддерживают MMX. Обычно это делается путем предоставления большей части функциональности MMX с тем же оборудованием, которое поддерживает гораздо более обширные наборы инструкций SSE.

Ссылки

  1. ^ Команда, эксперт YCT. Инженерное черчение и фундаментальная наука. Время молодежных соревнований. стр. 425.
  2. ^ Нагпал, Д.П. (2008). Основы вычислительной техники. S. Chand Publishing. стр. 33. ISBN 978-81-219-2388-0.
  3. ^ "Что такое процессор (ЦП)? Определение с сайта WhatIs.com". WhatIs . Получено 15.03.2024 .
  4. ^ Чесалов, Александр (2023-04-12). Глоссарий четвертой промышленной революции: более 1500 самых популярных терминов, которые вы будете использовать для создания будущего. Литрес. ISBN 978-5-04-541163-9.
  5. ^ Ягаре, Ульрика (2022-04-19). Операционный ИИ: преодоление разрыва между технологией и бизнесом. John Wiley & Sons. ISBN 978-1-119-83321-5.
  6. ^ Кук, Дэвид (1978). Компьютеры и вычисления, т. 1. John Wiley & Sons, Inc. стр. 12. ISBN 978-0471027164.
  7. ^ Prabhat, Team (2023-04-13). Полное руководство по SSC CGL Combined Graduate Level Tier-I & Tier II Prelims & Mains (с последними решенными вопросами) Guide Book English: бестселлер от Team Prabhat: Полное руководство по SSC CGL Combined Graduate Level Tier-I & Tier II Prelims & Mains (с последними решенными вопросами) Guide Book English. Прабхат Пракашан. стр. 95. ISBN 978-93-5488-527-3.
  8. ^ "Что такое многоядерный процессор и как он работает?". Центр обработки данных . Получено 2024-03-15 .
  9. ^ ab Willhalm, Thomas; Dementiev, Roman; Fay, Patrick (18 декабря 2014 г.). "Intel Performance Counter Monitor – A better way to measure CPU usage". software.intel.com . Архивировано из оригинала 22 февраля 2017 г. . Получено 17 февраля 2015 г. .
  10. ^ Херрес, Дэвид (2020-10-06). Осциллографы: руководство для студентов, инженеров и ученых. Springer Nature. стр. 130. ISBN 978-3-030-53885-9.
  11. ^ Реган, Джерард (2008). Краткая история вычислений. Springer. стр. 66. ISBN 978-1848000834. Получено 26 ноября 2014 г.
  12. ^ Weik, Martin H. (1955). «Обзор отечественных электронных цифровых вычислительных систем». Ballistic Research Laboratory . Архивировано из оригинала 2021-01-26 . Получено 2020-11-15 .
  13. ^ ab Weik, Martin H. (1961). «Третий обзор отечественных электронных цифровых вычислительных систем». Веб-сайт Эда Телена по ракетам Nike . Лаборатория баллистических исследований . Архивировано из оригинала 11.09.2017 . Получено 16.12.2005 .
  14. ^ "Bit By Bit". Haverford College. Архивировано из оригинала 13 октября 2012 г. Получено 1 августа 2015 г.
  15. ^ Первый черновик отчета по EDVAC (PDF) (Технический отчет). Школа электротехники Мура , Пенсильванский университет . 1945. Архивировано (PDF) из оригинала 09.03.2021 . Получено 31.03.2018 .
  16. ^ Стэнфордский университет. «Современная история вычислений». Стэнфордская энциклопедия философии . Получено 25 сентября 2015 г.
  17. ^ "День рождения ENIAC". The MIT Press. 9 февраля 2016 г. Архивировано из оригинала 17 октября 2018 г. Получено 17 октября 2018 г.
  18. Энтикнап, Николас (лето 1998 г.), «Золотой юбилей вычислений», Resurrection (20), The Computer Conservation Society, ISSN  0958-7403, архивировано из оригинала 17 марта 2019 г. , извлечено 26 июня 2019 г.
  19. ^ "The Manchester Mark 1". Манчестерский университет . Архивировано из оригинала 25 января 2015 г. Получено 25 сентября 2015 г.
  20. ^ "Первое поколение". Музей истории компьютеров. Архивировано из оригинала 22 ноября 2016 года . Получено 29 сентября 2015 года .
  21. ^ "История интегральной схемы". Nobelprize.org . Архивировано из оригинала 22 мая 2022 г. Получено 17 июля 2022 г.
  22. ^ Терли, Джим (11 августа 2003 г.). «Автомобили с микропроцессорами». Встроено. Архивировано из оригинала 14 октября 2022 г. Получено 26 декабря 2022 г.
  23. ^ "Руководство по мобильным процессорам – лето 2013". Android Authority. 2013-06-25. Архивировано из оригинала 2015-11-17 . Получено 15 ноября 2015 г.
  24. ^ «Раздел 250: Микропроцессоры и игрушки: Введение в вычислительные системы». Мичиганский университет. Архивировано из оригинала 13 апреля 2021 г. Получено 9 октября 2018 г.
  25. ^ "Процессор ARM946". ARM. Архивировано из оригинала 17 ноября 2015 г.
  26. ^ "Конрад Цузе". Музей истории компьютеров. Архивировано из оригинала 3 октября 2016 года . Получено 29 сентября 2015 года .
  27. ^ "Хронология компьютерной истории: компьютеры". Музей компьютерной истории. Архивировано из оригинала 29 декабря 2017 г. Получено 21 ноября 2015 г.
  28. ^ Уайт, Стивен. «Краткая история вычислений – компьютеры первого поколения». Архивировано из оригинала 2 января 2018 г. Получено 21 ноября 2015 г.
  29. ^ "Harvard University Mark I Paper Tape Punch Unit". Музей истории компьютеров. Архивировано из оригинала 22 ноября 2015 г. Получено 21 ноября 2015 г.
  30. ^ "В чем разница между архитектурой фон Неймана и архитектурой Гарварда?". ARM. Архивировано из оригинала 18 ноября 2015 г. Получено 22 ноября 2015 г.
  31. ^ "Advanced Architecture Optimizes the Atmel AVR CPU". Atmel. Архивировано из оригинала 14 ноября 2015 г. Получено 22 ноября 2015 г.
  32. ^ "Переключатели, транзисторы и реле". BBC. Архивировано из оригинала 5 декабря 2016 года.
  33. ^ "Введение в вакуумный транзистор: устройство, сделанное из ничего". IEEE Spectrum . 2014-06-23. Архивировано из оригинала 2018-03-23 . Получено 27 января 2019 г.
  34. ^ Что такое производительность компьютера?. The National Academies Press. 2011. doi :10.17226/12980. ISBN 978-0-309-15951-7. Архивировано из оригинала 5 июня 2016 г. . Получено 16 мая 2016 г. .
  35. ^ "1953: Появление транзисторных компьютеров". Музей истории компьютеров . Архивировано из оригинала 1 июня 2016 года . Получено 3 июня 2016 года .
  36. ^ "Даты и характеристики IBM System/360". IBM. 2003-01-23. Архивировано из оригинала 2017-11-21 . Получено 2016-01-13 .
  37. ^ ab Amdahl, GM ; Blaauw, GA ; Brooks, FP Jr. (апрель 1964 г.). «Архитектура IBM System/360». IBM Journal of Research and Development . 8 (2). IBM : 87–101. doi :10.1147/rd.82.0087. ISSN  0018-8646.
  38. ^ Бродкин, Джон (7 апреля 2014 г.). «50 лет назад IBM создала мэйнфрейм, который помог отправить людей на Луну». Ars Technica . Архивировано из оригинала 8 апреля 2016 г. Получено 9 апреля 2016 г.
  39. ^ Кларк, Гэвин. «Почему ты не умрешь? IBM S/360 и его наследие в 50 лет». The Register . Архивировано из оригинала 24 апреля 2016 года . Получено 9 апреля 2016 года .
  40. ^ "Online PDP-8 Home Page, Run a PDP-8". PDP8 . Архивировано из оригинала 11 августа 2015 г. Получено 25 сентября 2015 г.
  41. ^ "Транзисторы, реле и управление сильноточными нагрузками". Нью-Йоркский университет . Физические вычисления ITP. Архивировано из оригинала 21 апреля 2016 года . Получено 9 апреля 2016 года .
  42. ^ Лилли, Пол (2009-04-14). "Краткая история ЦП: 31 потрясающий год x86". PC Gamer . Архивировано из оригинала 2016-06-13 . Получено 15 июня 2016 г.
  43. ^ ab Patterson, David A.; Hennessy, John L.; Larus, James R. (1999). Организация и проектирование компьютеров: интерфейс оборудования и программного обеспечения (3-е издание 2-го издания). Сан-Франциско, Калифорния: Kaufmann. стр. 751. ISBN 978-1558604285.
  44. ^ "1962: Аэрокосмические системы — первые приложения для ИС в компьютерах". Музей истории компьютеров . Архивировано из оригинала 5 октября 2018 г. Получено 9 октября 2018 г.
  45. ^ "Интегральные схемы в программе пилотируемой посадки на Луну "Аполлона"". Национальное управление по аэронавтике и исследованию космического пространства. Архивировано из оригинала 21 июля 2019 года . Получено 9 октября 2018 года .
  46. ^ "System/370 Announcement". Архивы IBM . 2003-01-23. Архивировано из оригинала 2018-08-20 . Получено 25 октября 2017 г.
  47. ^ "System/370 Model 155 (Continued)". Архивы IBM . 2003-01-23. Архивировано из оригинала 2016-07-20 . Получено 25 октября 2017 г.
  48. ^ "Модели и опции". The Digital Equipment Corporation PDP-8. Архивировано из оригинала 26 июня 2018 г. Получено 15 июня 2018 г.
  49. ^ Бассетт, Росс Нокс (2007). В цифровую эпоху: исследовательские лаборатории, стартапы и рост технологии MOS. Издательство Университета Джонса Хопкинса . С. 127–128, 256 и 314. ISBN 978-0-8018-6809-2.
  50. ^ ab Shirriff, Ken. "Texas Instruments TMX 1795: первый, забытый микропроцессор". Архивировано из оригинала 2021-01-26.
  51. ^ "Speed ​​& Power in Logic Families". Архивировано из оригинала 2017-07-26 . Получено 2017-08-02 ..
  52. ^ Stonham, TJ (1996). Методы цифровой логики: принципы и практика. Taylor & Francis. стр. 174. ISBN 9780412549700.
  53. ^ "1968: Разработана технология кремниевых затворов для микросхем". Музей истории компьютеров . Архивировано из оригинала 29-07-2020 . Получено 16-08-2019 .
  54. ^ Booher, RK (1968). MOS GP Computer (PDF) . Международный семинар по управлению знаниями о требованиях. AFIPS . стр. 877. doi :10.1109/AFIPS.1968.126. Архивировано (PDF) из оригинала 2017-07-14.
  55. ^ "Описания модулей LSI-11". Руководство пользователя LSI-11, PDP-11/03 (PDF) (2-е изд.). Мейнард, Массачусетс: Digital Equipment Corporation . Ноябрь 1975 г. стр. 4-3. Архивировано (PDF) из оригинала 10.10.2021 г. Получено 20.02.2015 г.
  56. ^ Bigelow, Stephen J. (март 2022 г.). «Что такое многоядерный процессор и как он работает?». TechTarget. Архивировано из оригинала 11 июля 2022 г. Получено 17 июля 2022 г.
  57. ^ Биркби, Ричард. «Краткая история микропроцессора». computermuseum.li . Архивировано из оригинала 23 сентября 2015 г. . Получено 13 октября 2015 г. .
  58. ^ Осборн, Адам (1980). Введение в микрокомпьютеры. Том 1: Основные концепции (2-е изд.). Беркли, Калифорния: Osborne-McGraw Hill. ISBN 978-0-931988-34-9.
  59. ^ Жислина, Виктория (2014-02-19). "Почему частота ЦП перестала расти?". Intel. Архивировано из оригинала 2017-06-21 . Получено 14 октября 2015 .
  60. ^ "MOS Transistor – Electrical Engineering & Computer Science" (PDF) . Калифорнийский университет. Архивировано (PDF) из оригинала 2022-10-09 . Получено 14 октября 2015 г. .
  61. ^ Саймонит, Том. «Закон Мура мертв. Что теперь?». MIT Technology Review . Архивировано из оригинала 22-08-2018 . Получено 24-08-2018 .
  62. ^ Мур, Гордон (2005). "Выдержки из разговора с Гордоном Муром: закон Мура" (PDF) (интервью). Intel. Архивировано из оригинала (PDF) 29-10-2012 . Получено 25-07-2012 .
  63. ^ «Подробная история процессора». Tech Junkie. 15 декабря 2016 г. Архивировано из оригинала 14 августа 2019 г. Получено 14 августа 2019 г.
  64. ^ Эйгенманн, Рудольф; Лилья, Дэвид (1998). "Компьютеры фон Неймана". Энциклопедия электротехники и электроники Wiley . doi :10.1002/047134608X.W1704. ISBN 047134608X. S2CID  8197337.
  65. ^ Aspray, William (сентябрь 1990 г.). «Концепция хранимой программы». IEEE Spectrum . Т. 27, № 9. С. 51. doi :10.1109/6.58457.
  66. ^ Сарасват, Кришна. "Тенденции в технологии интегральных схем" (PDF) . Архивировано из оригинала (PDF) 2015-07-24 . Получено 15 июня 2018 .
  67. ^ "Электромиграция". Middle East Technical University. Архивировано из оригинала 31 июля 2017 г. Получено 15 июня 2018 г.
  68. ^ Wienand, Ian (3 сентября 2013 г.). "Computer Science from the Bottom Up, Chapter 3. Computer Architecture" (PDF) . bottomupcs.com . Архивировано (PDF) из оригинала 6 февраля 2016 г. . Получено 7 января 2015 г. .
  69. ^ "Введение в блок управления и его конструкция". GeeksforGeeks . 2018-09-24. Архивировано из оригинала 2021-01-15 . Получено 2021-01-12 .
  70. ^ Van Berkel, Cornelis; Meuwissen, Patrick (12 января 2006 г.). «Устройство генерации адреса для процессора (патентная заявка США 2006010255 A1)». google.com . Архивировано из оригинала 18 апреля 2016 г. . Получено 8 декабря 2014 г. . [ требуется проверка ]
  71. ^ Торрес, Габриэль (12 сентября 2007 г.). «Как работает кэш-память». Hardware Secrets . Получено 29 января 2023 г. .
  72. ^ "IBM z13 и IBM z13s Technical Introduction" (PDF) . IBM . Март 2016 г. стр. 20. Архивировано (PDF) из оригинала 2022-10-09. [ требуется проверка ]
  73. ^ Браун, Джеффри (2005). "Проект ЦП, настраиваемый под приложения". IBM developerWorks. Архивировано из оригинала 2006-02-12 . Получено 2005-12-17 .
  74. ^ Мартин, А. Дж.; Нистром, М.; Вонг, К. Г. (ноябрь 2003 г.). «Три поколения асинхронных микропроцессоров». IEEE Design & Test of Computers . 20 (6): 9–17. doi :10.1109/MDT.2003.1246159. ISSN  0740-7475. S2CID  15164301. Архивировано из оригинала 2021-12-03 . Получено 2022-01-05 .
  75. ^ Garside, JD; Furber, SB; Chung, SH (1999). "AMULET3 Revealed". Труды Пятого международного симпозиума по перспективным исследованиям в области асинхронных цепей и систем . Кафедра компьютерных наук Манчестерского университета . doi :10.1109/ASYNC.1999.761522. Архивировано из оригинала 10 декабря 2005 г.
  76. ^ IBM System/360 Model 65 Functional Characteristics (PDF) . IBM . Сентябрь 1968. С. 8–9. A22-6884-3. Архивировано (PDF) из оригинала 2022-10-09.
  77. ^ Huynh, Jack (2003). "Процессор AMD Athlon XP с кэшем L2 объемом 512 КБ" (PDF) . Урбана–Шампейн, Иллинойс: Университет Иллинойса. стр. 6–11. Архивировано из оригинала (PDF) 28.11.2007 . Получено 06.10.2007 .
  78. ^ Готтлиб, Аллан; Алмаси, Джордж С. (1989). Высокопараллельные вычисления. Редвуд-Сити, Калифорния: Benjamin/Cummings. ISBN 978-0-8053-0177-9. Архивировано из оригинала 2018-11-07 . Получено 2016-04-25 .
  79. ^ Флинн, М. Дж. (сентябрь 1972 г.). «Некоторые компьютерные организации и их эффективность». Труды IEEE по компьютерам . C-21 (9): 948–960. doi :10.1109/TC.1972.5009071. S2CID  18573685.
  80. ^ Lu, N.-P.; Chung, C.-P. (1998). «Использование параллелизма в суперскалярной многопроцессорной обработке». Труды IEE — Компьютеры и цифровые технологии . 145 (4): 255. doi :10.1049/ip-cdt:19981955.
  81. ^ Uhsadel, Leif; Georges, Andy; Verbauwhede, Ingrid (август 2008 г.). Exploiting Hardware Performance Counters. 5-й семинар 2008 г. по диагностике и устойчивости к отказам в криптографии. стр. 59–67. doi :10.1109/FDTC.2008.19. ISBN 978-0-7695-3314-8. S2CID  1897883. Архивировано из оригинала 2021-12-30 . Получено 2021-12-30 .
  82. ^ Рохоу, Эрвен (сентябрь 2012 г.). Tiptop: Аппаратные счетчики производительности для масс. 2012 41-я Международная конференция по параллельной обработке. Семинары. стр. 404–413. doi :10.1109/ICPPW.2012.58. ISBN 978-1-4673-2509-7. S2CID  16160098. Архивировано из оригинала 2021-12-30 . Получено 2021-12-30 .
  83. ^ Херат, Нишад; Фог, Андерс (2015). "CPU Hardware Performance Counters for Security" (PDF) . США: Black Hat. Архивировано (PDF) из оригинала 2015-09-05.
  84. ^ Jøsang, Audun (2018-06-21). ECCWS 2018 17-я Европейская конференция по кибервойне и безопасности V2. Academic Conferences and Publishing Limited. ISBN 978-1-911218-86-9.
  85. ^ DeRose, Luiz A. (2001), Sakellariou, Rizos; Gurd, John; Freeman, Len; Keane, John (ред.), "The Hardware Performance Monitor Toolkit", Euro-Par 2001 Parallel Processing , Lecture Notes in Computer Science, т. 2150, Берлин, Гейдельберг: Springer Berlin Heidelberg, стр. 122–132, doi :10.1007/3-540-44681-8_19, ISBN 978-3-540-42495-6, заархивировано из оригинала 2023-03-01 , извлечено 2021-12-30
  86. ^ "TOWARDS A BENCHMARK ДЛЯ ОЦЕНКИ ПРОИЗВОДИТЕЛЬНОСТИ И ПОТРЕБЛЕНИЯ ЭНЕРГИИ ИНТЕРФЕЙСОВ ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ" (PDF) (на вьетнамском языке) . Получено 2024-03-15 .
  87. ^ "Open Source: Что это значит, Как это работает, Пример". Investopedia . Получено 2024-03-15 .
  88. ^ Чаудхури, Тарун Кумар; Банерджи, Джойанта; Гупта, Випул; Поддар, Дебопам (2024-03-04). Освоение безопасных приложений Java: управление безопасностью в облаке и микросервисах для Java (англ. ред.). BPB Publications. стр. 117. ISBN 978-93-5551-884-2.
  89. ^ Анджум, Бушра; Перрос, Гарри Г. (2015). "1: Разделение бюджета сквозного QoS на домены". Распределение полосы пропускания для видео при ограничениях качества обслуживания . Серия Focus. John Wiley & Sons. стр. 3. ISBN 9781848217461. Получено 2016-09-21 . [...] в облачных вычислениях, где несколько программных компонентов работают в виртуальной среде на одном и том же лезвии, один компонент на виртуальную машину (ВМ). Каждой ВМ выделяется виртуальный центральный процессор [...], который является частью ЦП лезвия.
  90. ^ Фифилд, Том; Флеминг, Диана; Джентл, Энн; Хохштейн, Лорин; Пру, Джонатан; Тейвс, Эверетт; Топджиан, Джо (2014). "Глоссарий". Руководство по эксплуатации OpenStack . Пекин: O'Reilly Media, Inc. стр. 286. ISBN 9781491906309. Получено 2016-09-20 . Виртуальный центральный процессор (vCPU)[:] Разделяет физические процессоры. Экземпляры затем могут использовать эти разделения.
  91. ^ «Обзор архитектуры инфраструктуры VMware – Белая книга» (PDF) . VMware . 2006. Архивировано (PDF) из оригинала 2022-10-09.
  92. ^ "CPU Frequency". CPU World Glossary . CPU World. 25 марта 2008 г. Архивировано из оригинала 9 февраля 2010 г. Получено 1 января 2010 г.
  93. ^ "Что такое (a) многоядерный процессор?". Определения центров обработки данных . SearchDataCenter.com. Архивировано из оригинала 5 августа 2010 г. Получено 8 августа 2016 г.
  94. ^ Mlblevins (8 апреля 2010 г.). «Quad Core Vs. Dual Core». Tech Spirited . Архивировано из оригинала 4 июля 2019 г. Получено 7 ноября 2019 г.
  95. ^ Марцин, Вецлав (12 января 2022 г.). «Факторы, влияющие на производительность многоядерных процессоров». PcSite .
  96. ^ Тегтмейер, Мартин. «Объяснение использования ЦП в многопоточных архитектурах». Oracle. Архивировано из оригинала 18 июля 2022 г. Получено 17 июля 2022 г.

Внешние ссылки