Из Википедии, бесплатной энциклопедии
  (Перенаправлено с центрального процессора )
Перейти к навигации Перейти к поиску
Нижняя сторона Intel 80486DX2 , показывая его контакты
По состоянию на март 2021 года AMD Ryzen Threadripper 3990X является самым быстрым процессором AMD для потребительских настольных ПК.

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

Форма, конструкция и реализация процессоров со временем изменились, но их основная работа остается практически неизменной. Основные компоненты ЦП включают арифметико-логический блок (ALU), который выполняет арифметические и логические операции , регистры процессора, которые поставляют операнды в ALU и хранят результаты операций ALU, и блок управления, который организует выборку (из памяти) и выполнение. инструкций, управляя согласованными операциями ALU, регистров и других компонентов.

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

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

У массивных или векторных процессоров есть несколько процессоров, которые работают параллельно, при этом ни один из модулей не считается центральным. Виртуальные процессоры - это абстракция динамических агрегированных вычислительных ресурсов. [3]

История [ править ]

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

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

Идея , хранящая программа компьютера была уже присутствует в конструкции Дж Преспера Эккерт и Джон Уильям Mauchly «s ENIAC , но первоначально была опущена так , что она может быть закончена раньше. [7] 30 июня 1945 года, до создания ENIAC, математик Джон фон Нейман распространил статью, озаглавленную « Первый проект отчета по EDVAC» . Это была схема компьютера с хранимой программой, который в конечном итоге должен был быть завершен в августе 1949 года. [8] EDVAC был разработан для выполнения определенного количества инструкций (или операций) различных типов. Примечательно, что программы, написанные для EDVAC, должны были храниться в памяти высокоскоростного компьютера.а не указано в физической разводке компьютера. [9] Это преодолело серьезное ограничение ENIAC, которое заключалось в значительном времени и усилиях, необходимых для перенастройки компьютера для выполнения новой задачи. [10] Благодаря проекту фон Неймана программа, которую запускал EDVAC, могла быть изменена просто путем изменения содержимого памяти. EDVAC, однако, не был первым компьютером с хранимой программой; Манчестер младенца , маломасштабная экспериментальная запасенной компьютерная программа, провел свою первую программу на 21 июня 1948 [11] и Manchester Mark 1 провел свою первую программу в ночь с 16-17 июня 1949 г. [12]

Ранние процессоры были нестандартными конструкциями, которые использовались как часть более крупного и иногда отличительного компьютера. [13] Однако этот метод разработки пользовательских процессоров для конкретного приложения в значительной степени уступил место разработке многоцелевых процессоров, производимых в больших количествах. Эта стандартизация началась в эпоху мэйнфреймов на дискретных транзисторах и миникомпьютеров и быстро ускорилась с популяризацией интегральных схем  (ИС). ИС позволила проектировать и производить все более сложные процессоры с допусками порядка нанометров . [14]Как миниатюризация, так и стандартизация ЦП увеличили присутствие цифровых устройств в современной жизни далеко за пределы ограниченного применения специализированных вычислительных машин. Современные микропроцессоры появляются в электронных устройствах, начиная от автомобилей [15] и заканчивая мобильными телефонами [16], а иногда даже в игрушках. [17] [18]

Хотя фон Нейману чаще всего приписывают дизайн компьютера с хранимой программой из-за его дизайна EDVAC, и этот дизайн стал известен как архитектура фон Неймана , другие до него, такие как Конрад Цузе , предлагали и реализовывали аналогичные идеи. [19] Так называемая Гарварда архитектуры из Гарварда Mark I , который был завершен до того EDVAC, [20] [21] также использовали конструкцию , хранящий программу , используя перфорированную бумажную ленту , а не электронную память. [22]Ключевое различие между архитектурами фон Неймана и Гарварда заключается в том, что последняя разделяет хранение и обработку инструкций и данных ЦП, в то время как первая использует одно и то же пространство памяти для обоих. [23] Большинство современных ЦП в основном построены по фон Нейману, но ЦП с архитектурой Гарварда также встречаются, особенно во встроенных приложениях; например, микроконтроллеры Atmel AVR - это процессоры с архитектурой Гарварда. [24]

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

Транзисторные процессоры [ править ]

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

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

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

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

Компьютеры на базе транзисторов имели несколько явных преимуществ перед своими предшественниками. Помимо повышения надежности и снижения энергопотребления, транзисторы также позволяли процессорам работать на гораздо более высоких скоростях из-за короткого времени переключения транзистора по сравнению с лампой или реле. [34] Повышенная надежность и резко увеличенная скорость переключающих элементов (которые к тому времени были почти исключительно транзисторами); Тактовые частоты процессора в десятки мегагерц были легко получены в этот период. [35] Кроме того, в то время как дискретные транзисторы и ЦП на микросхемах интенсивно использовались, начали появляться новые высокопроизводительные конструкции, такие как векторные процессоры SIMD (Single Instruction Multiple Data) . [36]Эти ранние экспериментальные образцы позже породили эпоху специализированных суперкомпьютеров , как те , сделанные Cray Inc и Fujitsu Ltd . [36]

Маломасштабные интеграционные процессоры [ править ]

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

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

IBM System / 370 , являющаяся продолжением System / 360, использовала микросхемы SSI, а не дискретные транзисторные модули Solid Logic Technology . [39] [40] фирмы DEC PDP-8 / I и KI10 PDP-10 также переключаются из отдельных транзисторов , используемых в PDP-8 и PDP-10 SSI ИС, [41] , и их чрезвычайно популярный PDP-11 линия была первоначально построен с использованием микросхем SSI, но в конечном итоге был реализован с компонентами LSI, когда они стали практичными.

Процессоры крупномасштабной интеграции [ править ]

МОП - транзистор (металл-оксид-полупроводник полевой транзистор), также известный как МОП - транзистора, был изобретен Mohamed Atalla и Давон Канг в Bell Labs в 1959 году, и продемонстрировано в 1960 г. [42] Это привело к развитию из MOS (металл-оксид-полупроводник) интегральная схема, предложенная Аталлой в 1960 году [43] и Кангом в 1961 году, а затем изготовленная Фредом Хейманом и Стивеном Хофштейном в RCA в 1962 году. [42] Благодаря высокой масштабируемости , [44] и намного меньшее энергопотребление и более высокая плотность, чем у транзисторов с биполярным переходом ,[45] MOSFET позволил создаватьинтегральные схемы высокой плотности . [46] [47]

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

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

Микропроцессоры [ править ]

Die из Intel 80486DX2 микропроцессора (фактический размер: 12 × 6,75 мм) в упаковке
Процессор Intel Core i5 на материнской плате ноутбука серии Vaio E (справа, под тепловой трубкой )
Внутри ноутбука, с удаленным процессором из гнезда

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

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

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

Операция [ править ]

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

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

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

Получить [ править ]

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

Расшифровать [ править ]

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

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

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

Выполнить [ править ]

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

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

Структура и реализация [ править ]

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

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

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

Блок управления [ править ]

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

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

Арифметико-логический блок [ править ]

Символьное представление ALU и его входных и выходных сигналов

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

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

Блок генерации адресов [ править ]

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

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

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

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

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

Кэш [ править ]

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

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

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

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

Тактовая частота [ править ]

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

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

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

Один из методов работы с переключением ненужных компонентов называется тактовым стробированием , который включает отключение тактового сигнала для ненужных компонентов (эффективное их отключение). Однако это часто считается трудным для реализации и поэтому не находит широкого применения за пределами проектов с очень низким энергопотреблением. Заметный недавний дизайн процессора , который использует обширные часы стробирования является IBM PowerPC -А ксенон используется в Xbox 360 ; Таким образом значительно снижаются требования к электропитанию Xbox 360. [74]Другой метод решения некоторых проблем с глобальным тактовым сигналом - полное удаление тактового сигнала. Хотя удаление глобального тактового сигнала значительно усложняет процесс проектирования во многих отношениях, асинхронные (или бесчасовые) конструкции обладают заметными преимуществами в энергопотреблении и рассеивании тепла по сравнению с аналогичными синхронными конструкциями. Хотя это несколько необычно, но целые асинхронные процессоры были построены без использования глобального тактового сигнала. Два известных примеров этого являются ARM совместимый АМУЛЕТ и MIPS совместимые MiniMIPS R3000.

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

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

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

