Модуль центрального процессора это

Обновлено: 03.07.2024

Модуль центрального процессора ( МЦП) выполняет логическую и арифметическую обработку информации, управляет внешними утройствами. Модуль центрального процессора функционально и электрически формирует интерфейс; содержит 2К байт постоянной памяти для хранения программ и констант и 1К байт оперативной памяти для хранения текущих результатов обработки. Допускается отключение ПЗУ и ОЗУ МЦП от интерфейса посредством переключателя сигналов управления. В этом случае все адресное поле предоставляется памяти внешней по отношению к МЦП. Постоянная память реализована на микросхемах К556РТ4, соединение микросхем с печатной платой - разъемное, модуль содержит два комплекта микросхем - свободнмй и с записанным монитором программного обеспечения. Модуль состоит из двух БЭ, устанавливается на определенное двойное место в монтажном блоке.  [3]

Модули центральных процессоров В-7500 ( индексы В-7504 и В-7506) работают на частоте 10 Мгц и обладают быстродействием свыше миллиона операций в секунду. Аппаратура выполнена на интегральных схемах среднего уровня интеграции. В-6500, могут одновременно работать два модуля центральных процессоров. Системы, построенные с использованием модулей 7500, могут содержать до восьми процессоров, но реально существующие системы не содержат более четырех процессоров. Максимальный объем оперативной памяти на ферри-товых сердечниках, который может быть включен в однопроцессорную или многопроцессорную систему, может составлять 524288 слов. Оперативная память разбита на модули объемом в 16384 слова. Модули оперативной памяти на ферритах имеют время полного цикла 1 2 мксек. Кроме того, оперативная память может быть построена из модулей на тонких пленках со временем цикла 600 наносекунд.  [4]

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

Основой функционального построения БЭВМ являются модуль центрального процессора и модуль системного контроля, которые обеспечивают логическую и арифметическую обработку информации, управляют работой устройств ввода - вывода в режиме опроса, обработки прерываний и по прямому доступу в память.  [6]

Монитор-отладчик MONID размещен в постоянной памяти модуля центрального процессора СМ-1800 с нулевого адреса. При включении комплексов СМ-1803 и нажатии клавиши СБРОС управление передается монитору-отладчику. Монитор-отладчик реализует инициализацию системных периферийных устройств ( видеотерминала и накопителя на гибких магнитных дисках) и далее переходит в командный режим. Пользователь имеет возможность вводить отладочные команды либо загрузить необходимую программу с дискеты программ. Если в оперативной памяти микроЭВМ размещена отлаживаемая программа ( что может быть сделано, например, с помощью утилиты LOAD), то имеются средства для ее запуска с введением точки останова. По достижении точки останова в исполняемой отлаживаемой программе управление вновь возвращается в MONID. Оператор может исследовать содержимое памяти и регистров микропроцессора и при необходимости изменить их. Выполнение прерванной в точке останова программы может быть возобновлено с любого места, в том числе и с адреса останова.  [7]

Модульное построение системы обеспечивает следующий набор: модуль центрального процессора , дополнительные модули памяти, модули интерфейса, модули расширения системы и рамы для размещения блоков элементов.  [8]

Базовый комплект ( ядро ремиконта) содержит: модуль центрального процессора ( ЦП); модуль управления и сигнализации; модуль интерфейсной связи; модуль стабилизатора и модуль питания. Модули базового комплекта выполнены в стандарте ISI. Ремиконты имеют полное и половинное конструктивные исполнения: полное - в одном блочном каркасе 19 размещается один базовый комплект и до 16 модулей УСО; половинное - один каркас содержит два базовых комплекта и до пяти модулей УСО к каждому базовому комплекту.  [9]

Блок вторичной аппаратуры сбора информации СПРУТ-1000 состоит из модуля центрального процессора , внутренней шины адреса / данных и шести модулей обработки сигналов: обработки аналоговых сигналов ( минимально 15 входов), нормализации частотных сигналов, обработки сигналов расходомеров, обработки сигналов до четырех плотномеров, обработки сигналов ТПУ ( максимально с четырьмя детекторами), обработки статусных сигналов.  [10]

Плата в единственном экземпляре имелась в ЗИП, но один экземпляр такого важного устройства на 17 модулей центральных процессоров контроллеров фирмы Octagon Systems не позволяет обеспечивать безаварийность работы САУ на должном уровне.  [11]

Имеет три исполнения - с комплектом свободных микросхем, с записанным базовым комплектом тестов и с записанным тестом модуля центрального процессора . Состоит из одного блока элементов; устанавливается на любое место в базовой ЭВМ или блоке расширения.  [12]

