Что такое центральный процессор (CPU, ЦП). Как работает центральный процессор? Какие архитектуры процессоров бывают? Что такое архитектура процессора в смартфоне

Статьи и Лайфхаки

Для многих пользователей более чем достаточно знать о чипсете количество его ядер.

А для тех, кому интересны подробности, мы расскажем, что же такое понятие «архитектура процессора» и какая она бывает в смартфоне или планшете.

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

Формальное определение

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

Как правило, именно по набору команд, точнее, по их количеству и сложности, и осуществляется классификация архитектур.

На сегодняшний день в мобильных устройствах используются процессоры двух основных архитектур :

Первая из них, ARM, относится к так называемому типу RISC (reduced instruction set computer), для которого характерно повышение производительности за счет упрощения команд.

Кроме того, это весьма благотворно сказывается на энергоэффективности .

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


Вторая, x86 относится к другому типу – CISC (complex instruction set computer). В нем используются сложные команды, которые перед выполнением разбиваются на более простые.

Эта архитектура была больше известна по процессорам для ПК и ноутбуков, однако их более современные модели являются CISC совместимыми с RISC ядром. В чистом же виде x86 сохранилась в мобильных SoC Intel Atom.

Кто создает процессоры на основе ARM архитектуры

Если с x86 всё более-менее понятно, то с ARM у неискушенного пользователя возникает вопрос: а кто же ее разрабатывает? Этим занимается компания ARM Limited.

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

Вот только некоторые компании, которые пользуются лицензиями на ее разработки :

  • Qualcomm;
  • MediaTek;
  • Nvidia;
  • Intel;
  • Nintendo;
Знакомые всё лица, не правда ли?

В мобильных чипсетах используется несколько разновидностей ядер Cortex-Ax, где производительность ядра тем выше, чем большее значение x.

Однако ARM Limited не ограничивается только процессорами для смартфонов, поэтому ядра ее разработки на основе архитектуры ARM можно встретить, например, в роутерах или принтерах. Там они имеют другую маркировку – Mx или Rx.

Ядра постоянно обновляются, появляются новые, а использование старых в новых моделях чипсетов прекращается. На момент написания статьи актуальными являлись :

  • Cortex-A15.
  • Cortex-A17.
  • Cortex-A53.
  • Cortex - A57.
  • Cortex-A72.
Следует сказать, что ядра Cortex отличаются между собой не только производительностью, но и энергопотреблением.

А потому, чтобы снизить «прожорливость» чипсета в целом, ARM Limited предложила новую технологию big.LITTLE, сущность которой закодирована в ее названии.


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

А как же x86?


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

Основной проблемой при использовании этой архитектуры в мобильных устройствах является совместимость программного обеспечения.

Тем не менее, смартфоны на основе этого семейства SoC периодически появляются, и даже используют Android, например, ряд моделей ASUS ZenFone 5, появившихся в 2014 году.

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

Современные микропроцессоры сильно отличаются от тех, что разрабатывались в 1950-60-х годах. Например, первоначально процессор разрабатывался для небольшого количества уникальных компьютеров, а порой и вовсе единственного компьютера. Это был довольно дорогостоящий процесс, почему неудивительно, что от него отказались. Сегодня подавляющее большинство процессоров представляют собой серийные универсальные модели, подходящие для большого числа компьютеров.

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

SoC-процессоры

Большинство современных процессоров так или иначе основаны на принципах, заложенных еще в 1940-х годах американо-венгерским ученым Джоном фон Нейманом, хотя, конечно, они прошли очень длинный путь развития по меркам технологий. Одна из главных на сегодняшний день процессорных архитектур называется SoC, или система на чипе (англ. system on a chip). Это тоже микроконтроллерная архитектура, но еще более плотная. Здесь целый ряд компонентов помещаются на одном полупроводниковом кристалле. Это как бы не процессор, а целый компьютер. Такой подход позволяет упростить и удешевить сборку и процессоров, и целых устройств.

Именно SoC-процессоры используются в подавляющем большинстве современных смартфонов и планшетов. Например, SoC-процессорами являются чипы британской фирмы ARM, на которой работает большинство Android-устройств , а также смартфоны iPhone и планшеты iPad. ARM-процессоры используются и в чипсетах MediaTek , где их число доходит до десяти.

RISC-процессоры

Технология RISC означает упрощенный набор команд (англ. reduced instruction set computer), ее впервые предложили в компании IBM. В основу RISC положена идея максимального повышения быстродействия посредством упрощения инструкций и ограничения их длины. Благодаря этому подходу стало возможным не только повысить тактовую частоту, но и сократить так называемый процессорный конвейер – очередь из команд на выполнение, а также снизить тепловыделение и потребление энергии.

Первые RISC-процессоры были настолько простыми, что не имели даже операций деления и умножения, однако они быстро прижились в мобильных технологиях. На архитектуре RISC основано большинство современных процессоров. Это, во-первых, уже упоминавшиеся процессоры ARM, а также PowerPC, SPARC и многие другие. Популярнейшие процессоры Intel уже много лет основаны на RISC-ядре, начиная с 1990-х годов. Можно сказать, что технология RISC сегодня является доминирующей, хотя у нее существует множество вариантов реализации.

CISC-процессоры

Это более традиционный вид микропроцессоров, которые отличаются от предыдущих полным набором команд, отсюда и название: компьютер с полным набором команд (англ. complex instruction set computer). Такие процессоры не имеют фиксированной длины команды, а самих команд больше. CISC-процессорами были все процессоры архитектуры x86, которая доминирует в компьютерной индустрии уже не одно десятилетие, до появления Intel Pentium Pro, который впервые отошел от CISC-концепции и сегодня представляет собой гибрид – CISC-чипсет на базе RISC-ядра.

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

ARM и x86

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

С другой стороны, семейство x86, разработанное Intel, начиная с легендарного процессора Intel 8086 (откуда и пошло название) образца 1978 года, всегда было уделом компьютеров мощных, «настоящих». Куда уж до них ARM, говорили многие эксперты. Но времена меняются, и сегодня архитектуры ARM и x86 яростно конкурируют друг с другом во всей компьютерной индустрии, которая все больше зависит от мобильных технологий.

Сама компания ARM, в отличие от Intel, не производит процессоры, но лицензирует их сторонним производителям, среди которых практически все гранды: Apple, Samsung, IBM, NVIDIA, Nintendo, Qualcomm и даже, вот так ирония, Intel (и ее вечный конкурент AMD). Такой подход привел к тому, что ARM-процессоры буквально завалили рынок – сегодня их выпускается не один миллиард каждый год.

Поскольку сегодня все больше людей предпочитают планшеты традиционным компьютерам, продажи которых пошли на спад, сложилась ситуация, очень неприятная для Intel и AMD и немыслимая еще лет десять назад. Intel неожиданно оказалась в роли догоняющей и начала активно развивать собственные низковольтные решения, и не сказать, что совсем безуспешно – современные модели Intel Atom и Core M обладают вполне конкурентоспособными характеристиками по ряду параметров.

В новой для себя ситуации оказалось и сообщество разработчиков, которым пришлось быстро адаптироваться под требования рынка. Сначала интернет-революция привела к тому, что пользователи стали гораздо реже работать в традиционных программах на традиционном компьютере и чаще – в веб-браузере. Затем еще одна, мобильная революция породила новую реальность: массовый пользователь вообще отложил компьютеры и перешел на мобильные устройства, где работают в основном в мобильных приложениях. А мобильные приложения – это опять-таки ARM, с которой Intel пока не может совладать.

big.LITTLE

Одной из перспективных технологий ARM является big.LITTLE – технология оптимизации потребления энергии за счет объединения более высокопроизводительных ядер с менее производительными, но более энергоэффективными. Например, это может быть Cortex-A15 и Cortex-A7. Это как бы две передачи на автомобиле: когда нужно выполнить более сложную и ресурсоемкую задачу, включается более мощный чип, а для фоновых задач больше подходит более экономичный. В результате такого подхода последнее поколение платформы big.LITTLE позволяет снизить потребление энергии чипом на 75% и одновременно поднять производительность на 40%.

У big.LITTLE есть свои разновидности. Например, в 2013 году компания MediaTek представила платформу CorePilot на базе big.LITTLE, в которой впервые был реализован принцип разнородной (гетерогенной) множественной обработки данных (HMP). Специальное ПО автоматически распределяет рабочие потоки между разными ядрами исходя из их требований. Осуществляется интерактивное управление потреблением энергии и температурными режимами, а специальный алгоритм планировщика в сочетании с трехкластерной архитектурой позволяет еще больше снизить потребление энергии чипом.

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

Почему кластерные архитектуры эффективнее?

Но тайваньская компания MediaTek – это не только CorePilot. Производитель произвел настоящий фурор со своей трехкластерной технологией Tri-Cluster. Чтобы понять, что это такое и как работает, вспомним, как работает процессор смартфона или планшета в самом общем случае.

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

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

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

Три кластера против двух

Но и здесь возникла проблема: задачи средней сложности, наиболее распространенные на телефонах, часто направляются на кластер с мощными ядрами. Например, мы работаем с электронной почтой. Задача не ахти какая ресурсоемкая, но двухкластерная платформа может включить для нее мощный кластер. У нее просто нет выбора – кластера всего два, а никакой «золотой середины» нет. Результат – ускоренный расход энергии и нагрев устройства при отсутствии очевидных преимуществ для пользователя от быстрого кластера.

Именно эту задачу решает архитектура Tri-Cluster в сочетании с CorePilot 3.0. Она работает не с двумя, а с тремя кластерами, которые в ней получили названия минимум (Min), медиум (Med) и максимум (Max). Для большинства повседневных задач используется средний кластер – та самая золотая середина. Максимальный кластер включается относительно редко и только тогда, когда это действительно нужно: игры, обработка графики и т.д. Ну а сверхэкономичный кластер Min управляет фоновыми приложениями, сводя энергопотребление к минимуму.

Такой подход наиболее сбалансирован с точки зрения производительности и экономии. Мобильное устройство как бы получает третью передачу. В MediaTek даже говорят, что позаимствовали эту идею у автомобильной индустрии. В компании отмечают, что он позволяет сократить энергопотребление на треть и одновременно поднять производительность на 12–15% в зависимости от ресурсоемкости задачи.

Helio X20

Типичный образец технологий Tri-Cluster и CorePilot – новейший 20-нанометровый десятиядерный чип MediaTek Helio X20 на базе ARM Cortex. Кластер Max в нем представлен группой из двух ядер Cortex-A72 с тактовой частотой 2,5 ГГц, в Med работают четыре ядра Cortex-A53 с частотой 2 ГГц, ну а Mini выполнен в виде опять-таки четырех ядер Cortex-A53 на 1,4 ГГц. Helio X20 стал первым в мире мобильным процессором с технологией Tri-Cluster и десятью ядрами (Deca-core).

В MediaTek провели исследование, которое доказывает, что данный чип способен проработать на 30% дольше времени, чем аналоги с сопоставимыми характеристиками. Выполнялись тесты даже для конкретных сценариев. Например, при работе в Facebook удается снизить расход энергии на 17–40%, голосовое общение в Skype позволяет сэкономить 41%, работа Gmail – 41%, игра Temple Run – 17%. Самая впечатляющая экономия достигается в ситуации, когда телефон просто показывает домашний экран – 48%. В этой ситуации работает именно кластер Min, и энергопотребление составляет всего 0,026 Вт.

Если верить тайваньскому ресурсу DigiTimes, производители мобильной техники буквально выстраиваются в очередь за новейшим чипом Helio X20. Летом этого года ресурс писал, что чип планируют использовать , HTC, Sony, Lenovo, Huawei, Xiaomi и ZTE. Новый чип оказался на 40% быстрее и на столько же экономичнее предыдущей модели семейства, X10. Первые устройства с таким процессором появятся на рынке в начале 2016 года, поэтому пока придется запастись терпением.

Возможности трехкластерных SoC-процессоров MediaTek

Процессоры MediaTek относятся к классу SoC, то есть таких, в которых на одной кремниевой пластинке собран целый мини-завод. Тут и память, и графика, и камера с видеокодеками, и контроллеры дисплея, модема и других интерфейсов. Некоторые особенности чипсета выглядят следующим образом:

  • Универсальный модем WorldMode LTE Cat-6 от MediaTek поддерживает LTE и одновременно допускает агрегацию частот, что позволяет использовать его практически в любой сети.
  • Новейший видеочип ARM Mali обеспечивает высочайшую производительность графики в двумерном и трехмерном режимах.
  • Дополнительный встроенный процессор Cortex-M4 работает в фоновом режиме с крайне низким энергопотреблением, обеспечивая работу фоновых приложений.
  • Контроллер двух камер со встроенным 3D-движком не только быстро работает, но и эффективно генерирует сложные объемные изображения, а встроенная технология шумоподавления доводит картинку до практически идеальной.
  • Дисплей может работать с частотой обновления 120 Гц вместо стандартных 60 Гц, что дает изумительно четкое изображение и отзывчивый интерфейс.

Процессор комплектуется новейшим видеочипом ARM Mali-T800, который, помимо прочего, обеспечивает работу дисплеев высокой четкости вплоть до WQXGA на частоте до 120 Гц. Другими словами, устройство можно комплектовать дисплеем разрешением вплоть до 2560×1600 пикселов.

Весьма впечатляет реализация камеры: скорость декодирования получаемого изображения может доходить до 30 кадров в секунду при разрешении 25 мегапикселов (либо 24 к/с при 32 Мп), при этом встроенный чип сразу же, на лету, осуществляет одновременно шумоподавление, повышение четкости и 3D-конверсию. При воспроизведении видео поддерживается 10-битная глубина цвета и кодеки VP9 HW и HEVC.

Встроенный модем Helio X20 поддерживает большой арсенал мобильных сетей, такие как LTE FDD/TDD R11 Cat-6 (до 300 Мбит/с), CDMA2000 1x/EVDO Rev.A. Здесь же есть Wi-Fi 802.11ac, Bluetooth, GPS, российская система навигации ГЛОНАСС и даже китайская BeiDou.

Независимые тесты Helio X20, в частности GeekBench 3, показывают явное превосходство по сравнению с предыдущей и тоже очень популярной моделью X10. В тесте AnTuTu результат X20 на 40% выше, чем у X10, что в целом подтверждает внутренние тесты MediaTek. Helio X20 также явно превосходит чип Exynos 7420.

Helio X20 – процессор очень новый, поставки начались совсем недавно, но уже известны некоторые подробности об устройствах, которые его получат. Так, Acer будет устанавливать его на свой флагманский планшетофон Predator 6. Целых 4 гигабайта оперативной памяти, дисплей Full HD, 4 динамика, аккумулятор на 4000 мА*ч, необычный агрессивный дизайн – не смартфон, а зверь! Другая ожидаемая новинка с этим чипом – новый флагман HTC One A9, в котором незадачливый тайваньский производитель постарается исправить провал модели One M9. 2016 год обещает быть очень интересным.

MediaTek вокруг нас


Мы начинали с того, что микропроцессоры сегодня окружают нас повсюду, как воздух, и продукция MediaTek в полной мере подтверждает этот тезис. Вообще, диапазон интересов тайваньцев поражает: Интернет вещей , нательная электроника, медицинские устройства, навигация, автономные автомобили и вездеходы, умный дом , умный город, дистанционное управление приборами, 3D-печать и даже домашнее виноделие. Вот лишь часть сфер, в которых MediaTek совместно с партнерами выпускает специализированные чипсеты.

Некоторые из них очень оригинальны. Например, энтузиастам всех мастей понравится миниатюрная копия марсохода Curiosity, напичканная очень серьезными технологиями: камерой с собственным Wi-Fi-роутером и сервером для отправки изображения, шестью колесами (все – ведущие), манипулятором с тремя степенями свободы. Таким вездеходом можно управлять по Bluetooth, он может двигаться со скоростью до 3 км/ч, разворачиваться в любом месте и вести видеосъемку с непрерывной трансляцией сигнала.

Другой пример использования процессоров MediaTek – компактный домашний 3D-принтер со скоростью печати 150 мм в секунду при точности 0,01 мм. Такой принтер поддерживает больше 10 различных материалов, может печатать объекты диаметром 180 мм и высотой 200 мм и работать без остановки до 36 часов. Здесь используется микросхема MediaTek LinkIt ONE. Такой принтер очень доступен, легок и помещается на стол.

Еще больше поражает воображение Smart Brewer – целая домашняя система для виноделия. Если при этих словах вы представили себе систему из чанов, с трудом помещающуюся на кухне, то зря: речь идет о компактном стакане с насадкой и трубкой, которая благодаря той же микросхеме LinkIt ONE полностью управляет всем процессом брожения, при этом контролировать процесс можно со смартфона через Bluetooth. Это настоящая винная бочка XXI века!

Многие изобретения, возможные благодаря полупроводниковым решениям MediaTek, еще ждут своих инноваторов и разработчиков. Кстати, MediaTek очень любит разработчиков и старается сотрудничать с ними как можно плотнее. Для этой цели был создан сайт MediaTek Labs (labs.mediatek.com) – онлайн-площадка, на которой начинающие (и не только) разработчики могут получить все необходимое для создания гаджетов в категориях нательной техники и Интернета вещей . Интересные проекты будут поощряться и развиваться совместно с компанией. Менее чем за год существования в Labs зарегистрировалось больше 6000 участников, из которых русскоязычных больше 16%. И это только начало!

Антон Чивчалов

Архитектура процессора

Вопрос: Архитектура процессора - что это?
Ответ : Термин «архитектура процессора» в настоящее время не имеет однозначного толкования. С точки зрения программистов, под архитектурой процессора подразумевается его способность исполнять определенный набор машинных кодов. Большинство современных десктопных CPU относятся к семейству x86, или Intel-совместимых процессоров архитектуры IA32 (архитектура 32-битных процессоров Intel). Ее основа была заложена компанией Intel в процессоре i80386, однако в последующих поколениях процессоров она была дополнена и расширена как самой Intel (введены новые наборы команд MMX, SSE, SSE2 и SSE3), так и сторонними производителями (наборы команд EMMX, 3DNow! и Extended 3DNow!, разработанные компанией AMD). Однако разработчики компьютерного железа вкладывают в понятие «архитектура процессора» (иногда, чтобы окончательно не запутаться, используется термин «микроархитектура») несколько иной смысл. С их точки зрения, архитектура процессора отражает основные принципы внутренней организации конкретных семейств процессоров. Например, архитектура процессоров Intel Pentium обозначалась как Р5, процессоров Pentium II и Pentium III - Р6, а популярные в недавнем прошлом Pentium 4 относились к архитектуре NetBurst. После того, как компания Intel закрыла архитектуру Р5 для сторонних производителей, ее основной конкурент - компания AMD была вынуждена разработать собственную архитектуру - К7 для процессоров Athlon и Athlon XP, и К8 для Athlon 64.

Вопрос: Какие процессоры лучше, 64-битные или 32-битные? И почему?
Ответ : Достаточно удачное 64-битное расширение классической 32-битной архитектуры IA32 было предложено в 2002 году компанией AMD (первоначально называлось x86-64, сейчас - AMD64) в процессорах семейства К8. Спустя некоторое время компанией Intel было предложено собственное обозначение - EM64T (Extended Memory 64-bit Technology). Но, независимо от названия, суть новой архитектуры одна и та же: разрядность основных внутренних регистров 64-битных процессоров удвоилась (с 32 до 64 бит), а 32-битные команды x86-кода получили 64-битные аналоги. Кроме того, за счет расширения разрядности шины адресов объем адресуемой процессором памяти существенно увеличился.

И… все. Так что те, кто ожидает от 64-битных CPU сколь-нибудь существенного прироста производительности, будут разочарованы - их производительность в подавляющем большинстве современных приложений (которые в массе своей заточены под IA32 и вряд ли в обозримом будущем будут перекомпилированы под AMD64/EM64T) практически та же, что и у старых добрых 32-битных процессоров. Весь потенциал 64-битной архитектуры может раскрыться лишь в отдаленном будущем, когда в массовых количествах появятся (а может, и не появятся) приложения, оптимизированные под новую архитектуру. В любом случае, наиболее эффективен переход на 64-бита будет для программ, работающих с базами данных, программ класса CAD/CAE, а также программ для работы с цифровым контентом.

Вопрос: Что такое процессорное ядро?
Ответ : В рамках одной и той же архитектуры различные процессоры могут достаточно сильно отличаться друг от друга. И различия эти воплощаются в разнообразных процессорных ядрах, обладающих определенным набором строго обусловленных характеристик. Чаще всего эти отличия воплощаются в различных частотах системной шины (FSB), размерах кэша второго уровня, поддержке тех или иных новых систем команд или технологических процессах, по которым изготавливаются процессоры. Нередко смена ядра в одном и том же семействе процессоров влечет за собой замену процессорного разъема, из чего вытекают вопросы дальнейшей совместимости материнских плат. Однако в процессе совершенствования ядра, производителям приходится вносить в него незначительные изменения, которые не могут претендовать на «имя собственное». Такие изменения называются ревизиями ядра и, чаще всего, обозначаются цифробуквенными комбинациями. Однако в новых ревизиях одного и того же ядра могут встречаться достаточно заметные нововведения. Так, компания Intel ввела поддержку 64-битной архитектуры EM64T в отдельные процессоры семейства Pentium 4 именно в процессе изменения ревизии.

Вопрос: В чем заключается преимущество двухъядерных процессоров перед одноядерными?
Ответ : Самым значимым событием 2005 года стало появление двухъядерных процессоров. К этому времени классические одноядерные CPU практически полностью исчерпали резервы роста производительности за счет повышения рабочей частоты. Камнем преткновения стало не только слишком высокое тепловыделение процессоров, работающих на высоких частотах, но и проблемы с их стабильностью. Так что экстенсивный путь развития процессоров на ближайшие годы был заказан, и их производителям волей-неволей пришлось осваивать новый, интенсивный путь повышения производительности продукции. Самой расторопной на рынке десктопных CPU, как всегда, оказалась Intel, первой анонсировавшая двухъядерные процессоры Intel Pentium D и Intel Extreme Edition. Впрочем, AMD с Athlon64 X2 отстала от конкурента буквально на считанные дни. Несомненным достоинством двухъядерников первого поколения, к которым относятся вышеназванные процессоры, является их полная совместимость с существующими системными платами (естественно, достаточно современными, на которых придется только обновить BIOS). Второе поколение двухъядерных процессоров, в частности, Intel Core 2 Duo, «требует» специально разработанных для них чипсетов и со старыми материнскими платами не работает.

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

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

Вопрос: Что такое кэш?
Ответ : Во всех современных процессорах имеется кэш (по-английски - cache) - массив сверхскоростной оперативной памяти, являющейся буфером между контроллером сравнительно медленной системной памяти и процессором. В этом буфере хранятся блоки данных, с которыми CPU работает в текущий момент, благодаря чему существенно уменьшается количество обращений процессора к чрезвычайно медленной (по сравнению со скоростью работы процессора) системной памяти. Тем самым заметно увеличивается общая производительность процессора.

При этом в современных процессорах кэш давно не является единым массивом памяти, как раньше, а разделен на несколько уровней. Наиболее быстрый, но относительно небольшой по объему кэш первого уровня (обозначаемый как L1), с которым работает ядро процессора, чаще всего делится на две половины - кэш инструкций и кэш данных. С кэшем L1 взаимодействует кэш второго уровня - L2, который, как правило, гораздо больше по объему и является смешанным, без разделения на кэш команд и кэш данных. Некоторые десктопные процессоры, по примеру серверных процессоров, также порой обзаводятся кэшем третьего уровня L3. Кэш L3 обычно еще больше по размеру, хотя и несколько медленнее, чем L2 (за счет того, что шина между L2 и L3 более узкая, чем шина между L1 и L2), однако его скорость, в любом случае, несоизмеримо выше, чем скорость системной памяти.

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

Вопрос: Что такое процессорная шина?
Ответ : Процессорная (иначе - системная) шина, которую чаще всего называют FSB (Front Side Bus), представляет собой совокупность сигнальных линий, объединенных по своему назначению (данные, адреса, управление), которые имеют определенные электрические характеристики и протоколы передачи информации. Таким образом, FSB выступает в качестве магистрального канала между процессором (или процессорами) и всеми остальными устройствами в компьютере: памятью, видеокартой, жестким диском и так далее. Непосредственно к системной шине подключен только CPU, остальные устройства подсоединяются к ней через специальные контроллеры, сосредоточенные в основном в северном мосте набора системной логики (чипсета) материнской платы. Хотя могут быть и исключения - так, в процессорах AMD семейства К8 контроллер памяти интегрирован непосредственно в процессор, обеспечивая, тем самым, гораздо более эффективный интерфейс память-CPU, чем решения от Intel, сохраняющие верность классическим канонам организации внешнего интерфейса процессора. Основные параметры FSB некоторых процессоров приведены в табл

Процессор частота FSB, МГц Тип FSB Теоретическая пропускная способность FSB, Мб/с
Intel Pentium III 100/133 AGTL+ 800/1066
Intel Pentium 4 100/133/200 QPB 3200/4266/6400
Intel Pentium D 133/200 QPB 4266/6400
Intel Pentium 4 EE 200/266 QPB 6400/8533
Intel Core 133/166 QPB 4266/5333
Intel Core 2 200/266 QPB 6400/8533
AMD Athlon 100/133 EV6 1600/2133
AMD Athlon XP 133/166/200 EV6 2133/2666/3200
AMD Sempron HyperTransport <6400
AMD Athlon 64 800/1000 HyperTransport 6400/8000

Процессоры компании Intel используют системную шину QPB (Quad Pumped Bus), передающую данные четыре раза за такт, тогда как системная шина EV6 процессоров AMD Athlon и Athlon XP передает данные два раза за такт (Double Data Rate). В архитектуре AMD64, используемой компанией AMD в процессорах линеек Athlon 64/FX/Opteron, применен новый подход к организации интерфейса CPU - здесь вместо процессорной шины FSB и для сообщения с другими процессорами используются: высокоскоростная последовательная (пакетная) шина HyperTransport, построенная по схеме Peer-to-Peer (точка-точка), обеспечивающая высокую скорость обмена данными при сравнительно низкой латентности.

И наконец-то конкретика!

Процессы первого поколения этого семейства (Intel Pentium III 450 и Intel Pentium III 500) были анонсированы Intel в конце февраля 1999 года и имели следующие характеристики:

· технология производства: 0,25 мкм;

· ядро процессора: Katmai, разработанное на основе Deschutes (поздняя версия ядра процессоров Intel Pentium II) с добавленным SSE-конвейером для обработки 70 новых SSE-инструкций;

· L1-кэш: объем - 32 Кбайт (16 Кбайт для данных плюс 16 Кбайт для инструкций);

· L2-кэш: объем - 512 Кбайт, тактовая частота - половина тактовой частоты ядра, внешний (не интегрирован на одном кристалле с процессором, а выполнен на отдельных микросхемах, которые расположены на той же печатной плате, что и микросхема процессора), поддерживает ECC-механизм обнаружения и коррекции ошибок при обмене данными с ядром процессора; в терминологии Intel такой L2-кэш называют Discrete Cache;

· частота системной шины: 100 МГц, поддерживается ECC;

· напряжение питания ядра процессора: 2,0 В;

· многопроцессорность: поддерживается до двух процессоров на одной системной шине;

· идентификация: каждый процессор имеет уникальный 96-битный серийный номер, «прошитый» в нем во время изготовления, который может быть считан программными средствами;

· в случае нежелания пользователя «разглашать» серийный номер своего процессора возможность считывания его серийного номера может быть заблокирована на уровне BIOS с помощью программы настройки BIOS материнской платы или же утилиты Processor Serial Number Control Utility физический разъем: Slot 1;

· исполнение: S.E.C.C.- или S.E.C.C.2-картридж.

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

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

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

Также, немаловажным фактором является размещение кэш-памяти. Размещена она, на самом кристалле процессора, что значительно уменьшает время доступа к ней. Ранее, кэш память некоторых уровней, размещалась за пределами кристалла процессора, на специальной микросхеме SRAM где-то на просторах материнской платы. Сейчас же, практически у всех процессоров, кэш-память размещена на кристалле процессора.

Как уже упоминалось выше, главное назначение кэш-памяти - это хранение данных, которые часто используются процессором. Кэш является буфером, в который загружаются данные, и, несмотря на его небольшой объём, (около 4-16 Мбайт) в современных процессорах, он дает значительный прирост производительности в любых приложениях.

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

Есть такие элементы, которые размещены на столе бухгалтера, к которым он обращается в течение часа по несколько раз. Например, это могут быть номера телефонов, какие-то примеры документов. Данные виды информации находятся прямо на столе, что, в свою очередь, увеличивает скорость доступа к ним.

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

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

Современные процессоры, оснащены кэшем, который состоит, зачастую из 2 -ух или 3-ёх уровней. Конечно же, бывают и исключения, но зачастую это именно так.

В общем, могут быть такие уровни: L1 (первый уровень), L2 (второй уровень), L3 (третий уровень). Теперь немного подробнее по каждому из них:

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

Мы будем рассматривать объёмы на процессоре высокого уровня производительности Intel Core i7-3770K. Данный процессор оснащен 4х32 Кб кэш-памяти первого уровня 4 x 32 КБ = 128 Кб. (на каждое ядро по 32 КБ)

2. Кэш второго уровня (L2) - второй уровень более масштабный, нежели первый, но в результате, обладает меньшими «скоростными характеристиками». Соответственно, служит буфером между уровнем L1 и L3. Если обратиться снова к нашему примеру Core i7-3770 K, то здесь объём кэш-памяти L2 составляет 4х256 Кб = 1 Мб.

3. Кэш третьего уровня (L3) - третий уровень, опять же, более медленный, нежели два предыдущих. Но всё равно он гораздо быстрее, нежели оперативная память. Объём кэша L3 в i7-3770K составляет 8 Мбайт. Если два предыдущих уровня разделяются на каждое ядро, то данный уровень является общим для всего процессора. Показатель довольно солидный, но не заоблачный. Так как, к примеру, у процессоров Extreme-серии по типу i7-3960X, он равен 15Мб, а у некоторых новых процессоров Xeon, более 20.

Рассмотрим CISK и RISK архитектуру.

CISC -- концепция проектирования процессоров, которая характеризуется следующим набором свойств:

Нефиксированное значение длины команды;

Арифметические действия кодируются в одной команде;

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

Типичными представителями являются процессоры на основе команд x86 (исключая современные Intel Pentium 4, Pentium D, Core, AMD Athlon, Phenom, которые являются гибридными) и процессоры Motorola MC680x0.

Наиболее распространённая архитектура современных настольных, серверных и мобильных процессоров построена по архитектуре Intel x86 (или х86-64 в случае 64-разрядных процессоров). Формально, все х86-процессоры являлись CISC-процессорами, однако новые процессоры, начиная с Intel Pentium Pro, являются CISC-процессорами с RISC-ядром. Они непосредственно перед исполнением преобразуют CISC-инструкции процессоров x86 в более простой набор внутренних инструкций RISC.

В микропроцессор встраивается аппаратный транслятор, превращающий команды x86 в команды внутреннего RISC-процессора. При этом одна команда x86 может порождать несколько RISC-команд (в случае процессоров типа P6 -- до четырёх RISC-команд в большинстве случаев). Исполнение команд происходит на суперскалярном конвейере одновременно по несколько штук.

Это потребовалось для увеличения скорости обработки CISC-команд, так как известно, что любой CISC-процессор уступает RISC-процессорам по количеству выполняемых операций в секунду. В итоге, такой подход и позволил поднять производительность CPU.

Недостатки CISK архитектуры:

Высокая стоимость аппаратной части;

Сложности с распараллеливанием вычислений.

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

В рабочих станциях, серверах среднего звена и персональных компьютерах используются процессоры с CISC. Наиболее распространенная архитектура команд процессоров мобильных уcтройств - SOC и мэйнфреймов - RISC. В микроконтроллерах различных устройств RISC используется в подавляющем большинстве случаев.

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

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

Характерные особенности RISK процессоров:

Фиксированная длина машинных инструкций (например, 32 бита) и простой формат команды.

Специализированные команды для операций с памятью -- чтения или записи. Операции вида «прочитать-изменить-записать» отсутствуют. Любые операции «изменить» выполняются только над содержимым регистров (т. н. архитектура load-and-store).

Большое количество регистров общего назначения (32 и более).

Отсутствие поддержки операций вида «изменить» над укороченными типами данных -- байт, 16-битное слово. Так, например, система команд DEC Alpha содержала только операции над 64-битными словами, и требовала разработки и последующего вызова процедур для выполнения операций над байтами, 16- и 32-битными словами.

Отсутствие микропрограмм внутри самого процессора. То, что в CISC-процессоре исполняется микропрограммами, в RISC-процессоре исполняется как обыкновенный (хотя и помещённый в специальное хранилище) машинный код, не отличающийся принципиально от кода ядра ОС и приложений. Так, например, обработка отказов страниц в DEC Alpha и интерпретация таблиц страниц содержалась в так называемом PALCode (Privileged Architecture Library), помещённом в ПЗУ. Заменой PALCode можно было превратить процессор Alpha из 64-битного в 32-битный, а также изменить порядок байтов в слове и формат входов таблиц страниц виртуальной памяти.

Рассмотрим конвейеры.

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

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

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

Считается, что впервые конвейерные вычисления были использованы либо в проекте ILLIAC II (англ. en:ILLIAC II), либо в проекте IBM Stretch (англ. en:IBM Stretch). Проект IBM Stretch предложил термины «получение» (англ. «Fetch»), «расшифровка» (англ. «Decode») и «выполнение» (англ. «Execute»), которые затем стали общеупотребимыми.

Многие современные процессоры управляются тактовым генератором. Процессор внутри состоит из логических элементов и ячеек памяти -- триггеров. Когда приходит сигнал от тактового генератора, триггеры приобретают своё новое значение и логике требуется некоторое время для декодирования новых значений. Затем приходит следующий сигнал от тактового генератора, триггеры принимают новые значения, и так далее.

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

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

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

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

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

Преимущества и недостатки.

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

Преимущества:

Время цикла процессора уменьшается, таким образом увеличивая скорость обработки инструкций в большинстве случаев.

Некоторые комбинационные логические элементы, такие как сумматоры (англ. adders) или умножители (англ. multipliers) могут быть ускорены путем увеличения количества логических элементов. Использование конвейера может предотвратить ненужное наращивание количества элементов.

Недостатки:

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

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

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

центральный графический процессор производитель

Технический университет Молдовы

РЕФЕРАТ ПО ПРОГРАММИРОВАНИЮ

ТЕМА: Память и архитектура процессора

Факультет CIM

Группа С - 092

Подготовил Плис Владимир.

Кишинёв 1999 г.

План:

Введение.

1) Историческая ретроспектива.

2) Архитектурное развитие.

3) Процесс производства.

4) Программная совместимость.

5) Обзор процессоров.

Будущие разработки Intel.

Процессор, или более полно микропроцессор, а также часто называемый ЦПУ (CPU - central processing unit) является центральным компонентом компьютера. Это разум, который управляет, прямо или косвенно, всем происходящим внутри компьютера.

Когда фон Нейман впервые предложил хранить последовательность инструкций, так называемые программы, в той же памяти, что и данные, это была поистине новаторская идея. Опубликована она в "First Draft of a Report on the EDVAC" в 1945 году. Этот отчет описывал компьютер состоящим из четырех основных частей: центрального арифметического устройства, центрального управляющего устройства, памяти и средств ввода-вывода.

Сегодня, более полувека спустя, почти все процессоры имеют фон-неймановскую архитектуру.

Историческая ретроспектива

Как известно, все процессоры персональных компьютеров основаны на оригинальном дизайне Intel. Первым применяемым в PC процессором был интеловский чип 8088. В это время Intel располагал выпущенным ранее более мощным процессором 8086. 8088 был выбран по соображениям экономии: его 8-битная шина данных допускала более дешевые системные платы, чем 16-битная у 8086. Также во время проектирования первых PC большинство доступных интерфейсных микросхем использовали 8-битный дизайн. Те первые процессоры даже не приближаются к мощи, достаточной для запуска современных приложений.

В таблице ниже приведены основные группы интеловских процессоров от первой генерации 8088/86 до шестого поколения Pentium Pro и Pentium II:

Тип/
Поколение

Дата

Ширина шины данных/
адреса

Внутренний кэш

Скорость шины памяти
(MHz)

Внутренняя частота
(MHz)

8088/ First 1979 8/20 bit None 4.77-8 4.77-8
8086/ First 1978 16/20 bit None 4.77-8 4.77-8
80286/ Second 1982 16/24 bit None 6-20 6-20
80386DX/ Third 1985 32/32 bit None 16-33 16-33
80386SX/ Third 1988 16/32 bit 8K 16-33 16-33
80486DX/ Fourth 1989 32/32 bit 8K 25-50 25-50
80486SX/ Fourth 1989 32/32 bit 8K 25-50 25-50
80486DX2/ Fourth 1992 32/32 bit 8K 25-40 50-80
80486DX4/ Fourth 1994 32/32 bit 8K+8K 25-40 75-120
Pentium/ Fifth 1993 64/32 bit 8K+8K 60-66 60-200
MMX/ Fifth 1997 64/32 bit 16K+16K 66 166-233
Pentium Pro/ Sixth 1995 64/36 bit 8K+8K 66 150-200
Pentium II/ Sixth 1997 64/36 bit 16K+16K 66 233-300

Третье поколение процессоров, основанных на Intel 80386SX и 80386DX, были первыми применяемыми в PC 32-битными процессорами. Основным отличием между ними было то, что 386SX был 32-разрядным только внутри, поскольку он общался с внешним миром по 16-разрядной шине. Это значит, что данные между процессором и остальным компьютером перемещались на вполовину меньшей скорости, чем у 486DX.

Четвертая генерация процессоров была также 32-разрядной. Однако все они предлагали ряд усовершенствований. Во-первых, был полностью пересмотрен весь дизайн 486 поколения, что само по себе удвоило скорость. Во-вторых, все они имели 8kb внутреннего кэша, прямо у процессорной логики. Такое кэширование передачи данных от основной памяти значило, что среднее ожидание процессора запросов к памяти на системной плате сократилось до 4%, поскольку, как правило, необходимая информация уже находилась в кэше.

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

Важной инновацией было удвоение частоты, введенное в 486DX2. Это значит что внутри процессор работает на удвоенной по отношению ко внешней электронике скоростью. Данные между процессором, внутренним кэшем и сопроцессором передаются на удвоенной скорости, приводя к сравнимой прибавке в производительности. 486DX4 развил эту технологию дальше, утраивая частоту до внутренних 75 или 100MHz, а также удвоив объем первичного кэша до 16kb.

Pentium, определив пятое поколение процессоров, значительно превзошел в производительности предшествующие 486 чипы благодаря нескольким архитектурным изменениям, включая удвоение ширины шины до 64 бит. P55C MMX сделал дальнейшие значительные усовершенствования, удвоив размер первичного кэша и расширив набор инструкций оптимизированными для мультимедиа приложений операциями.

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

Следующий новый чип после Pentium Pro Intel представил спустя почти полтора года - появился Pentium II, давший очень большой эволюционный шаг от Pentium Pro. Это распалило спекуляции, что одна из основных целей Intel в производстве Pentium II был уход от трудностей в изготовлении дорогого интегрированного кэша второго уровня в Pentium Pro. Архитектурно Pentium II не очень отличается от Pentium Pro с подобным эмулирующим x86 ядром и большинством схожих особенностей.

Pentium II улучшил архитектуру Pentium Pro удвоением размера первичного кэша до 32kb, использованием специального кэша для увеличения эффективности 16-битной обработки, (Pentium Pro оптимизирован для 32-битных приложений, а с 16-битным кодом не обращается столь же хорошо) и увеличением размеров буферов записи. Однако о основной темой разговоров вокруг новых Pentium II была его компоновка. Интегрированный в Pentium Pro вторичный кэш, работающий на полной частоте процессора, был заменен в Pentium II на малую схему, содержащую процессор и 512kb вторичного кэша, работающего на половине частоты процессора. Собранные вместе, они заключены в специальный одностороний картридж (single-edge cartridge - SEC), предназначенный для вставления в 242-пиновый разъем (Socket 8) на нового стиля системных платах Pentium II.

Основная структура

Основные функциональные компоненты процессора

  • Ядро: Сердце современного процессора - исполняющий модуль. Pentium имеет два параллельных целочисленных потока, позволяющих читать, интерпретировать, выполнять и отправлять две инструкции одновременно.
  • Предсказатель ветвлений: Модуль предсказания ветвлений пытается угадать, какая последовательность будет выполняться каждый раз когда программа содержит условный переход, так чтобы устройства предварительной выборки и декодирования получали бы инструкции готовыми предварительно.
  • Блок плавающей точки. Третий выполняющий модуль внутри Pentium, выполняющий нецелочисленные вычисления
  • Первичный кэш: Pentium имеет два внутричиповых кэша по 8kb, по одному для данных и инструкций, которые намного быстрее большего внешнего вторичного кэша.
  • Шинный интерфейс: принимает смесь кода и данных в CPU, разделяет их до готовности к использованию, и вновь соединяет, отправляя наружу.

Все элементы процессора синхронизируются с использованием частоты часов, которые определяют скорость выполнения операций. Самые первые процессоры работали на частоте 100kHz, сегодня рядовая частота процессора - 200MHz, иначе говоря, часики тикают 200 миллионов раз в секунду, а каждый тик влечет за собой выполнение многих действий. Счетчик Команд (PC) - внутренний указатель, содержащий адрес следующей выполняемой команды. Когда приходит время для ее исполнения, Управляющий Модуль помещает инструкцию из памяти в регистр инструкций (IR). В то же самое время Счетчик команд увеличивается, так чтобы указывать на последующую инструкцию, а процессор выполняет инструкцию в IR. Некоторые инструкции управляют самим Управляющим Модулем, так если инструкция гласит "перейти на адрес 2749", величина 2749 записывается в Счетчик Команд, чтобы процессор выполнял эту инструкцию следующей.