Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Нижняя сторона Intel 80486DX2 , показывая его контакты
По состоянию на февраль 2021 года Core i9-10900K является самым быстрым процессором Intel для настольных ПК.

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

В компьютерной индустрии термин «центральный процессор» использовался еще в 1955 году. [2] [3]

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

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

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

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

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

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

Ранние компьютеры, такие как ENIAC, приходилось физически перестраивать для выполнения различных задач, из-за чего эти машины называли «компьютерами с фиксированной программой». [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, выходили из строя очень редко. [3] В конце концов, ламповые ЦП стали доминирующими, потому что существенные преимущества в скорости обычно перевешивали проблемы надежности. Большинство этих ранних синхронных процессоров работали на низких тактовых частотах.по сравнению с современными микроэлектронными конструкциями. Частоты тактового сигнала в диапазоне от 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] МОП-транзистор позволил создаватьинтегральные схемы высокой плотности . [46] [47]

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

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

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

После выполнения инструкции весь процесс повторяется, при этом следующий цикл инструкции обычно выбирает следующую команду из-за увеличенного значения в счетчике программ . Если была выполнена инструкция перехода, счетчик программы будет изменен, чтобы содержать адрес инструкции, к которой был выполнен переход, и выполнение программы продолжается в обычном режиме. В более сложных CPU несколько инструкций могут быть извлечены, декодированы и выполнены одновременно. В этом разделе описывается то, что обычно называют « классическим конвейером 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]Увеличение количества ядер в процессоре (т. Е. Двухъядерных, четырехъядерных и т. Д.) Увеличивает нагрузку, с которой можно справиться. Это означает, что процессор теперь может обрабатывать многочисленные асинхронные события, прерывания и т. Д., Которые могут сказываться на ЦП при его перегрузке. Эти ядра можно рассматривать как разные этажи на перерабатывающем предприятии, где каждый этаж выполняет свою задачу. Иногда эти ядра будут обрабатывать те же задачи, что и соседние с ними ядра, если одного ядра недостаточно для обработки информации.

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

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

  • Режим адресации
  • Ускоренный процессор 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. ^ Kuck, Дэвид (1978). Компьютеры и вычисления, Том 1 . John Wiley & Sons, Inc. стр. 12. ISBN 978-0471027164.
  2. ^ Вейк, Мартин Х. (1955). «Обзор отечественных электронных цифровых вычислительных систем» . Лаборатория баллистических исследований . Цитировать журнал требует |journal=( помощь )
  3. ^ a b Вейк, Мартин Х. (1961). «Третий обзор отечественных электронных цифровых вычислительных систем» . Лаборатория баллистических исследований . Цитировать журнал требует |journal=( помощь )
  4. ^ a b Томас Уилльхальм; Роман Дементьев; Патрик Фэй (18 декабря 2014 г.). «Intel Performance Counter Monitor - лучший способ измерить загрузку процессора» . software.intel.com . Проверено 17 февраля 2015 года .
  5. ^ Liebowitz, Kusek, Шпионы, Мэтт, Кристофер, Rynardt (2014). VMware vSphere Performance: проектирование ЦП, памяти, хранилища и сети для рабочих нагрузок с высокой производительностью . Вайли. п. 68. ISBN 978-1-118-00819-5.CS1 maint: несколько имен: список авторов ( ссылка )
  6. ^ Риган, Джерард (2008). Краткая история вычислительной техники . п. 66. ISBN 978-1848000834. Проверено 26 ноября 2014 года .
  7. ^ «Бит за битом» . Хаверфордский колледж. Архивировано из оригинального 13 октября 2012 года . Проверено 1 августа 2015 года .
  8. ^ «Первый проект отчета по EDVAC» (PDF) . Школа электротехники Мура , Пенсильванский университет . 1945 г. Цитировать журнал требует |journal=( помощь )
  9. ^ Стэнфордский университет. «Современная история вычислительной техники» . Стэнфордская энциклопедия философии . Проверено 25 сентября 2015 года .
  10. ^ "День рождения ENIAC" . MIT Press. 9 февраля 2016 . Проверено 17 октября 2018 года .
  11. ^ Enticknap, Николас (лето 1998), "Computing Золотой Юбилей" , Воскресенский , Компьютер Conservation Society (20), ISSN 0958-7403 , получен 26 июне 2019 
  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. ^ а б Амдал, 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.
  59. ^ Жислина, Виктория (2014-02-19). "Почему перестала расти частота процессора?" . Intel . Проверено 14 октября 2015 года .
  60. ^ "МОП-транзистор - электротехника и информатика" (PDF) . Калифорнийский университет . Проверено 14 октября 2015 года .
  61. ^ Simonite, Том. "Закон Мура мертв. Что теперь?" . MIT Technology Review . Проверено 24 августа 2018 .
  62. ^ «Выдержки из разговора с Гордоном Муром: закон Мура» (PDF) . Intel. 2005. Архивировано из оригинального (PDF) 29.10.2012 . Проверено 25 июля 2012 . Цитировать журнал требует |journal=( помощь )
  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 года . Цитировать журнал требует |journal=( помощь )
  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. ^ "Quad Core против Dual Core" .
  87. ^ Тегтмайер, Мартин. «Объяснение использования ЦП в многопоточных архитектурах» . Oracle . Проверено 29 сентября 2015 года .

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

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