Базовая модель СМ-1801 в каркасном исполнении встраивается в установки заказчика и состоит из монтажного блока для 10 печатных плат модулей центрального процессора и системного контроля. Базовая ЭВМ СМ-1802 представляет собой автономный комплектный блок в приборном исполнении и предназначена для научных экспериментов и создания автоматизированных лабораторных систем.  [13]

Контроллер строится на базе микропроцессорных семейств се рий К580 и К589 ( в качестве ЗУ используются БИС серий К565 N К558) и состоит ( рис. 2) из модуля центрального процессора ( ЦПЭ К1380ИИВО) о генератором тактовых импульсов ( ГТК) и регистром состояний ( PG К589ИР12), иинных формирователей ( 1 § К589ЛП26), схемы управления работой контроллера ( СУК) и схемы управления вводом-выводом ( СУВВ, модулей ОЗУ и ПЗУ, схемы прямого доступа к памяти ( ПДП), блока приоритетного прерывания ( БЩ1 К589ИКИ) со схемой разделения по приоритетам ( СРП), параллельных ( ПИ К580ИК55) и последовательного ( ПоИ К580ЙК51) интерфейсов, аналого-цифрового преобразователя АЦП) и преобразователя Код-временной интервал ( ПКВИ) с коммутаторами-пульта оперативного управления с устройством отображения ин - формации, модема.  [14]

Модуль центрального процессора ( МЦП) выполняет логическую и арифметическую обработку информации, управляет внешними утройствами. Модуль центрального процессора функционально и электрически формирует интерфейс; содержит 2К байт постоянной памяти для хранения программ и констант и 1К байт оперативной памяти для хранения текущих результатов обработки. Допускается отключение ПЗУ и ОЗУ МЦП от интерфейса посредством переключателя сигналов управления. В этом случае все адресное поле предоставляется памяти внешней по отношению к МЦП. Постоянная память реализована на микросхемах К556РТ4, соединение микросхем с печатной платой - разъемное, модуль содержит два комплекта микросхем - свободнмй и с записанным монитором программного обеспечения. Модуль состоит из двух БЭ, устанавливается на определенное двойное место в монтажном блоке.  [15]

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

Содержание:

Что такое процессор и как он устроен

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

Уже много лет основными производителями процессоров являются американские компании Intel и AMD (Advanced Micro Devices). Есть, конечно, и другие достойные производители, но до уровня указанных лидеров им далеко.

Как выглядит процессор компьютера

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

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

Как изготавливают процессоры. Что такое техпроцесс

Основным материалом при производстве процессоров является самый обычный песок, а точнее сказать кремний, коего в составе земной коры около 30%. Из очищенного кремния сначала изготавливают большой монокристалл цилиндрической формы, который разрезают на "блины" толщиной около 1 мм.

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

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

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

Сегодняшние технологии позволяют создавать транзисторы размером всего 22 нанометра (толщина человеческого волоса - около 50000 нм). Со временем техпроцесс изготовления процессоров станет еще совершеннее. По прогнозам, их транзисторы уменьшатся как минимум до 14 нм.

Чем тоньше техпроцесс – тем больше транзисторов можно поместить в один процессор, тем он будет производительнее и энергоэффективнее.

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

Понятие архитектуры, ядра, ревизии процессора

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

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

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

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

Архитектурам и ядрам присваиваются определенные имена, а их ревизиям – цифробуквенные обозначения. Например, все модели Intel Core 2 Duo являются процессорами микроархитектуры Intel Core и производились с ядрами Allendale, Conroe, Merom, Kentsfield, Wolfdale, Yorkfield. У каждого из этих ядер были еще и разные ревизии.

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

Количество вычислительных ядер.

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

Многоядерность, как способ повышения производительности процессоров, используется с относительно недавнего времени, но признана самым перспективным направлением их развития. Для домашних компьютеров уже существуют процессоры с 8 ядрами. Для серверов на рынке есть 12-ядерные предложения (Opteron 6100). Разработаны прототипы процессоров, содержащие около 100 ядер.

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

Количество потоков.

Чем больше потоков – тем лучше. Количество потоков не всегда совпадает с количеством ядер процессора. Так, благодаря технологии Hyper-Threading, 4-ядерный процессор Intel Core i7-3820 работает в 8 потоков и во многом опережает 6-тиядерных конкурентов.

Размер кеша 2 и 3 уровней.

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

Структура не всех современных процессоров предусматривает наличие кеша 3 уровня, хотя критичным моментом это не является. Так, по результатам многих тестов производительность процессоров Intel Core 2 Quadro, выпускавшихся с 2007 г. по 2011 г. и не имеющих кеша 3 уровня, даже сейчас выглядит достойно. Правда, кеш 2 уровня у них достаточно большой.

Частота процессора.

Здесь все просто – чем выше частота процессора, тем он производительнее.

