Что такое центральный процессор?
Центральный процессор (ЦПУ) – это аппаратный компонент, который является основным вычислительным блоком сервера. Серверы и другие интеллектуальные устройства преобразуют данные в цифровые сигналы и выполняют над ними математические операции. Центральный процессор является основным компонентом, который обрабатывает сигналы и делает возможными вычисления. Он действует как мозг любого вычислительного устройства. Он извлекает инструкции из памяти, выполняет необходимые задачи и отправляет выходные данные обратно в память. Он выполняет все вычислительные задачи, необходимые для работы операционной системы и приложений.
Как развивалась технология ЦПУ с течением времени?
В самых ранних компьютерах для обработки использовались вакуумные трубки. Такие машины, как ENIAC и UNIVAC, были большими и громоздкими, потребляли много энергии и выделяли значительное количество тепла. Изобретение транзисторов в конце 1940-х годов произвело революцию в технологии ЦПУ. Транзисторы заменили вакуумные трубки, сделав компьютеры компактнее, надежнее и энергоэффективнее. В середине 1960-х годов были разработаны интегральные схемы, которые объединили несколько транзисторов и других компонентов на одном компьютерном чипе. ЦПУ стали еще меньше и быстрее, что привело к появлению микропроцессоров.
Микропроцессоры
Микропроцессоры объединили весь ЦПУ на одном микрочипе, что сделало компьютеры более доступными и привело к разработке персональных компьютеров. Первоначально ЦПУ могли обрабатывать от 16 до 32 бит данных одновременно. В начале 2000-х годов появились 64-разрядные ЦПУ, которые обеспечивали большую адресацию памяти и поддерживали более интенсивную обработку данных.
По мере увеличения плотности транзисторов повышение производительности одноядерных ЦПУ усложнилось. Вместо этого производители ЦПУ начали использовать архитектуры многоядерных процессоров для интеграции нескольких ядер в один чип.
Современные процессоры
С появлением мобильных устройств энергоэффективность стала играть решающую роль. Теперь производители ЦПУ разрабатывают маломощные и энергоэффективные ЦПУ для современных портативных устройств, таких как смартфоны и планшеты.
По мере распространения задач, связанных с искусственным интеллектом и графической обработкой, для обработки рабочих нагрузок стали использоваться специализированные ЦПУ, такие как графические процессоры и ускорители искусственного интеллекта.
Непрерывные исследования и разработки в области нанотехнологий и материаловедения проложили путь к созданию микроскопических транзисторов и более мощных ЦПУ. Квантовые вычисления и другие новые технологии могут способствовать дальнейшему развитию компьютерных процессорных технологий.
Из каких компонентов состоит ЦПУ?
ЦПУ – это сложная электронная схема, состоящая из нескольких ключевых компонентов, обрабатывающих данные и исполняющих инструкции. Ниже описаны основные компоненты ЦПУ.
Блок управления
Блок управления контролирует обработку инструкций и координирует поток данных внутри процессора и между другими компьютерными компонентами. Он содержит декодировщик команд, который интерпретирует инструкции, извлеченные из памяти, и преобразует их в микрооперации, которые может выполнить процессор. Блок управления направляет другие компоненты процессора на выполнение необходимых операций.
Регистры
Регистры – это небольшие высокоскоростные места хранения внутри процессора. Они содержат данные, с которыми работает процессор в данный момент, и обеспечивают к ним быстрый доступ. Процессоры имеют несколько типов регистров, в частности такие:
- регистры общего назначения, содержащие оперативные данные;
- регистры инструкций, содержащие текущую обрабатываемую инструкцию;
- счетчик команд, содержащий адрес памяти следующей инструкции, которую нужно извлечь.
Регистры обеспечивают более быстрый доступ к данным по сравнению с другими уровнями памяти, такими как ОЗУ или кэш-память.
ALU
Арифметико-логическое устройство (ALU) выполняет над данными основные арифметические (сложение, вычитание, умножение и деление) и логические операции (AND, OR и NOT). Оно получает данные из регистров процессора, обрабатывает их на основе инструкций блока управления и выдает результат.
Блок управления памятью
Процессор может быть оснащен отдельным интерфейсным блоком или блоком управления памятью в зависимости от его архитектуры. Эти компоненты выполняют задачи, связанные с памятью, такие как управление взаимодействием процессора и оперативной памяти. Этот компонент также управляет кэш-памятью, небольшим блоком быстрой памяти, расположенным внутри процессора, и виртуальной памятью, используемой процессором для обработки данных.
Генератор синхроимпульсов
Процессор использует тактовый сигнал для синхронизации внутренних операций. Генератор синхроимпульсов вырабатывает устойчивые импульсы с определенной частотой, и эти тактовые циклы координируют операции процессора. Тактовая частота измеряется в герцах (Гц) и определяет количество команд, которое процессор может выполнять в секунду. Современные процессоры имеют переменную тактовую частоту, которая регулируется в зависимости от рабочей нагрузки, для сбалансирования производительности и энергопотребления.
Каков принцип работы ЦПУ?
Компьютерные процессоры работают на базе других аппаратных компонентов и программного обеспечения для обработки данных и управления потоком информации в электронных устройствах. Обычно они работают циклически, при этом каждый цикл команд представляет собой три основных этапа.
Цикл базового процессора
Ниже приведены основные этапы цикла команд.
Выборка команд
ЦПУ получает команды из памяти. Команды – это двоичные коды, представляющие конкретные задачи или операции ЦПУ. Блок управления интерпретирует команду и определяет операцию, которую необходимо выполнить. При этом также определяются конкретные компоненты ЦПУ, необходимые для выполнения задачи.
Обработка команд
ЦПУ выполняет указанную операцию с полученными данными. Он выполняет математические вычисления, логические сравнения, манипуляции с данными или передачу данных между регистрами или ячейками памяти.
Хранение результатов
После выполнения команд ЦПУ может потребоваться сохранить результаты в памяти или обновить определенные регистры новыми данными. Счетчик команд обновляется и указывает адрес следующей команды, которую нужно получить. ЦПУ повторяет цикл и последовательно загружает, декодирует и выполняет команды.
Дополнительные функции процессора
ЦПУ также может обрабатывать команды потока управления, такие как переходы и ответвления, а также прерывания, сигналы, генерируемые внешними устройствами, или события, требующие немедленного внимания. При прерывании ЦПУ временно приостанавливает выполнение текущей задачи, сохраняет ее состояние и переходит к процедуре обслуживания прерываний. После обработки прерывания ЦПУ возобновляет выполнение предыдущей задачи.
Современные ЦПУ часто используют такие методы, как параллелизм и конвейерная обработка команд, для повышения производительности. Несколько команд могут одновременно находиться на разных стадиях цикла, что позволяет более эффективно использовать ресурсы ЦПУ.
Каковы расширенные функции ЦПУ?
Лучший ЦПУ отличается производительностью, эффективностью и гибкостью, что позволяет эффективно выполнять широкий спектр вычислительных задач. Далее мы опишем несколько дополнительных функций.
Ядра
Ранее одноядерный процессор был стандартным решением, однако сегодня все ЦПУ имеют несколько физических ядер. Ядро – это отдельный процессор в ЦПУ. Большее количество ядер позволяет ЦПУ обрабатывать несколько потоков (последовательностей команд) параллельно, что значительно повышает общую производительность. Приложения могут использовать преимущества многоядерной архитектуры, разделяя задачи на более мелкие подзадачи, которые можно выполнять одновременно.
Гиперпоточность
Гиперпоточность – это одновременная многопоточная реализация, разработанная Intel, которая позволяет каждому ядру ЦПУ запускать несколько потоков одновременно. Таким образом, каждое физическое ядро в операционной системе имеет вид двух виртуальных ядер. Программное обеспечение более эффективно использует доступные аппаратные ресурсы.
Расширенные наборы команд
Современные ЦПУ также оснащены расширенными наборами команд и технологиями, предназначенными для ускорения выполнения определенных задач. Эти наборы команд выходят за рамки фундаментальных арифметических и логических операций и предоставляют дополнительные возможности для более эффективной обработки сложных вычислений.
Например, ЦПУ могут включать наборы команд, специально предназначенных для описанных ниже задач.
- Мультимедийные задачи, такие как декодирование видео, кодирование звука и обработка изображений.
- Алгоритмы шифрования и дешифрования, такие как AES и SHA.
- Задачи типа SIMD, требующие одновременного выполнения ЦПУ одной и той же операции с большими наборами данных. Это такие задачи, как графический рендеринг, научное моделирование и цифровая обработка сигналов.
- Виртуализация, позволяющая виртуальным машинам (VM) работать более эффективно.
- Рабочие нагрузки ИИ, такие как операции с нейронными сетями.
Как AWS обеспечивает соответствие вашим требованиям к процессорам?
У Amazon Web Services (AWS) предлагает решения для реализации ваших требований к процессорам.
Эластичное вычислительное облако Amazon (Amazon EC2) предлагает самую масштабную и разноплановую вычислительную платформу. Она насчитывает более 600 инстансов и позволяет выбрать новейший процессор, систему хранения данных, сетевую систему, операционную систему и модель покупки, которые помогут вам наилучшим образом удовлетворить потребности вашей рабочей нагрузки. Мы первый крупный облачный провайдер, который поддерживает работу процессоров Intel, AMD и Arm, а также единственное облако с инстансами EC2 Mac по требованию.
При использовании Amazon EC2 вы мгновенно получаете следующие преимущества:
- лучшее соотношение цены и производительности машинного обучения, а также самая низкая стоимость инстансов логических выводов в облаке;
- возможность выбора оптимального сочетания ЦПУ, памяти, хранилища и сетевых ресурсов для ваших приложений;
- возможность выбора предварительно настроенного шаблона образа машины Amazon (AMI) для мгновенного начала работы.
Начните работу с пользовательскими инстансами и процессорами на AWS, создав аккаунт уже сегодня.
Компьютерная Энциклопедия
Вы здесь: Главная Процессор
Система команд процессора
Система команд процессора
Архитектура ЭВМ
- Базовая организация ЭВМ
- Процессор
- Память. Нижний уровень
- Память. Верхний уровень
- Ввод-вывод
- Кодирование символов
Компоненты ПК
- Устройства вывода информации
- Процессоры
- Системные платы
- BIOS: базовая система ввода-вывода
- Оперативная память
- Накопители на жёстких дисках
- Видеоадаптеры
- Устройства оптического хранения данных
- Аудиоустройства
Интерфейсы
Мини блог
- Операционные системы
- IT
- Сетевые технологии
Самое читаемое
- Арифметико логическое устройство (АЛУ)
- Страничный механизм в процессорах 386+. Механизм трансляции страниц
- Организация разделов на диске
- Диск Picture CD
- White Book/Super Video CD
- Прямой доступ к памяти, эмуляция ISA DMA (PC/PCI, DDMA)
- Карты PCMCIA: интерфейсы PC Card, CardBus
- Таблица дескрипторов прерываний
- Разъемы процессоров
- Интерфейс Slot A
Поставка специальной обуви для рабочих ООО Профессионал.
Процессор
Система команд процессора
Подробности Родительская категория: Процессор Категория: Система команд процессора
Хотя наборы команд, реализованных в разных процессорах, различаются по количеству и перечню команд, по способам кодирования, по длине команд и по времени их выполнения, в системах команд разных процессоров есть весьма много общего. Знание этих общих свойств помогает быстрее освоить программирование нового процессора.
Разработчики процессора стремятся включить в систему команд прежде всего те действия, которые чаще требуются программистам. При этом наиболее часто требуемые действия стремятся реализовать в более коротких и быстрых командах. Перечень и свойства операций, выполняемых процессорными командами, тесно связаны со свойствами разных видов данных, которые обрабатываются на ЭВМ. Общего в разных системах команд достаточно много. Далее будем рассматривать главным образом это общее, часто упоминая, чем вызваны те или иные различия.
Для описания команд и их действия будем использовать мнемоники, принятые в языке Ассемблера. Язык Ассемблера специфичен для каждого типа процессора, так как включает в себя совокупность символических обозначений процессорных команд и способов адресации. Несмотря на специфичность, в языках Ассемблера для разных процессоров достаточно много общего, как в форме (в синтаксисе) так и в содержании отображаемых конструкциями языка понятий, поскольку и в различных процессорах также имеется много одинаковых, либо похожих свойств.
Примечание!
- Собственно синтаксис Ассемблера, мнемоники команд процессора и способов адресации.
- Управление процессом трансляции (директивы Ассемблера), позволяющее программисту получить программу с нужными свойствами, например, задать требуемое расположение частей программы в памяти и т.п.
- Изучение набора и свойств сервисов используемой операционной системы (стандартных подпрограмм ОС, доступных прикладному программисту).
Для облегчения понимания кратко опишем основные правила записи команд на Ассемблере (они справедливы для многих известных автору Ассемблеров).
1) Как правило, ассемблерная строка однозначно соответствует одной процессорной команде.
2) Команда языка Ассемблера имеет следующую структуру:
Меткаl: КОП Оп1,Оп2,… ;Комментарий
Вот пример команды на языке ассемблера
L1: mov r1, #12A9h ;Загрузка регистра константой
Пояснение: Данный оператор содержит команду пересылки, которая загружает константу 12A9h в регистр процессора r1. Константа задана программистом в виде шестнадцатиричного числа.
Оператор включает в свой состав следующие поля:
- Метка — это символическое обозначение адреса. В мнемонике команды, приведенной выше, метка обозначает адрес, начиная с которого байты данной команды будут расположены в ОЗУ после загрузки программы в память. Имя метки часто используется как операнд в командах переходов. (Замечание 1: метки могут обозначать любой адрес, в том числе и тот, с которого расположен операнд. Замечание 2: конкретное значение физического адреса, соответствующего метке будет определено только после загрузки оттранслированной программы в память. При разных запусках этот физический адрес может получиться различным, если программист не принимает специальных мер по заданию определенного значения для этого адреса.).
- КОП — мнемоническое обозначение кода операции, выполняемой данной командой, например mov — переслать
- Оп1, Оп2,… — символические обозначения операндов, обычно они разделяются запятыми (хотя в некоторых Ассемблерах для разделения операндов используется пробел). Количество операндов в команде может быть различным, в большинстве современных процессоров — от 0 до 3. Если операндов больше, чем один, некоторые из них являются «источниками», а некоторые другие — «приемниками». Например, команда сложения
содержит указания на два операнда-приемника (слагаемые) — op1 и op2, а также указание на элемент данных (sum), куда команде следует поместить результат.
Количество операндов, которые программист может указать в команде, определено отдельно для каждой команды конкретного процессора его разработчиками. Для многих команд делают допустимым несколько форматов (см., например, команду целочисленного умножения imul для процессоров семейства х86).
В Ассемблерах процессоров фирмы Intel, по большей части, операнды-источники записываются левее операндов-приемников. В Ассемблерах других фирм это может быть наоборот. В качестве операнда можно использовать метку, в этом случае метка будет обозначать адрес, с которого располагается в памяти соответствующий операнд.
- Комментарий позволяет программисту записать пояснение к строке, и, как правило, игнорируется транслятором.
3) Хотя каждый процессор имеет свой Ассемблер (соответствующий его системе команд), многие мнемонические обозначения в разных Ассемблерах одинаковы для одинаковых операций. Этот факт сильно облегчает изучение следующего Ассемблера (и процессора), после того, как хотя бы один уже изучен.
4) При записи обозначений операндов используются условные обозначения выбранного программистом способа адресации. Обозначения различных способов адресации в разных ассемблерах также имеют много общего. Мы познакомимся с конкретными обозначениями при рассмотрении способов адресации.
Количество команд для разных типов ЭВМ колеблется от малых десятков до сотен. В таком множестве разобраться достаточно трудно, поэтому для рассмотрения разобьем все команды на группы (проклассифицируем). В разных книгах эта классификация тоже сделана по-разному. Выделяют от 3 до более 10 групп. (Наиболее обозримой для человека является классификация, содержащая на нижележащем уровне от 3 до 8 подклассов).
Команда (процессора)
Команда — элемент программы процессора, исполняемый как единое целое. Машинное слово или их последовательность, кодирующие команду процессора, называются командным словом. Символическое обозначение команды для программиста называется мнемоникой.
Команды состоят из функциональной и адресной части. Функциональная часть часть определяет действия, которые процессор совершает, выполняя команду. Адресная часть определяет, откуда берутся аргументы операции и куда помещается результат.
Командное слово как правило состоит из полей, каждое из которых кодирует определённый аспект команды — это тип выполняемой операции, её особенности, вид и размер операндов, их действительный адрес. Набор полей определяется форматом команды.
Пример — инструкция сложения процессора архитектуры M68000:
ADD.L A6, D2 мнемоника ┌───────┘ │ │ │ │ ┌───┼────┼───┘ соответствие полей слова элементам мнемоники │ │ └─┐ └─────┐ ┌───┴───┬──┴──┬──┴──┬─────┴─────┐ │ КОП │ РГ │ РАЗМ│ ДА │ формат ├───────┼─────┼─────┼─────┬─────┤ │1 1 0 1│0 1 0│0 1 0│0 0 1│1 1 0│ командное слово └───┬───┴──┬──┴──┬──┴──┬──┴──┬──┘ │ │ │ │ └── номер регистра источника (6) ┐ действительный │ │ │ └──────── режим адресации (регистр адресов) ┘ адрес │ │ └────────────── размер и тип приёмника (23 бита, регистр данных) │ └──────────────────── номер регистра приёмника (2) └─────────────────────────── код операции
- Процессоры
- Программирование
Система команд
Помимо выполнения самих операций и организации последовательности их выполнения, необходимо научится записывать операции на каком-то языке, который был бы понятен процессору. Таким языком является система команд процессора. Каждая команда должна определять, какое очередное действие должен выполнить процессор, какую именно операцию и над какими данными следует выполнить, или же, как необходимо изменить последовательность выполнения операций.
Кодировать команды процессора можно различными способами, в зависимости от разрядности процессора, а также от наличия и свойств некоторых внутренних объектов процессора. Формат команды обычно соответствует разрядности процессора – если процессор, к примеру, 8-разрядный, то и основные команды тоже должны быть восьмиразрядными. Если процессор 32-разрядный, то и команда должна быть 32-разрядной. Чтобы сформулировать некоторые команды, разрядности процессора может не хватить, и тогда команда может состоять из двух слов. Для 8-разрядных процессоров эта ситуация типична, в 32-разрядных – встречается реже.
Трехадресные команды
Если необходимо вычислить, к примеру, сумму двух регистров, то можно сформулировать команду в виде 32 разрядного слова, разбитого на 4 группы разрядов:
Код команды сложения
Адрес регистра, содержащего первое слагаемое
Адрес регистра, содержащего второе слагаемое
Адрес регистра для размещения результата
Это означает, что процессор должен выбрать из регистрового файла первое слагаемое и записать его в один из входных регистров АЛУ. Затем выбрать из регистрового файла второе слагаемое, и поместить его в другой входной регистр. Затем нужно данные с выхода АЛУ записать в регистровый файл. Все три адреса, необходимых для обращения к регистровому файлу, будут содержаться в самой команде. Такой формат команды называется трехадресным, и наиболее удобен для понимания. 32-разрядного слова вполне достаточно, для этого формата. Если разбить 32 разряда на 4 равные группы, в каждой группе будет по 8 разрядов. При помощи 8 разрядов можно закодировать 256 различных значений, значит, регистров у такого процессора может быть 256, и самих команд тоже может быть 256. Однако если попробовать 8-разрядную команду сделать трехадресной, получится плохо – в группе будет по 2 разряда, значит регистров может быть 4, и команд тоже может быть только четыре. Или, если сделать группы неодинаковыми, то можно закодировать 16 команд, но регистров тогда можно будет указывать только два. Поэтому такой формат предпочтительнее для процессоров с разрядностью 32 и более.
Двухадресные команды
Если нужно уложиться в более короткое слово, например 16 разрядов, можно договориться, что результат операции будет записан по адресу, содержащему второе слагаемое. Тогда команда будет выглядеть так:
Код команды сложения
Адрес регистра, содержащего первое слагаемое
Адрес регистра, содержащего второе слагаемое и результат.
В этом случае, процессор должен также последовательно выбрать оба аргумента из регистрового файла, а результат поместить по тому же адресу, где находилось второе слагаемое. Такой формат тоже достаточно удобен, но имеет тот недостаток, что после выполнения операции один из аргументов будет потерян. Хотя во многих случаях это не очень важно. Такой формат команды называется двухадресным. При двухадресном формате команды и разрядности 16 можно закодировать 64 команды (код операции длинной 6 разрядов), которые можно выполнять над 32 регистрами (2 поля по 5 разрядов).
Одноадресные команды
В случае, когда с разрядностью совсем плохо, полезно иметь в процессоре регистр со специальными свойствами – аккумулятор. По конструкции, аккумулятор представляет собой самый обычный регистр. От других регистров он отличается не конструкцией, а своим особым предназначением. Особое предназначение аккумулятора определяется соглашением, согласно которому в качестве одного из аргументов команды всегда используется аккумулятор, и в нем же всегда сохраняется результат выполнения команды. Тогда в самой команде нам потребуется указать только один адрес:
Код команды сложения
Правда, в этом случае могут понадобиться дополнительные команды для помещения другого аргумента в аккумулятор, и для сохранения результата из аккумулятора в каком-либо из регистров. Такой формат команды наименее удобен для восприятия и программирования, но зато позволяет при небольшом объеме регистрового файла уместить многие команды в короткое слово из восьми разрядов и больше всего подходит для восьмиразрядных процессоров. При разрядности 8, такой формат позволяет указывать 16 регистров (4 разряда на адрес регистра) и кодировать 16 различных команд (4 разряда на код операции).