Целочисленный диапазон [ править ]

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

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

С числовым представлением связаны размер и точность целых чисел, которые может представлять ЦП. В случае бинарного процессора, это измеряется числом бит (значащие цифры двоичного кодированного целого числа) , что процессор может обрабатывать в одной операции, который обычно называют размер слова , битовая шириной , ширина тракта данных , целочисленная точность , или целочисленный размер . Целочисленный размер ЦП определяет диапазон целочисленных значений, с которыми он может напрямую работать. [g] Например, 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-битные значения с плавающей запятой для обеспечения большей точности и диапазона чисел с плавающей запятой. [30] Модель 65 System / 360 имела 8-битный сумматор для десятичной и двоичной арифметики с фиксированной запятой и 60-битный сумматор для арифметики с плавающей запятой. [76] Во многих более поздних конструкциях ЦП используется аналогичная смешанная разрядность, особенно когда процессор предназначен для универсального использования, когда требуется разумный баланс возможностей целых чисел и чисел с плавающей запятой.

Параллелизм [ править ]

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

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

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

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

  • параллелизм на уровне команд (ILP), который стремится увеличить скорость, с которой инструкции выполняются в ЦП (то есть увеличить использование ресурсов выполнения на кристалле);
  • параллелизм на уровне задач (TLP), целью которого является увеличение количества потоков или процессов, которые ЦП может выполнять одновременно.

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

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

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

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

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

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

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

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

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

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

Параллелизм на уровне задач [ править ]

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

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

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

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

Виртуальные процессоры [ править ]

Облако вычислений может включать в себя операцию разделения процессора в виртуальных центральных процессоров [81] ( VCPU с [82] ).

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

Производительность [ править ]

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

Производительность компьютеров повышается за счет использования многоядерных процессоров , которые, по сути, представляют собой подключение двух или более отдельных процессоров ( в этом смысле называемых ядрами ) в одну интегральную схему. [85] В идеале двухъядерный процессор был бы почти вдвое мощнее одноядерного. На практике прирост производительности намного меньше, всего около 50%, из-за несовершенных программных алгоритмов и реализации. [86]Увеличение количества ядер в процессоре (т. Е. Двухъядерных, четырехъядерных и т. Д.) Увеличивает обрабатываемую рабочую нагрузку. Это означает, что процессор теперь может обрабатывать множество асинхронных событий, прерываний и т. Д., Которые могут сказываться на CPU при перегрузке. Эти ядра можно рассматривать как разные этажи на перерабатывающем предприятии, где каждый этаж выполняет свою задачу. Иногда эти ядра будут обрабатывать те же задачи, что и соседние с ними ядра, если одного ядра недостаточно для обработки информации.

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

См. Также [ править ]

  • Режим адресации
  • Ускоренный процессор AMD
  • CISC
  • Компьютерный автобус
  • Компьютерная инженерия
  • Напряжение ядра процессора
  • Сокет процессора
  • Цифровой сигнальный процессор
  • GPU
  • Список наборов инструкций
  • Защитное кольцо
  • RISC
  • Потоковая обработка
  • Индекс истинной производительности
  • ТПУ
  • Состояние ожидания

Заметки [ править ]

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

Ссылки [ править ]

  1. ^ Кук, Дэвид (1978). Компьютеры и вычисления, Том 1 . John Wiley & Sons, Inc. стр. 12. ISBN 978-0471027164.
  2. ^ a b Томас Уилльхальм; Роман Дементьев; Патрик Фэй (18 декабря 2014 г.). «Intel Performance Counter Monitor - лучший способ измерить загрузку процессора» . software.intel.com . Проверено 17 февраля 2015 года .
  3. ^ Liebowitz, Kusek, Шпионы, Мэтт, Кристофер, Rynardt (2014). VMware vSphere Performance: проектирование ЦП, памяти, хранилища и сети для ресурсоемких рабочих нагрузок . Вайли. п. 68. ISBN 978-1-118-00819-5.CS1 maint: multiple names: authors list (link)
  4. ^ Риган, Джерард (2008). Краткая история вычислительной техники . п. 66. ISBN 978-1848000834. Проверено 26 ноября 2014 года .
  5. ^ Вейк, Мартин Х. (1955). «Обзор отечественных электронных цифровых вычислительных систем» . Лаборатория баллистических исследований . Cite journal requires |journal= (help)
  6. ^ a b Вейк, Мартин Х. (1961). «Третий обзор отечественных электронных цифровых вычислительных систем» . Лаборатория баллистических исследований . Cite journal requires |journal= (help)
  7. ^ «Бит за битом» . Хаверфордский колледж. Архивировано из оригинального 13 октября 2012 года . Проверено 1 августа 2015 года .
  8. ^ «Первый проект отчета о EDVAC» (PDF) . Школа электротехники Мура , Пенсильванский университет . 1945 г. Cite journal requires |journal= (help)
  9. ^ Стэнфордский университет. «Современная история вычислительной техники» . Стэнфордская энциклопедия философии . Проверено 25 сентября 2015 года .
  10. ^ "День рождения ENIAC" . MIT Press. 9 февраля 2016 . Проверено 17 октября 2018 года .
  11. ^ Enticknap, Николас (лето 1998), "Computing Золотой Юбилей" , Воскресенский , Компьютер Conservation Society (20), ISSN 0958-7403 , получен 26 июня 2 019 
  12. ^ "Манчестер Марк 1" . Манчестерский университет . Проверено 25 сентября 2015 года .
  13. ^ «Первое поколение» . Музей истории компьютеров . Проверено 29 сентября 2015 года .
  14. ^ "История интегральной схемы" . Nobelprize.org . Проверено 29 сентября 2015 года .
  15. ^ Терли, Джим. «Автомобили с микропроцессорами» . Встроенный . Проверено 15 ноября 2015 года .
  16. ^ «Руководство по мобильному процессору - лето 2013» . Android Authority. 2013-06-25 . Проверено 15 ноября 2015 года .
  17. ^ «Раздел 250: Микропроцессоры и игрушки: Введение в вычислительные системы» . Мичиганский университет . Проверено 9 октября 2018 года .
  18. ^ "Процессор ARM946" . РУКА. Архивировано из оригинального 17 ноября 2015 года.
  19. ^ "Конрад Цузе" . Музей истории компьютеров . Проверено 29 сентября 2015 года .
  20. ^ «Хронология компьютерной истории: компьютеры» . Музей истории компьютеров . Проверено 21 ноября 2015 года .
  21. ^ Белый, Стивен. «Краткая история вычислительной техники - компьютеры первого поколения» . Проверено 21 ноября 2015 года .
  22. ^ «Знак Гарвардского университета - перфоратор для бумажной ленты» . Музей истории компьютеров . Проверено 21 ноября 2015 года .
  23. ^ "В чем разница между архитектурой фон Неймана и архитектурой Гарварда?" . ARM . Проверено 22 ноября 2015 года .
  24. ^ «Расширенная архитектура оптимизирует процессор Atmel AVR» . Атмель . Проверено 22 ноября 2015 года .
  25. ^ «Переключатели, транзисторы и реле» . BBC. Архивировано из оригинала на 5 декабря 2016 года.
  26. ^ «Введение в вакуумный транзистор: устройство, сделанное из ничего» . IEEE Spectrum . 2014-06-23 . Проверено 27 января 2019 .
  27. ^ Что такое производительность компьютера? . Издательство национальных академий. 2011. DOI : 10,17226 / 12980 . ISBN 978-0-309-15951-7. Проверено 16 мая, 2016 .
  28. ^ "1953: Появляются транзисторные компьютеры" . Музей истории компьютеров . Проверено 3 июня 2016 года .
  29. ^ "IBM System / 360 Даты и характеристики" . IBM. 2003-01-23.
  30. ^ a b Амдал, GM ; Blaauw, GA ; Брукс, Ф. П. младший (апрель 1964 г.). «Архитектура IBM System / 360». Журнал исследований и разработок IBM . IBM . 8 (2): 87–101. DOI : 10.1147 / rd.82.0087 . ISSN 0018-8646 . 
  31. ^ Бродкин, Джон. «50 лет назад IBM создала мэйнфрейм, который помогал отправлять людей на Луну» . Ars Technica . Проверено 9 апреля +2016 .
  32. ^ Кларк, Гэвин. «Почему ты не умрешь? IBM S / 360 и его наследие в 50 лет» . Реестр . Проверено 9 апреля +2016 .
  33. ^ «Онлайн-домашняя страница PDP-8, запустите PDP-8» . PDP8 . Проверено 25 сентября 2015 года .
  34. ^ «Транзисторы, реле и управление сильноточными нагрузками» . Нью-Йоркский университет . Физические вычисления ИТП . Проверено 9 апреля +2016 .
  35. ^ Лилли, Пол (2009-04-14). «Краткая история процессоров: 31 замечательный год x86» . PC Gamer . Проверено 15 июня, 2016 .
  36. ^ a b Паттерсон, Дэвид А .; Хеннесси, Джон Л .; Ларус, Джеймс Р. (1999). Компьютерная организация и дизайн: аппаратно-программный интерфейс (2-е изд., 3-е изд.). Сан-Франциско: Кауфманн. п. 751 . ISBN 978-1558604285.
  37. ^ «1962: Аэрокосмические системы - первые приложения для ИС в компьютерах» . Музей истории компьютеров . Проверено 9 октября 2018 года .
  38. ^ «Интегральные схемы в программе пилотируемой посадки на Луну Аполлона» . Национальное управление по аэронавтике и исследованию космического пространства . Проверено 9 октября 2018 года .
  39. ^ "Система / 370 Объявление" . Архивы IBM . 2003-01-23 . Проверено 25 октября 2017 года .
  40. ^ "Система / 370 Модель 155 (Продолжение)" . Архивы IBM . 2003-01-23 . Проверено 25 октября 2017 года .
  41. ^ «Модели и опции» . Корпорация цифрового оборудования PDP-8 . Проверено 15 июня 2018 года .
  42. ^ a b https://www.computerhistory.org/siliconengine/metal-oxide-semiconductor-mos-transistor-demonstrated/
  43. ^ Московиц, Сэнфорд Л. (2016). Передовые инновации в материалах: управление глобальными технологиями в 21 веке . Джон Вили и сыновья . С. 165–167. ISBN 9780470508923.
  44. ^ Motoyoshi, М. (2009). «Сквозной кремниевый переходник (TSV)». Труды IEEE . 97 (1): 43–48. DOI : 10.1109 / JPROC.2008.2007462 . ISSN 0018-9219 . S2CID 29105721 .  
  45. ^ "Транзисторы поддерживают закон Мура" . EETimes . 12 декабря 2018.
  46. ^ "Кто изобрел транзистор?" . Музей истории компьютеров . 4 декабря 2013 г.
  47. ^ Хиттингер, Уильям К. (1973). «Металло-оксидно-полупроводниковая технология». Scientific American . 229 (2): 48–59. Bibcode : 1973SciAm.229b..48H . DOI : 10.1038 / Scientificamerican0873-48 . ISSN 0036-8733 . JSTOR 24923169 .  
  48. ^ Росс Нокс Бассетт (2007). К эпохе цифровых технологий: исследовательские лаборатории, начинающие компании и рост MOS-технологий . Издательство Университета Джона Хопкинса . стр. 127–128, 256 и 314. ISBN 978-0-8018-6809-2.
  49. ^ а б Кен Ширрифф. «Texas Instruments TMX 1795: первый забытый микропроцессор» .
  50. ^ «Скорость и мощность в логических семьях» ..
  51. ^ TJ Stonham. «Методы цифровой логики: принципы и практика» . 1996. стр. 174.
  52. ^ «1968: технология кремниевого затвора, разработанная для ИС» . Музей истории компьютеров .
  53. ^ RK Booher. «МОС ГП Компьютер» . afips, стр. 877, Труды осенней совместной компьютерной конференции 1968 г., 1968 г. doi : 10.1109 / AFIPS.1968.126
  54. ^ «Описание модуля LSI-11» (PDF) . ЛСИ-11, ПДП-11/03 руководство пользователя (2-е изд.). Мейнард, Массачусетс: Digital Equipment Corporation . Ноябрь 1975. С. 4–3.
  55. ^ «1971: микропроцессор объединяет функцию процессора на одном чипе» . Музей истории компьютеров .
  56. Маргарет Роуз (27 марта 2007 г.). «Определение: многоядерный процессор» . TechTarget . Проверено 6 марта 2013 года .
  57. ^ Ричард Биркби. «Краткая история микропроцессора» . computermuseum.li . Архивировано из оригинального 23 сентября 2015 года . Проверено 13 октября 2015 года .
  58. ^ Осборн, Адам (1980). Введение в микрокомпьютеры . Том 1: Основные понятия (2-е изд.). Беркли, Калифорния: Осборн-Макгроу Хилл. ISBN 978-0-931988-34-9. |volume= has extra text (help)
  59. ^ Жислина, Виктория (2014-02-19). "Почему перестала расти частота процессора?" . Intel . Проверено 14 октября 2015 года .
  60. ^ "МОП-транзистор - электротехника и информатика" (PDF) . Калифорнийский университет . Проверено 14 октября 2015 года .
  61. ^ Simonite, Том. "Закон Мура мертв. Что теперь?" . Обзор технологий Массачусетского технологического института . Проверено 24 августа 2018 .
  62. ^ «Выдержки из разговора с Гордоном Муром: закон Мура» (PDF) . Intel. 2005. Архивировано из оригинального (PDF) 29.10.2012 . Проверено 25 июля 2012 . Cite journal requires |journal= (help)
  63. ^ "Подробная история процессора" . Технический наркоман. 15 декабря 2016 г.
  64. ^ Эйгенманн, Рудольф; Лилия, Дэвид (1998). "Компьютеры фон Неймана". Энциклопедия электротехники и электроники Wiley . DOI : 10.1002 / 047134608X.W1704 . ISBN 047134608X. S2CID  8197337 .
  65. ^ Aspray, Уильям (сентябрь 1990). «Сохраненная программная концепция». IEEE Spectrum . Vol. 27 нет. 9. дои : 10,1109 / 6,58457 .
  66. Сарасват, Кришна. «Тенденции в технологии интегральных схем» (PDF) . Проверено 15 июня 2018 года .
  67. ^ «Электромиграция» . Ближневосточный технический университет . Проверено 15 июня 2018 года .
  68. Ян Винанд (3 сентября 2013 г.). «Информатика снизу вверх, Глава 3. Компьютерная архитектура» (PDF) . bottomupcs.com . Проверено 7 января 2015 года .
  69. ^ «Введение в блок управления и его конструкция» . GeeksforGeeks . 2018-09-24 . Проверено 12 января 20 .
  70. Корнелис Ван Беркель; Патрик Меувиссен (12 января 2006 г.). «Блок генерации адреса для процессора (патентная заявка US 2006010255 A1)» . google.com . Проверено 8 декабря 2014 года .[ требуется проверка ]
  71. Габриэль Торрес (12 сентября 2007 г.). «Как работает кэш-память» .[ требуется проверка ]
  72. ^ Некоторые специализированные процессоры, ускорители или микроконтроллеры не имеют кеша. Чтобы быть быстрыми, при необходимости / желании у них все еще есть блокнотная память на кристалле, которая выполняет аналогичную функцию, а управляется программным обеспечением. Например, в микроконтроллерах может быть лучше для использования в режиме жесткого реального времени, иметь такой кеш или, по крайней мере, не иметь кеша, поскольку с одним уровнем памяти задержки нагрузки предсказуемы. [ требуется проверка ]
  73. ^ «IBM z13 и IBM z13s Техническое введение» (PDF) . IBM . Март 2016. с. 20. [ требуется проверка ]
  74. ^ Браун, Джеффри (2005). «Дизайн ЦП, адаптированный к конкретным приложениям» . IBM developerWorks . Проверено 17 декабря 2005 .
  75. ^ Гарсайд, JD; Furber, SB; Чанг, Ш. (1999). «Раскрытый АМУЛЕТ3» . Департамент компьютерных наук Манчестерского университета . Архивировано из оригинала на 10 декабря 2005 года . Cite journal requires |journal= (help)
  76. ^ "Функциональные характеристики IBM System / 360 Model 65" (PDF) . IBM . Сентябрь 1968. С. 8–9. A22-6884-3.
  77. ^ Хюинь, Джек (2003). «Процессор AMD Athlon XP с кэш-памятью второго уровня 512 КБ» (PDF) . Университет Иллинойса, Урбана-Шампейн. С. 6–11. Архивировано из оригинального (PDF) 28 ноября 2007 года . Проверено 6 октября 2007 .
  78. ^ Готтлиб, Аллан; Алмаси, Джордж С. (1989). Высокопараллельные вычисления . Редвуд-Сити, Калифорния: Бенджамин / Каммингс. ISBN 978-0-8053-0177-9.
  79. Перейти ↑ Flynn, MJ (сентябрь 1972 г.). «Некоторые компьютерные организации и их эффективность». IEEE Trans. Comput. С-21 (9): 948–960. DOI : 10.1109 / TC.1972.5009071 . S2CID 18573685 .  
  80. ^ Лу, Н.-П .; Чанг, К.-П. (1998). «Использование параллелизма в суперскалярной многопроцессорной обработке». IEE Proceedings - Компьютеры и цифровые методы . Институт инженеров-электриков. 145 (4): 255. DOI : 10.1049 / ip-cdt: 19981955 .
  81. ^ Анджум, Бушра; Перрос, Гарри Г. (2015). «1: Разделение бюджета сквозного QoS на домены» . Распределение полосы пропускания для видео при ограничениях качества обслуживания . Серия Focus. Джон Вили и сыновья. п. 3. ISBN 9781848217461. Проверено 21 сентября 2016 . [...] в облачных вычислениях, где несколько программных компонентов работают в виртуальной среде на одном блейд-сервере, по одному компоненту на виртуальную машину (ВМ). Каждой виртуальной машине выделяется виртуальный центральный процессор [...], который является частью центрального процессора блейд-сервера.
  82. ^ Файфилд, Том; Флеминг, Дайан; Нежная, Энн; Хохштейн, Лорин; Пру, Джонатан; Тэйвз, Эверетт; Топджян, Джо (2014). «Глоссарий» . Руководство по эксплуатации OpenStack . Пекин: O'Reilly Media, Inc., стр. 286. ISBN. 9781491906309. Проверено 20 сентября 2016 . Виртуальный центральный процессор (vCPU) [:] Подразделяет физические процессоры. Затем экземпляры могут использовать эти подразделения.
  83. ^ «Обзор архитектуры инфраструктуры VMware - Белая книга» (PDF) . VMware . VMware. 2006 г.
  84. ^ "Частота процессора" . Глоссарий CPU World . CPU World. 25 марта 2008 . Проверено 1 января 2010 года .
  85. ^ "Что такое (а) многоядерный процессор?" . Определения центров обработки данных . SearchDataCenter.com . Проверено 8 августа +2016 .
  86. ^ "Четырехъядерный против двухъядерного" .
  87. ^ Тегтмайер, Мартин. «Объяснение использования ЦП в многопоточных архитектурах» . Oracle . Проверено 29 сентября 2015 года .

Внешние ссылки [ править ]

  • Как работают микропроцессоры в HowStuffWorks .
  • 25 микрочипов, потрясших мир - статья Института инженеров по электротехнике и радиоэлектронике .