Скорость шины процессора (FSB, HyperTransport или QPI).

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

Техпроцесс.

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

Termal Design Point - показатель, отображающий энергопотребление процессора, а также количество тепла, выделяемого им в процессе работы. Единицы измерения - Ватты (Вт). TDP зависит от многих факторов, среди которых главными являются количество ядер, техпроцесс изготовления и частота работы процессора.

Кроме прочих преимуществ, "холодные" процессоры (с TDP до 100 Вт) лучше поддаются разгону, когда пользователь изменяет некоторые настройки системы, вследствие чего увеличивается частота процессора. Разгон позволяет без дополнительных финансовых вложений увеличить производительность процессора на 15 – 25 %, но это уже отдельная тема.

В то же время, проблему с высоким TDP всегда можно решить приобретением эффективной системы охлаждения (см. последний пункт этой статьи).

Наличие и производительность видеоядра.

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

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

Тип и максимальная скорость поддерживаемой оперативной памяти.

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

Что такое сокет

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

Сокет (socket, разъем центрального процессора) – это щелевой или гнездовой разъём на материнской плате, в который устанавливается процессор.

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

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

Для процессоров Intel длительное время использовался (и сейчас еще используется) сокет LGA775 (процессоры Pentium 4, Pentium D, Celeron D, Pentium EE, Core 2 Duo, Core 2 Extreme, Celeron, Xeon серии 3000, Core 2 Quad). С началом производства линейки новых процессоров были введены сокеты LGA1366, LGA1156, LGA1155 (процессоры i7, i5, i3) и др.

Разъемы для процессоров от AMD за последние годы также изменились - AM2, AM2+, AM3 и т.д. О более ранних сокетах, думаю, смысла вспоминать нет, поскольку компьютеры на их основе – уже раритет.

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

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

Система охлаждения процессора


Как выглядит куллер процессора

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

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

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

При подборе системы охлаждения процессора нужно учитывать его TDP (рассматривалось выше в пункте о характеристиках процессора).

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

Нормальная температура работы процессора - до 50 градусов Цельсия (при пиковых нагрузках возможно чуть больше). Средства измерения температуры встроены в центральный процессор. При помощи специальных программ температуру можно отслеживать в режиме реального времени (например, программой SpeedFan).

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

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

В этой статье мы рассмотрим, что такое процессор CPU, какие у него функции и из чего он состоит.

В каждом вычислительном устройстве (ПК, смартфон, фотоаппарат) есть центр, который отвечает за правильную работу машины ― процессор.

В широком смысле процессор ― это устройство, которое выполняет вычислительные и логические операции с данными. Чаще всего этот термин используется для обозначения центрального процессора устройства. Расшифровка CPU ― Central Processing Unit (центральное обрабатывающее устройство). Это самая важная часть компьютера. Его мозг. Он выглядит как квадрат размером приблизительно 5x5 см:

Что значит CPU на процессоре

Что значит CPU на процессоре

С обратной стороны CPU находятся ножки, с помощью которых он крепится к материнской плате:

Назначение и характеристика процессора

Назначение и характеристика процессора

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

Функции CPU

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

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

Из чего состоит CPU

Центральный процессор состоит из 3-х частей:

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

Каждое ядро может выполнять только одну задачу, хоть и за долю секунды. Одноядерный процессор выполняет каждую задачу последовательно. Для современного объёма операций этого мало, поэтому ценятся CPU с более чем одним ядром, чтобы выполнять несколько задач одновременно. Например, двухъядерный выполняет две задачи одновременно, трехъядерный ― три и т. д.

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


Главной характеристикой процессора является производительность. Она зависит от двух параметров: тактовая частота и разрядность.

Тактовая частота ― число выполненных операций в секунду. Измеряется в мегагерцах (МГц — миллион тактов в секунду ) и гигагерцах (ГГц — миллиард тактов в секунду). Чем больше тактовая частота, тем быстрее работает машина.

Разрядность ― количество информации (байт), которое можно передать за такт. Разрядность процессора бывает 8, 16, 32, 64 бита. Современные процессоры 32-х и 64-битные.

Производители CPU

На рынке есть два основных производителя центральных процессоров ― Intel и AMD.


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

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

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

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


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

IF — получение инструкции,
ID — расшифровка инструкции,
EX — выполнение,
MEM — доступ к памяти,
WB — запись в регистр.

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

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

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

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

В видеокартах часто встречается много ядер и из-за этой особенности появилась потребность в дополнительных решениях. Если конвейеры можно встретить даже в микроконтроллерах то решения используемых в 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.

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

Status

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

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

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

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

Endianness

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

128/64/32

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

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

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

Cache

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

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

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

Stack

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

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

Регистры

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

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

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

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

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

Читайте также: