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

Как разбираться в процессорах

  • автор:

Как устроен центральный процессор

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

У процессора есть:

Тактовая частота процессора

Тактовая частота указывает скорость работы процессора в герцах – количество рабочих операций в секунду. Тактовая частота процессора подразделяется на внутреннюю и внешнюю. Да, эта характеристика процессора значительно влияет на скорость работы вашего ПК, но производительность зависит далеко не только от неё. Внутренняя тактовая частота обозначает темп, с которым процессор обрабатывает внутренние команды. Чем выше показатель – тем быстрее внешняя тактовая частота. Внешняя тактовая частота определяет, с какой скоростью процессор обращается к оперативной памяти.

Разрядность процессора

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

Размерность технологического процесса

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

Сокет (разъем)

Гнездовой или щелевой разъем, предназначен для интеграции чипа в схему материнской платы. Каждый разъем допускает установку только определенного типа процессоров.

    • PGA (Pin Grid Array) – корпус квадратной или прямоугольной формы, штырьковые контакты
    • BGA (Ball Grid Array) – шарики припоя
    • LGA (Land Grid Array) – контактные площадки

    Кэш-память процессора

    Кэш-память процессора является одной из ключевых характеристик, на которую стоит обратить внимание при выборе. Кэш-память – массив сверхскоростной энергозависимой ОЗУ. Является буфером, в котором хранятся данные, с которыми процессор взаимодействует чаще или взаимодействовал в процессе последних операций. Благодаря этому уменьшается количество обращений процессора к основной памяти. Этот вид памяти делится на три уровня: L1, L2, L3. Каждый из уровней отличается по размеру памяти и скорости, и задачи ускорения у них отличаются. L1 — самый маленький и быстрый, L3 — самый большой и медленный. К каждому уровню процессор обращается поочередно (от меньшего к большему), пока не обнаружит в одном из них нужную информацию. Если ничего не найдено, обращается к оперативной памяти.

    Энергопотребление и тепловыделение

    Чем выше энергопотребление процессора, тем выше его тепловыделение. TDP (Thermal Design Power) – параметр, указывающий на то количество тепла, которое способна отвести охлаждающая система от определенного процессора при наибольшей нагрузке. Значение представлено в ваттах при максимальной температуре корпуса процессора. ACP (Average CPU Power) – средняя мощность процессора, показывающая энергопотребление процессора при конкретных задачах.

    Рабочая температура процессора

    Наивысший показатель температуры поверхности процессора, при котором возможна нормальная работа (54-100 °С). Этот показатель зависит от нагрузки на процессор и от качества отвода тепла. При превышении предела компьютер либо перезагрузится, либо просто отключится. Это очень важная характеристика процессора, которая напрямую влияет на выбор типа охлаждения.

    Множитель и системная шина

    Front Side Bus – частота системной шины материнской платы. Тактовая частота процессора является произведением частоты FSB на множитель процессора. У большинства процессоров заблокирован разгон по множителю, поэтому приходится разгонять по шине.

    Встроенное графическое ядро

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

    Количество ядер (потоков)

    Многоядерность одна из важнейших характеристик центрального процессора, но в последнее время ей уделяют слишком много внимания. Не так давно процессоры были одноядерными, их производительность на то время была достаточно хорошой, и не требовала увеличения мощности, когда процессоры уже уперлись в какой-то “потолок”. На замену одноядерным пришли процессоры с 2, 4 и 8 ядрами. Если 2 и 4-ядерные вошли в обиход очень быстро, процессоры с 8 ядрами пока не так востребованы. Для использования офисных приложений и серфинга в интернете достаточно 2 ядер, 4 ядра требуются для САПР и графических приложений, которым просто необходимо работать в несколько потоков. Что касается 8 ядер, очень мало программ поддерживают так много потоков, а значит, такой процессор для большинства приложений просто бесполезен. Обычно, чем меньше потоков, тем больше тактовая частота. Из этого следует, что если программа, адаптированная под 4 ядра, а не под 8, на 8-ядерном процессе она будет работать медленнее. Но этот процессор отличное решение для тех, кому необходимо работать сразу в большом количестве требовательных программ одновременно. Равномерно распределив нагрузку по ядрам процессора можно наслаждаться отличной производительностью во всех необходимых программ. В большинстве процессоров количество физических ядер соответствует количеству потоков: 8 ядер – 8 потоков. Но есть процессоры, где благодаря Hyper-Threading, к примеру, 4-ядерный процессор может обрабатывать 8 потоков одновременно.

    Как это работает

    Сам процессор представляет собой небольшую квадратную пластину (чип), внутри которой находятся миллионы транзисторов. Если говорить о том, как работает процессор Intel или его конкурент AMD, нужно посмотреть, как устроены эти чипы. Первый микропроцессор появился еще в далеком 1971 году. Он мог выполнять только простейшие операции сложения и вычитания с обработкой всего лишь 4 бит информации, т. е. имел 4-битную архитектуру. Современные процессоры, как и первый, основаны на транзисторах и обладают куда большим быстродействием. Изготавливаются они методом фотолитографии из определенного числа отдельных кремниевых пластинок, составляющих единый кристалл, в который как бы впечатаны транзисторы. Схема создается на специальном ускорителе разогнанными ионами бора. Во внутренней структуре процессоров основными компонентами являются ядра, шины и функциональные частицы, называемые ревизиями. Если посмотреть, как работает процессор, нужно четко представлять себе, что любая команда имеет две составляющие – операционную и операндную. Операционная часть указывает, что должна выполнить в данный момент компьютерная система, операнда определяет то, над чем должен работать именно процессор. Кроме того, ядро процессора может содержать два вычислительных центра, которые разделяют выполнение команды на несколько этапов:

      • Выработка
      • Дешифрование
      • Выполнение команды
      • Обращение к памяти самого процессора
      • Сохранение результатов

      Сегодня применяется раздельное кэширование в виде использования двух уровней кэш-памяти, что позволяет избежать перехвата двумя и более командами обращения к одному из блоков памяти. Процессоры по типу обработки команд разделяют на линейные (выполнение команд в порядке очереди их записи), циклические и разветвляющиеся (выполнение инструкций после обработки условий ветвления). Среди основных функций, возложенных на процессор, в смысле выполняемых команд или инструкций различают основные задачи: математические действия на основе арифметико-логического устройства; перемещение данных (информации) из одного типа памяти в другой; принятие решения по исполнению команды, и на его основе – выбор переключения на выполнения других наборов команд. Взаимодействие с памятью (ПЗУ и ОЗУ) В этом процессе следует отметить такие компоненты, как шина и канал чтения и записи, которые соединены с запоминающими устройствами. ПЗУ содержит постоянный набор байт. Сначала адресная шина запрашивает у ПЗУ определенный байт, затем передает его на шину данных, после чего канал чтения меняет свое состояние и ПЗУ предоставляет запрошенный байт. Но процессоры могут не только считывать данные из оперативной памяти, но и записывать их. В этом случае используется канал записи. Но, если разобраться, по большому счету современные компьютеры чисто теоретически могли бы и вовсе обойтись без ОЗУ, поскольку современные микроконтроллеры способны размещать нужные байты данных непосредственно в памяти самого процессорного чипа. Но вот без ПЗУ обойтись никак нельзя. Кроме всего прочего, старт системы запускается с режима тестирования оборудования (команды BIOS), а только потом управление передается загружаемой операционной системе. Нужно четко понимать, что, если бы процессор не работал, компьютер бы не смог начать загрузку вообще. Но на примере функционирования человеческого организма нужно понимать, что в случае остановки сердца умирает весь организм. Так и с компьютерами. Не работает процессор – «умирает» вся компьютерная система.

      История создания. Дальнейшее развитие процессоров

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

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

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

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

      Практически все накопленные в процессе конкуренции различных фирм архитектурные решения находят своё воплощение в новых архитектурах. В архитектуре современных процессоров различных производителей много общего, и ставится вопрос об унификации архитектур. Современный процессор – это 64-разрядный суперконвейерный, суперскалярный процессор с RISC-операционным ядром и большим числом дополнительных блоков, реализующий динамическое исполнение команд. Для эффективной обработки данных мультимедиа и графики система команд современных процессоров расширяется за счёт специализированных команд мультимедийной обработки.

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

      Как устроен процессор? Разбираемся вместе

      Favorite В закладки

      Как устроен процессор? Разбираемся вместе

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

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

      Почему мы подняли тему процессоров? Все просто. За последние десять лет произошла настоящая революция в мире мобильных устройств.

      Между этими устройствами всего 10 лет разницы. Но Nokia N95 тогда нам казалась космическим девайсом, а на ARKit сегодня мы смотрим с определенным недоверием

      А ведь все могло бы сложиться иначе и потрепанный Pentium IV так бы и остался пределом мечтаний рядового покупателя.

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

      1. С чего все началось

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

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

      Для работы одного исполинского компьютера нужны были сотни, иногда тысячи процессоров. Но, при этом, вы не смогли бы запустить на таком компьютере даже простенький редактор, как NotePad или TextEdit из штатного набора Windows и macOS. Компьютеру банально не хватило бы мощности.

      2. Появление транзисторов

      Первые полевые транзисторы появились еще в 1928 году. Но мир изменился лишь после появления так называемых биполярных транзисторов, открытых в 1947-м.

      В конце 40-х физик-экспериментатор Уолтер Браттейн и теоретик Джон Бардин разработали первый точечный транзистор. В 1950 его заменил первый плоскостной транзистор, а в 1954 году небезызвестный производитель Texas Instruments анонсировал уже кремниевый транзистор.

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

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

      3. Как работает транзистор

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

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

      Из школьного курса информатики вы, наверняка, помните, что компьютер «понимает» человеческий язык за счет комбинаций всего двух состояний: «включено» и «выключено». В понимании машины это состояние "0" или "1".

      Задача компьютера заключается в том, чтобы представить электрический ток в виде чисел.

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

      С начала 60-х транзисторы стали изготавливать из кремния, что позволило не только делать процессоры компактнее, но и существенно повысить их надежность.

      Но сначала разберемся с диодом

      Кремний (он же Si – "silicium" в таблице Менделеева) относится к категории полупроводников, а значит он, с одной стороны, пропускает ток лучше диэлектрика, с другой, – делает это хуже, чем металл.

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

      Задача транзистора заключается в усилении слабого сигнала за счет дополнительного источника питания.

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

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

      Так стали использовать 5-валентную примесь фосфора, за счет чего получили транзисторы n-типа. Наличие дополнительного электрона позволило ускорить их движение, повысив пропуск тока.

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

      Предположим, мы взяли кремниевую пластину и легировали одну ее часть при помощи примеси p-типа, а другую – при помощи n-типа. Так мы получили диод – базовый элемент транзистора.

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

      Если к диоду подключить источник питания таким образом, чтобы "–" касался p-стороны пластины, а "+" – n-стороны, протекание тока будет невозможно из-за того, что дырки притянутся в минусовому контакту источника питания, а электроны – к плюсовому, и связь между электронами p и n стороны будет утеряна за счет расширения объединенного слоя.

      Но если подключить питание с достаточным напряжением наоборот, т.е. "+" от источника к p-стороне, а "–" – к n-стороне, размещенные на n-стороне электроны будут отталкиваться отрицательным полюсом и выталкиваться на p-сторону, занимая дырки в p-области.

      Но теперь электроны притягивает к положительному полюсу источника питания и они продолжаются перемещаться по p-дыркам. Это явление назвали прямым смещением диода.

      Диод + диод = транзистор

      Сам по себе транзистор можно представить как два, состыкованных друг к другу диода. При этом p-область (та, где размещены дырки) у них становится общей и именуется «базой».

      У N-P-N транзистора две n-области с дополнительными электронами – они же «эмиттер» и «коллектор» и одна, слабая область с дырками – p-область, именуемая «базой».

      Если подключить источник питания (назовем его V1) к n-областям транзистора (независимо от полюса), один диод получит обратное смещение и транзистор будет находиться в закрытом состоянии.

      Но, как только мы подключим еще один источник питания (назовем его V2), установив "+" контакт на «центральную» p-область (базу), а "–" контакт на n-область (эмиттер), часть электронов потечет по вновь образованной цепи (V2), а часть будет притягиваться положительной n-областью. В результате, электроны потекут в область коллектора, а слабый электрический ток будет усилен.

      4. Так как все-таки работает компьютер?

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

      А теперь самое главное.

      В зависимости от подаваемого напряжения, транзистор может быть либо открыт, либо закрыт. Если напряжение недостаточное для преодоления потенциального барьера (того самого на стыке p и n пластин) – транзистор будет находится в закрытом состоянии – в состоянии «выключен» или, говоря языком двоичной системы – "0".
      При достаточно напряжении транзистор открывается, а мы получаем значение «включен» или "1" в двоичной системе.
      Такое состояние, 0 или 1, в компьютерной индустрии назвали «битом».

      Т.е. мы получаем главное свойство того самого переключателя, который открыл человечеству путь к компьютерам!

      В первом электронном цифровом вычислителе ЭНИАК, а проще говоря – первом компьютере, использовалось около 18 тысяч ламп-триодов. Размер компьютера был сопоставим с теннисным кортом, а его вес составлял 30 тонн.

      Для понимания работы процессора нужно понять еще два ключевых момента.

      Момент 1. Итак, мы определились с тем, что такое бит. Но с его помощью мы можем лишь получить две характеристики чего-либо: или «да» или «нет». Для того, чтобы компьютер научился понимать нас лучше, придумали комбинацию из 8 битов (0 или 1), которую прозвали байтом.

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

      Момент 2. Наличие чисел и букв без какой-либо логики нам бы ничего не дало. Именно поэтому появилось понятие логических операторов.

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

      Стараниями программистов значения нулей и единиц, двоичной системы, стали переводить в десятичную для того, чтобы мы могли понять, что именно «говорит» компьютер. А для ввода команд привычные нами действия, вроде ввода букв с клавиатуры, представлять в виде двоичной цепи команд.

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

      Это довольно примитивное объяснение принципа работы процессора и компьютера, но именно понимание этого позволяет нам двигаться дальше.

      5. И началась транзисторная гонка

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

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

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

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

      • 1964 год IBM System/360. Компьютер, совместимый с универсальным программным кодом. Набор инструкций для одной модели процессора мог использоваться и для другой.
      • 70-e годы. Появление первых микропроцессоров. Однокристальный процессор от Intel. Intel 4004 – 10 мкм ТП, 2 300 транзисторов, 740 КГц.
      • 1973 год Intel 4040 и Intel 8008. 3 000 транзисторов, 740 КГц у Intel 4040 и 3 500 транзисторов при 500 кГц у Intel 8008.
      • 1974 год Intel 8080. 6 мкм ТП и 6000 транзисторов. Тактовая частота около 5 000 кГц. Именно этот процессор использовался в компьютере Altair-8800. Отечетсвенная копия Intel 8080 – процессор КР580ВМ80А, разработанный Киевским НИИ микроприборов. 8 бит.
      • 1976 год Intel 8080. 3 мкм ТП и 6500 транзисторов. Тактовая частота 6 МГц. 8 бит.
      • 1976 год Zilog Z80. 3 мкм ТП и 8500 транзисторов. Тактовая частота до 8 МГц. 8 бит.
      • 1978 год Intel 8086. 3 мкм ТП и 29 000 транзисторов. Тактовая частота около 25 МГц. Система команд x86, которая используется и сегодня. 16 бит.
      • 1980 год Intel 80186. 3 мкм ТП и 134 000 транзисторов. Тактовая частота – до 25 МГц. 16 бит.
      • 1982 год Intel 80286. 1,5 мкм ТП и 134 000 транзисторов. Частота – до 12,5 МГц. 16 бит.
      • 1982 год Motorola 68000. 3 мкм и 84 000 транзисторов. Этот процессор использовался в компьютере Apple Lisa.
      • 1985 год Intel 80386. 1,5 мкм тп и 275 000 транзисторов.Частота – до 33 МГц в версии 386SX.

      Казалось бы, продолжать список можно было бы до бесконечности, но тут инженеры Intel столкнулись с серьезной проблемой.

      6. Закон Мура или как чипмейкерам жить дальше

      На дворе конец 80-х. Еще в начале 60-х один из основателей компании Intel Гордон Мур формулировал так называемый «Закон Мура». Звучит он так:

      Каждые 24 месяца количество транзисторов, размещенных на кристалле интегральной схемы, удваивается.

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

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

      В качестве решения был найден вариант с использованием рядом дополнительных элементов:

      • кэш-памяти;
      • конвейера;
      • встроенного сопроцессора;
      • множителя.

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

      Процессор Intel i486 состоял уже из 1,2 млн транзисторов, а максимальная частота его работы достигла 50 МГц.

      В 1995 году к разработке присоединяется компания AMD и выпускает самый быстрый на тот момент i486-совместимый процессор Am5x86 на 32-битной архитектуре. Изготавливался он уже по 350 нанометровому техпроцессу, а количество установленных процессоров достигло 1,6 млн штук. Тактовая частота повысилась до 133 МГц.

      Но гнаться за дальнейшим наращиванием количества установленных на кристалле процессоров и развитии уже утопической архитектуры CISC (Complex Instruction Set Computing) чипмейкеры не решились. Вместо этого американский инженер Дэвид Паттерсон предложил оптимизировать работу процессоров, оставив лишь самые необходимые вычислительные инструкции.

      Так производители процессоров перешли на платформу RISC (Reduced Instruction Set Computing]. Но и этого оказалось мало.

      В 1991 году выходит 64-битный процессор R4000, работающий на частоте 100 МГц. Через три года появляется процессор R8000, а еще через два года – R10000 с тактовой частотой вплоть до 195 МГц. Параллельно развивался рынок SPARC-процессоров, особенностью архитектуры которых стало отсутствие инструкций умножения и деления.

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

      Вот лишь некоторые из появившихся с период с 1980 по 1995 год архитектур:

      • SPARC;
      • ARM;
      • PowerPC;
      • Intel P5;
      • AMD K5;
      • Intel P6.

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

      В августе 1999 года на рынок выходе AMD K7 Athlon, изготовленный по 250 нанометровому техпроцессу и включающий 22 млн транзисторов. Позднее планку подняли до 38 млн процессоров. Потом до 250 млн.

      Увеличивался технологический процессор, росла тактовая частота. Но, как гласит физика, всему есть предел.

      7. Конец транзисторных соревнований близко

      В 2007 году Гордон Мур выступил с весьма резким заявлением:

      Закон Мура скоро перестанет действовать. Устанавливать неограниченное количество процессоров до бесконечности невозможно. Причина тому — атомарная природа вещества.

      Невооруженным глазом заметно, что два ведущих производителям чипов AMD и Intel последние несколько лет явно замедлили темпы развития процессоров. Точность технологического процесса выросла всего до нескольких нанометров, но размещать еще больше процессоров невозможно.

      И пока производители полупроводников грозятся запустить многослойные транзисторы, проводя параллель с 3DNand памятью, у упершейся в стену архитектуры x86 еще 30 лет назад появился серьезный конкурент.

      8. Что ждет «обычные» процессоры

      «Закон Мура» признан недействительным еще с 2016 года. Об этом официально заявил крупнейший производитель процессоров Intel. Удваивать вычислительную мощность на 100% каждые два года чипмейкеры больше не состоянии.

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

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

      К тому же, о серийном запуске подобных устройств в ближайшие десятилетия не может идти и речи. Дорого, неэффективно и… медленно!

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

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

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

      Сегодня же, понимая стремительное развитие ARM-архитектуры, Intel провела негромкий анонс чипов семейства Ice Lake. Процессоры будут изготавливаться по 10-нанометровому технологическому процессу и станут основой для смартфонов, планшетов и мобильных устройств. Но произойдет это в 2019 году.

      9. Будущее за ARM

      Итак, архитектура x86 появилась в 1978 году и относится к типу платформы CISC. Т.е. сама по себе она предполагает наличие инструкций на все случаи жизни. Универсальность – главный конек x86.

      Но, в тоже время, универсальность сыграла с этими процессорами и злую шутку. У x86 есть несколько ключевых недостатков:

      • сложность команд и откровенная их запутанность;
      • высокое потребление энергии и выделение теплоты.

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

      В тоже время разработкой ARM (Arcon Risk Machine) занимаются сразу несколько компания. Еще в 1985 году в качестве основы для дальнейшего развития архитектуры разработчики выбрали платформу RISC.

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

      Более того, ARM изначально создавался исключительно как конкурент x86. Разработчики ставили задачу построить архитектуру, более эффективную чем x86.

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

      Архитектуру ARM в свое время поддержала компания Apple, запустив производство планшетов Newton на базе семейства ARM-процессоров ARM6.

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

      • мобильность;
      • автономность.

      x86 архитектура сильна в производительности, но стоит вам отказаться от активного охлаждения, как мощный процессор покажется жалким на фоне архитектуры ARM.

      10. Почему ARM – неоспоримый лидер

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

      Но во сколько мощнее тот же айфон?

      Само по себе сравнение двух разных архитектур – штука очень сложная. Замеры здесь можно выполнить лишь приблизительно, но понять то колоссальное преимущество, что дает построенные на ARM-архитектуре процессоры смартфона, можно.

      Универсальный помощник в таком вопросе – искусственный тест производительности Geekbench. Утилита доступна как на стационарных компьютерах, так и на Android и iOS платформах.

      Средний и начальный класс ноутбуков явно отстает от производительности iPhone 7. В топовом сегменте все немного сложнее, но в 2017 году Apple выпускает iPhone X на новом чипе A11 Bionic.

      Там, уже знакомая вам архитектура ARM, но показатели в Geekbench выросли почти вдвое. Ноутбуки из «высшего эшелона» напряглись.

      А ведь прошел всего один год.

      Развитие ARM идет семимильными шагами. Пока Intel и AMD год за годом демонстрируют 5 – 10% прирост производительности, за тот же период производители смартфонов умудряются повысить мощность процессоров в два – два с половиной раза.

      Скептически настроенным пользователям, которые пройдутся по топовым строчкам Geekbench лишь хочется напомнить: в мобильных технологиях размер – это то, что прежде всего имеет значение.

      Установите на стол моноблок с мощным 18-ядерный процессором, который «в клочья разрывает ARM-архитектуру», а затем положите рядом iPhone. Чувствуете разницу?

      11. Вместо вывода

      Объять 80-летнюю историю развития компьютеров в одном материале невозможно. Но, прочитав данную статью, вы сможете понять как устроен главный элемент любого компьютера – процессор, и чего стоит ждать от рынка в последующие годы.

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

      Но нужна ли вам как покупателю такая мощность?

      Вряд ли вас не устраивает производительность iPad Pro или флагманского iPhone X. Не думаю, что вы недовольны производительностью расположившейся на кухне мультиварки или качеством картинки на 65-дюймовом 4K-телевизоре. А ведь во всех этих устройствах используются процессоры на ARM-архитектуре.

      Windows уже официально заявила, что с интересом смотрит в сторону ARM. Поддержку этой архитектуры компания включила еще в Windows 8.1, а ныне активно работает над тандемом с ведущим ARM-чипмейкером Qualcomm.

      На ARM успела посмотреть и Google – операционная система Chrome OS поддерживает эту архитектуру. Появились сразу несколько дистрибутивов Linux, которые также совместимы с данной архитектурой. И это только начало.

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

      Favorite В закладки

      Как научиться разбираться в центральных процессорах

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

      Центральные процессоры (ЦП) для настольных компьютеров и ноутбуков в основном выпускают две конкурирующие компании: Intel и AMD. Кстати, именно фирма Intel 15 ноября 1971 года выпустила первый коммерчески доступный однокристалльный микропроцессор — Intel 4004. И по сей день процессоры этой компании наиболее распространены на массовом рынке. Intel и AMD занимают около 80% и 19% рынка центральных процессоров (в сфере настольных ПК эти цифры несколько другие — 73% и 27%). Кроме того, свои модели — в первую очередь для мобильных устройств — выпускают компании VIA, ARM, NVIDIA и другие.

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

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

      Архитектура, сокет, семейство и ядро

      На материнской плате находится процессорное гнездо (так называемый «сокет»), куда вставляется процессор. Гнездо не поддается замене и подходит только для процессоров, имеющих такое же количество контактных ножек. Таких процессоров может быть очень много. К примеру, на базе разъема Socket 775 (на самом деле правильно называть его Socket T или LGA 775) были созданы следующие семейства процессоров Intel: Celeron, Celeron D, Pentium 4, Pentium D, Pentium 4 EE, Pentium Dual-Core, Core 2 Duo, Core 2 Extreme, Core 2 Quad, Xeon. Но на материнские платы под Socket 775 уже нельзя установить более новые процессоры Intel с разъемами LGA 1156 и LGA 1366.

      Процессорное гнездо Socket 775

      Если вы хотите заменить процессор у старого компьютера с подобным разъемом, придется либо менять связку «материнская плата + процессор + ОЗУ», либо покупать более мощный, но уже устаревший процессор LGA 775. В последнем случае необходимо удостовериться, поддерживает ли ваша материнская плата новый процессор. Возможно, придется обновить BIOS. Также следует помнить о том, что материнские платы и процессоры обычно поддерживают лишь один тип памяти: DDR2 либо DDR3. Это тоже ограничивает возможности по замене отдельных комплектующих. Поэтому в ряде случаев компьютер старше 5-7 лет проще заменить полностью, чем попытаться улучшать отдельные его компоненты.

      Процессорный разъем — не единственное различие. Процессоры выпускаются в рамках различных микроархитектур, семейств и процессорных ядер (не путать с количеством ядер в процессоре). Поясним это положение на следующем примере.

      Шестое поколение микропроцессоров архитектуры x86-64 корпорации Intel под названием Intel Core 2, основанное на процессорной архитектуре Intel Core, выпускалось на базе следующих ядер: Conroe (двухъядерные процессоры для настольного сегмента), Allendale (упрощенные Conroe), Merom (процессоры для портативных ПК), Kentsfield (четырехъядерный Conroe), Wolfdale (преемник двухъядерного Conroe, созданный по 45-нм процессу), Yorkfield (преемник Kentsfield, созданный по 45-нм процессу). Добавьте к этому еще непростую цифробуквенную маркировку модельного ряда. Как видите, сложно не запутаться.

      В последние годы Intel перешел на новые разъемы: LGA 1156 и LGA 1366. Socket H (или LGA 1156) — это преемник процессорного разъема LGA 775 для настольных систем и процессорного разъема LGA 771 для серверов начального и среднего уровня. Socket B (или LGA 1366) — это преемник процессорного разъема LGA 775 для высокопроизводительных настольных систем и процессорного разъема LGA 771 для серверов. При этом были выпущены новые семейства центральных процессоров: Intel Core i3, Core i5 и Core i7. Последнее семейство стало первым, использующим новую микроархитектуру Nehalem на основе 45-нм техпроцесса. В прошлом году на смену Nehalem пришла архитектура Westmere, использующая 32-нм техпроцесс.

      Но Intel и на этом не успокоился, представив в начале этого года новую архитектуру — Sandy Bridge, на которую к концу года должны перейти все процессоры Intel. При этом будут снова обновлены процессорные гнезда — появятся LGA 1155 и LGA 2011. Таким образом, к концу 2011 года пользователи смогут встретить в продаже процессоры пяти «сокетов» только от одного производителя. Напоминаем, что процессорные гнезда между собой несовместимы.

      В свою очередь, AMD также постоянно что-то меняет. И ситуация с модельным рядом от AMD для обыкновенного пользователя не менее запутана. Правда, процессорные гнезда меняются все же реже: AM2 (2006 год), AM2+ (2007 год), AM3 (2009 год), AM3+ (появится во второй половине 2011 года). При этом смежные пары «сокетов» обратно совместимы. То есть процессор с гнездом AM2+ можно было установить на материнскую плату с поддержкой AM2, а AM3 — на AM2+ (но не наоборот).

      Как вы уже поняли, разобраться в хитросплетениях разработчиков и маркетологов довольно сложно. Кому интересно, может самостоятельно изучить основные различия архитектур, гнезд, семейств и ядер, а мы перейдем к потребительским характеристикам процессоров. И сделаем это на примере центрального процессора AMD Athlon II X4 645 стоимостью около 3 тыс. рублей. Мы выделили семь основных характеристик, на которые следует ориентироваться при выборе процессора.

      Athlon II X4 645

      Основные потребительские характеристики процессоров

      1. Используемое процессорное гнездо. Обычно под него подбирается материнская плата (либо процессор под материнскую плату). В нашем случае это Socket AM3 — дальнейшее развитие Socket AM2. В отличие от последнего AM3 обладает поддержкой памяти как и DDR2, так и DDR3 (одновременно возможна работа только с одним типом памяти) и более высокой скоростью работы шины HyperTransport. На данный момент это наиболее популярный разъем процессоров компании AMD.

      2. Количество используемых ядер. Когда-то все процессоры были одноядерные, сейчас не удивишь процессорами и с шестью ядрами. А в ближайшее время в продаже появятся восьмиядерные процессоры Intel и AMD. Athlon II X4 645 из нашего примера имеет четыре ядра.

      Если продавец в магазине говорит вам, что при одинаковых параметрах двухъядерный процессор быстрее одноядерного в два раза, не верьте. Разница обычно составляет всего несколько десятков процентов. Это верно и при сравнении двухъядерного и четырехъядерного процессоров. Однако количество ядер не самое главное — многое зависит от того, насколько хорошо используемое программное обеспечение оптимизировано для работы с несколькими ядрами. В идеале в случае с двухъядерным процессором нагрузка должна распределяться на оба ядра, в реальности обычно сильнее нагружается одно из ядер. В принципе чем больше ядер, тем лучше, но если компьютер используется в качестве «офисной машинки», то стоит ли переплачивать?

      3. Тактовая частота процессора. Ранее одна из важнейших характеристик, так как скорость процессора напрямую зависела от тактовой частоты. В настоящее время параметр потерял былую актуальность, так как у современных моделей скорость работы зависит от количества используемых ядер, характеристик кеш-памяти и микроархитектуры процессора и, разумеется, от оптимизации используемого программного обеспечения. Частоты современных процессоров находятся в районе 2-3 ГГц, и массового прорыва на 4 ГГц в ближайшие годы не планируется.

      4. Кеш-память. Это собственная память процессора, в которой хранятся копии часто используемых данных из ОЗУ. В целом чем больше кеш-памяти, тем лучше. Кеш подразделяется на несколько уровней: потребительские процессоры имеют два или три уровня (L1, L2, L3). Самая быстрая кеш-память — L1. L2 обычно больше по размеру и в то же время медленнее. L3 обладает самым большим объемом, но и самой медленной скоростью. Тем не менее даже L3 быстрее, чем оперативная память компьютера. Athlon II X4 645 является урезанным аналогом Phenom II, поэтому в нем используется кеш-память только двух уровней: кеш L1 — 128 Кб x4 и кеш L2 — 512 Кб x4 (каждое ядро имеет свою кеш-память).

      5. Используемое ядро. В нашем случае это Propus (аналог ядра Deneb только без кеш-памяти L3). Ядро изготавливается с помощью того или иного технологического процесса. Чем он меньше, тем лучше. Значит, можно оперировать с меньшими элементами, дешевле производство. Техпроцесс также влияет на мощность: чем меньше техпроцесс, тем меньше потребление энергии и меньше тепловыделение. Athlon II изготовлен по 45-нм техпроцессу, и AMD находится в роли отстающего, так как Intel уже перешел на 32-нм техпроцесс. При покупке старайтесь брать процессор на более новом ядре: они обычно более совершенные.

      6. Рассеиваемая мощность процессора (TDP), измеряется в ваттах. Чем больше TDP, тем больше энергии потребляет процессор. Значит, нужен более мощный блок питания. Кроме того, чем больше TDP, тем сильнее он греется и для его охлаждения потребуется более мощный кулер.

      7. Тип поддерживаемой памяти. Athlon II X4 645 поддерживает как DDR2, так и DDR3. Кроме типа памяти, надо знать, какие стандарты памяти официально поддерживает процессор. К примеру, рассматриваемая нами модель может работать со следующими планками: DDR2 PC2-3200, PC2-4200, PC2-5300, PC2-6400, DD3 PC3-6400, PC3-8500, PC3-10600. Работа с другими планками возможна, но не гарантируется.

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

      Собственная платформа. Часть 0.1 Теория. Немного о процессорах

      Здравствуй, мир! Сегодня у нас серия статьей для людей со средними знаниями о работе процессора в которой мы будем разбираться с процессорными архитектурами (у меня спелл чекер ругается на слово Архитектурами/Архитектур, надеюсь я пишу слово правильно), создавать собственную архитектуру процессора и многое другое.

      4004

      Принимаются любые замечания!

      Немного про архитектуру процессора

      Исторически сложилось, что существуют много процессоров и много архитектур. Но многие архитектуры имеют схожести. Специально для этого появились «Группы» архитектур типа RISC, CISC, MISC, OISC (URISC). Кроме того они могут иметь разные архитектуры адресации памяти (фон Неймана, Гарвард). У каждого процессора есть своя архитектура. Например большинство современных архитектур это RISC (ARM, MIPS, OpenRISC, RISC-V, AVR, PIC** и т.д.), но есть архитектуры которые выиграли просто за счет других факторов (Например удобство/цена/популярность/etc) Среди которых x86, x86-64 (Стоит отметить, что x86-64 и x86 в последних процессорах используют микрокод и внутри них стоит RISC ядро), M68K. В чем же их отличие?

      Reduced Instruction Set Computer — Архитектура с уменьшенным временем выполнения инструкций (из расшифровка RISC можно подумать, что это уменьшенное количество инструкций, но это не так). Данное направления развилось в итоге после того, как оказалось, что большинство компиляторов того времени не использовали все инструкции и разработчики процессоров решили получить больше производительности использую Конвейеры. В целом RISC является золотой серединой между всеми архитектурами.

      Яркие примеры данной архитектуры: ARM, MIPS, OpenRISC, RISC-V

      Что такое TTA? ТТА это Архитектура на основе всего одной инструкции перемещения из одного адреса памяти в другую. Данный вариант усложняет работу компилятора зато дает большую производительность. У данной архитектуры есть единственный недостаток: Сильная зависимость от шины данных. Именно это и стало причиной ее меньшей популярности. Надо отметить что TTA является разновидностью OISC.

      Яркие примеры: MOVE Project

      OISC (URISC)?

      One Instruction Set Computer — Архитектура с единственной инструкцией. Например SUBLEQ. Такие архитектуры часто имеют вид: Сделать действие и в зависимости от результата сделать прыжок или продолжить исполнение. Зачастую ее реализация достаточно простая, производительность маленькая, при этом снова ограничение шиной данных.

      Яркие примеры: BitBitJump, ByteByteJump, SUBLEQ тысячи их!

      CISC — Complex Instruction Set Computer — ее особенность в увеличенных количествах действий за инструкцию. Таким образом можно было теоретически увеличить производительность программ за счет увеличения сложности компилятора. Но по факту у CISC плохо были реализованы некоторые инструкции т.к. они редко использовались, и повышение производительности не было достигнуто. Особенностью этой группы является еще ОГРОМНАЯ Разница между архитектурами. И несмотря на названия были архитектуры с маленьким количеством инструкций.

      Яркие примеры: x86, M68K

      Адресация памяти

      Архитектура фон Неймана

      Von Neuman Wiki

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

      Архитектура гарварда

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

      Особенности процессоров

      Конвейеры

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

      pipeline
      На картинке более понятно, не правда?

      Вроде все просто? А вот и нет! Проблема в том что например прыжок (jmp/branch/etc) заставляют конвейер начать исполнение (получение след. инструкции) заново таким образом вызывая задержку в 2-4 такта перед исполнение следующей инструкции.

      Расширение существующих архитектур

      Достаточно популярной техникой является добавление в уже существующую архитектуру больше инструкций через расширения. Ярким примером является SSE под x86. Этим же грешит ARM и MIPS и практически все. Почему? Потому что нельзя создать унивирсальную архитектуру.

      Другим вариантом является использование других архитектур для уменьшения размера инструкций.
      Яркий пример: ARM со своим Thumb, MIPS с MIPS16.

      Техники применяемые в GPU

      В видеокартах часто встречается много ядер и из-за этой особенности появилась потребность в дополнительных решениях. Если конвейеры можно встретить даже в микроконтроллерах то решения используемых в GPU встречаются редко. Например Masked Execution (Встречается в инструкциях ARM, но не в Thumb-I/II). Еще есть другие особенность: это уклон в сторону Floating Number (Числа с плавающей запятой), Уменьшение производительности в противовес большего количества ядер и т.д.

      Masked Execution

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

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

      Прочее

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

      Прерывания

      Interrupts

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

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

      Exception (исключения)

      Но кроме прерываний еще существуют исключений которые возникают например при деления на ноль. Зачастую его совмещают с прерываниями и системными вызовами, как например в MIPS. Исключения не всегда присутствуют в процессоре например как в AVR или младших PIC

      Системные вызовы

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

      Контроллеры доступа в память и прочие методы сдерживания программ

      Здесь описываются методы запрета доступа приложений к аппаратуре напрямую.

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

      Это режим в котором стартует процессор. В таком режиме программа или ОС имеют полный доступ к памяти в обход MMU/MPU. Все программы запускаются в непривилегированном режиме во избежания прямого доступа к аппаратным подсистемам программ для этого не предназначенных. Например вредоносным программам. В Windows ее часто называют Ring-0, а в *nix — системным. Не стоит путать Привелигированный пользователь и Привилегированный режим ибо в руте вы все еще не можете иметь прямой доступ к аппаратуре (можно загрузить системный модуль который позволит это сделать, но об этом чуть позже 🙂

      MPU и MMU

      MMU

      MPU и MMU используется в современных системах чтобы изолировать несколько приложений. НО если MMU позволяет «передвинуть» память то MPU позволяет только блокировать доступ к памяти/запуск кода в памяти.

      PIC (PIE)

      Что такое PIE? (PIC не использую для избежания путаницы с МК PIC). PIE это техника благодаря которой компилятор генерирует код который будет работать в любом месте в памяти. Эта техника в совмещении с MPU позволяет компилировать высокие языки программирования которые будут работать и с MPU.

      Популярная техника SIMD используется для того, что бы за один такт выполнять несколько действий над несколькими регистрами. Иногда бывают в качестве дополнений к основной архитектуре, например, как в MIPS, ARM со своими NEON/VFP/etc, x86 со своим SSE2.

      Reposition for Optimization

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

      Status register

      Status

      Что такое регистр статуса? Это регистр который хранит состояние процессора. Например находится ли процессор в привилегированном режиме, чем закончилась операция последнего сравнения.

      Используется в связке с Masked Execution. Некоторые разработчики специально исключают регистр статуса ибо он может являться узким местом как поступили в MIPS.

      mov vs $0 reg

      В MIPS нет отдельной инструкции загрузки константы в память, но есть инструкция addi и ori которая позволяет в связке с нулевым регистром ($0) эмулировать работу загрузки константы в регистр. В других архитектурах она присутствует. Я затронул эту тему, потому что она пригодиться нам в статьях с практикой.

      Rd, Rs vs Rd, rs, rt

      Идут множество споров насчет того сколько должно быть операндов в арифметических инструкциях. Например в MIPS используется вариант с 3-мя регистрами. 2 операнда, 1 регистр записи. С другой стороны, использование двух операндов позволяет сократить код за счет уменьшения размера инструкции. Пример совмещения является MIPS16 в MIPS и Thumb-I в ARM. В плане производительности они практически идентичны (Если исключать размер инструкции как фактор).

      Endianness

      Endianness

      Порядок байт. Возможно вам знакомы Выражения Big-Endian и Little-Endian. Они описывают порядок байт в инструкциях/в регистрах/в памяти/etc. Здесь думаю все просто :). Есть процессоры которые совмещают режимы, как MIPS, или которые используют одну систему команд, но имеют разный порядок байт, например ARM.

      Битность процессора

      Итак, что такое битность процессора? Многие считают, что это битность шины данных, но это не так. Почему? В ранние переоды микроконтроллеров и микропроцессоров шина могла быть, например, 4-х битной, но передавала пакетами по 8 бит. Для программы казалось, что это 8-и битный режим, но это была иллюзия, как и сейчас. Например, в ARM SoC-ах часто применяют 128-и битную шину данных или инструкций.

      128/64/32

      Сопроцессоры

      Что такое сопроцессоры? Сопроцессоры являются элементами процессора или внешней микросхемой. Они позволяют исполнять инструкции, которые слишком громоздки для основной части процессора. Как яркий пример, сопроцессоры в MIPS для деления и умножения. Или например 387 для 80386, который добавлял поддержку чисел с плавающей запятой. А в MIPS сопроцессоров было много и они выполняли свои роли: контролировали прерывания, исключения и системные вызовы. Часто сопроцессоры имеют собственные инструкции и на системах, где этих инструкций нет, (пример ARM) эмулируют ее через Trap-ы (ловушки?). Несмотря на костыльность и маленькую производительность, они часто являются единственным выбором в микроконтроллерах.

      Атомарность операций

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

      Вариант другого решения атомарность переферии. Например для установки ножки в STM32 в высокое и низкое состояние используется разные регистры, что позволяет иметь атомарность на уровне переферии.

      Cache

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

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

      Shadow Registers

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

      Stack

      Stack

      Стек? Я видел Стек в .NET и в Java! Что же, Вы частично правы. Стек существует, но он никогда не был апаратным в большинства процессорах. Например в MIPS его по просту нет. Спросите КАК ТАК ТО?! Ответ прост. Стек это просто доступ к памяти которую не нужно резервировать (очень грубое определение). Стек используется для вызова функций, передачи аргументов, сохранения регистров для того чтобы востановить их после выполнения функции и т.д.

      Спросите тогда что такое куча (Heap)? Куча это память размером намного больше чем стек (Стек обычно

      1MB). В хипе храниться все глобальное. Например все указатели полученные с помощю Malloc указывают на часть куча. А указатели хранятся в стеке или в регистрах. С помощью инструкций загрузки данных относительно регистра можно ускорить работу стека и других доступов к памяти по типу стека, поскольку не нужно постоянно использовать операции PUSH/POP, INC/DEC или ADDI, SUBI (добавить константу), чтобы получить данные глубже по стеку, а можно просто использовать доступ относительно стека с отрицательным смещением.

      Регистры

      Регистры

      Не буду описывать регистры слишком подробно. Это мы затронем в практической статье.

      В x86 регистров достаточно мало. В MIPS используется увеличенное количество регистров, а именно 31 ($0 имеет значение всегда равное нулю). В процессоре университета Беркли использовались регистровые окна, которые жестки ограничивали вложенность функций, при этом имея лучшую производительность. В других же, таких как AVR, ограничили использование регистров. Для примера: три 16-битных можно трактовать как шесть восьмибитных, где первые 16ть недоступны при некоторых операциях. Я считаю, что лучший метод был выбран MIPS-ом. Это мое сугубо личное мнение.

      Выравнивание

      Что такое выравнивание? Оставлю-ка я этот вопрос вам 🙂

      Конец

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

      Нулевые части будут посвящены теории. Я сомневаюсь что доведу всю серию до победного конца, но попытка не пытка! )

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *