Как называется программа, управляющая оперативной памятью процессора с внешними устройствами

Обновлено: 21.11.2024

Центральный процессор (ЦП) направляет компьютер на различные этапы решения проблемы.

Связанные термины:

Скачать в формате PDF

Об этой странице

Адаптация и оценка симплексного алгоритма для архитектуры потока данных

Урош Чибей, Юрий Михелич, Достижения в области компьютеров, 2017

2.2 Вид программиста

Чтобы программист мог разработать законченную программу, необходимо написать три компонента.

обычно написанный на языке программирования C, код ЦП управляет выполнением и использует DFE в качестве блока обработки, вызывая подходящие функции, предоставляемые компилятором Maxeler.

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

Менеджер — это компонент, который соединяет потоки данных от ЦП к ядрам-получателям и наоборот. Он устанавливает соединения между ядрами и LMem, а также связывает ядра между собой. Диспетчер также создает интерфейсы, с помощью которых код ЦП взаимодействует с DFE.

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

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

Схема этой архитектуры представлена ​​на рис. 1.

Рис. 1 . Схематический обзор компонентов системы потока данных. серая рамка обозначает микросхему FPGA. Взгляд программиста на архитектуру показан в виде файлов, которые необходимо реализовать для каждой программы, файл .maxj написан на языке MaxJ, тогда как поток управления обычно написан на C или C++, но поддерживаются и другие языки. .

КОМПЬЮТЕРНЫЙ ДИЗАЙН

Доминик Росато, Дональд Росато, Дизайн изделий из пластмассы, 2003 г.

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

Центральный процессор компьютера (ЦП) — это часть компьютера, которая извлекает и выполняет инструкции. Процессор, по сути, является мозгом CAD-системы. Он состоит из арифметико-логического блока (АЛУ), блока управления и различных регистров. Центральный процессор часто называют просто процессором. АЛУ выполняет арифметические операции, логические операции и связанные с ними операции в соответствии с инструкциями программы.

Блок управления управляет всеми операциями ЦП, включая операции АЛУ, перемещение данных внутри ЦП, а также обмен данными и управляющими сигналами через внешние интерфейсы (системную шину). Регистры — это быстродействующие блоки внутренней памяти ЦП. Некоторые регистры видны пользователю; то есть доступный для программиста через набор машинных инструкций. Другие регистры предназначены исключительно для ЦП в целях управления. Внутренние часы синхронизируют все компоненты ЦП. Тактовая частота (количество тактовых импульсов в секунду) измеряется в мегагерцах (МГц) или миллионах тактовых импульсов в секунду. Тактовая частота, по сути, определяет, насколько быстро ЦП обрабатывает инструкции.

Оборудование

Центральный процессор управляет всем. Он извлекает программные инструкции по своей шине «на стороне инструкций» (IS), считывает данные по своей шине «на стороне данных» (DS), выполняет инструкции и записывает результаты на шину DS. ЦП может работать на частоте SYSCLK до 80 МГц, что означает, что он может выполнять одну инструкцию каждые 12,5 нс. ЦП способен умножать 32-разрядное целое число на 16-разрядное целое число за один цикл или 32-разрядное целое число на 32-разрядное целое число за два цикла. Блока с плавающей запятой (FPU) нет, поэтому вычисления с плавающей запятой выполняются программными алгоритмами, что делает операции с плавающей запятой намного медленнее, чем вычисления с целыми числами.

ЦП представляет собой ядро ​​микропроцессора MIPS32® M4K®, лицензированное компанией Imagination Technologies. ЦП работает при напряжении 1,8 В (обеспечиваемом стабилизатором напряжения, встроенным в PIC32, поскольку он используется на плате NU32). Контроллер прерываний, обсуждаемый ниже, может уведомлять ЦП о внешних событиях.

Встроенные процессоры

Внутренние шины ЦП

Шины ЦП — это механизмы, соединяющие другие компоненты ЦП: АЛУ, ЦП и регистры (см. рис. 4-22). Шины — это просто провода, которые соединяют между собой различные другие компоненты ЦП.Провод каждой шины обычно делится на логические функции, такие как данные (которые переносят данные в двух направлениях между регистрами и АЛУ), адрес (который переносит расположение регистров, содержащих данные для передачи), управление (переносит управление информацию о сигналах, такую ​​как временные и управляющие сигналы, между регистрами, ALU и CU) и т. д.

Рисунок 4-22. Ядро и шины PowerPC. [15]

В ядре PowerPC есть управляющая шина, по которой управляющие сигналы передаются между АЛУ, CU и регистрами. То, что PowerPC называет «исходными шинами», — это шины данных, передающие данные между регистрами и АЛУ. Существует дополнительная шина, называемая обратной записью, которая предназначена для обратной записи данных, полученных с исходной шины, непосредственно обратно из модуля загрузки/сохранения в фиксированные регистры или регистры с плавающей запятой.

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

Микрокомпьютерная аппаратура и управление

Чтение/запись памяти

ЦП всегда контролирует направление потока данных в базе данных, поскольку, хотя он и является двунаправленным, данные могут перемещаться только в одном направлении за раз. ЦП выдает специальный сигнал управления чтением/записью (R/W) (рис. 3.2), который активирует схемы в памяти, определяющие направление потока данных. Например, когда линия чтения/записи (R/W) имеет высокий уровень, ЦП передает информацию из ячейки памяти в ЦП.

Временная диаграмма операции чтения из памяти показана на рис. 3.3.

Рис. 3.3. Время чтения/записи.

Предположим, что компьютеру была дана инструкция прочитать данные из ячейки памяти номер 10. Чтобы выполнить операцию чтения, ЦП переводит линию чтения/записи в высокий уровень, чтобы активировать схему памяти при подготовке к операции чтения. Практически одновременно на АБ размещается адрес для местоположения 10 («адрес действителен» на рис. 3.3). В память АБ отправляется число 10 в 16-битном двоичном коде (0000 0000 0000 1010). Двоичные электрические сигналы, соответствующие 10, управляют определенными цепями в памяти, чтобы заставить двоичные данные в этом месте быть помещенными в БД. ЦП имеет внутренний регистр, который активируется во время этой операции чтения для приема и сохранения данных. Затем данные обрабатываются ЦП во время следующего цикла работы в соответствии с соответствующей инструкцией.

Аналогичная операция выполняется всякий раз, когда ЦП должен отправить данные из одного из своих внутренних регистров в память, что является операцией «записи». В этом случае линия R/W будет установлена ​​на логический уровень, противоположный операции чтения (т.е. низкий в данном примере). Во время операции записи отправляемые данные помещаются в БД одновременно с адресом назначения в АВ. Эта операция перенесет данные из источника ЦП в место назначения, которым может быть место в памяти в ОЗУ или внешнее устройство (как будет объяснено позже).

Компьютерные системы

1.3.1 Работа системы

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

Декодер адреса управляет доступом к памяти и регистрам ввода-вывода для конкретного проекта. Как правило, программируемое логическое устройство (PLD) используется для выделения каждой микросхеме памяти определенного диапазона адресов. Код входного адреса в определенном диапазоне генерирует выходной сигнал выбора микросхемы, который включает это устройство. Регистры портов ввода-вывода, которые настроены для обработки передачи данных в систему и из нее, также получают определенные адреса с помощью того же механизма, и ЦП обращается к ним так же, как к ячейкам памяти. Назначение адресов конкретным периферийным устройствам называется картой памяти (рис. 1.6 б).

Процессор

ХАРВИ М. ДЕЙТЕЛЬ, БАРБАРА ДЕЙТЕЛЬ, Введение в обработку информации, 1986 г.

Сводка издателя

Центральный процессор (ЦП) направляет компьютер на различные этапы решения проблемы.Данные поступают в компьютер через блок ввода, обрабатываются центральным процессором и затем становятся доступными для пользователя через блок вывода. Логический вид компьютера показывает, какие функции выполняет компьютер. Физический вид компьютера показывает, как на самом деле механизмы компьютера выполняют эти функции. Центральный процессор состоит из трех логических блоков: арифметико-логического блока (ALU), основного хранилища и блока управления. Основная память сохраняет активные программы и данные. Это относительно дорого, поэтому вторичное хранилище используется для хранения программ и данных до тех пор, пока они не потребуются в основном хранилище. Набор встроенных операций компьютера называется его «набором инструкций». Компьютерная программа представляет собой набор инструкций, которые сообщают компьютеру, как решить конкретную задачу. Компьютерная программа должна находиться в оперативной памяти, чтобы компьютер мог выполнять ее инструкции.

Управление энергопотреблением

5.15.2.4.2.1 Блок процессора

Это центральный процессор (ЦП) ПЛК, то есть микропроцессор по конструкции и функциональным возможностям. Основная функция этого блока состоит в том, чтобы воспринимать входные значения через свои модули ввода/вывода, генерировать управляющие сигналы в соответствии с входными сигналами и предопределенной инструкцией (хранящейся в блоке памяти в виде программы). Затем обработанное решение передается на устройства вывода, подключенные к модулям ввода/вывода, для обновления выходных переменных [51]. Типичный цикл процесса ЦП показан на рис. 40, демонстрирующем основную идею функции процесса. Время одного цикла выполнения программы называется «время сканирования». Типичные значения времени сканирования могут составлять всего 1 м/с. Входные и выходные значения обычно хранятся в единице памяти за цикл или несколько его кратных [53] .

Рис. 40 . Рабочий цикл центрального процессора (ЦП) программируемого логического контроллера (ПЛК).

Беспроводная МЭМС для носимых сенсорных сетей

5.2.2.2 Блок обработки

Рабочие процедуры промышленной системы управления

(1) адресные пространства PCI

ЦП и все устройства PCI должны иметь доступ к общей памяти. Драйверы устройств управляют устройствами PCI и передают информацию между ними, используя эту память. Обычно эта разделяемая память содержит регистры управления и состояния устройства, которые используются для управления устройством и чтения его состояния. Например, драйвер устройства PCI SCSI может прочитать свой регистр состояния, чтобы узнать, готово ли устройство к записи блока информации, или он может записать в управляющий регистр, чтобы запустить устройство после его включения.

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

Периферийные устройства имеют собственные области памяти. ЦП может получить доступ к этим пространствам, но доступ устройств к системной памяти очень строго контролируется с помощью каналов DMA (прямой доступ к памяти). Устройства ISA имеют доступ к двум адресным пространствам; ISA I/O (ввод/вывод) и память ISA. В большинстве современных микропроцессоров PCI должен состоять из трех элементов: ввода-вывода PCI, памяти PCI и пространства конфигурации PCI.

Некоторые микропроцессоры, например процессор Alpha AXP, не имеют естественного доступа к адресным пространствам, отличным от системного адресного пространства. Этот процессор использует наборы микросхем поддержки для доступа к другим адресным пространствам, таким как пространство конфигурации PCI, с помощью схемы разреженного отображения адресов, которая крадет часть большого виртуального адресного пространства и сопоставляет его с адресными пространствами PCI.

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

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

Что такое операционная система?
Операционная система – это программа, в которой выполняются прикладные программы, и которая действует как коммуникационный мост (интерфейс) между пользователем и компьютерным оборудованием.

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

Важные функции операционной системы:

  1. Безопасность
    Операционная система использует защиту паролем для защиты пользовательских данных и другие аналогичные методы. он также предотвращает несанкционированный доступ к программам и пользовательским данным.
  2. Контроль производительности системы
    Контролирует общее состояние системы, чтобы повысить производительность. записывает время отклика между запросами на обслуживание и ответом системы, чтобы иметь полное представление о состоянии системы. Это может помочь повысить производительность, предоставляя важную информацию, необходимую для устранения неполадок.
  3. Учет заданий
    Операционная система отслеживает время и ресурсы, используемые различными задачами и пользователями. Эта информация может использоваться для отслеживания использования ресурсов для конкретного пользователя или группы пользователей.
  4. Вспомогательные средства обнаружения ошибок
    Операционная система постоянно контролирует систему, чтобы обнаруживать ошибки и избегать сбоев в работе компьютерной системы.
  5. Координация между другим программным обеспечением и пользователями
    Операционные системы также координируют и назначают интерпретаторы, компиляторы, ассемблеры и другое программное обеспечение различным пользователям компьютерных систем.
  6. Управление памятью
    Операционная система управляет основной или основной памятью. Основная память состоит из большого массива байтов или слов, где каждому байту или слову присвоен определенный адрес. Оперативная память — это быстрое хранилище, доступ к которому может осуществляться непосредственно ЦП. Чтобы программа могла быть выполнена, она должна быть сначала загружена в оперативную память. Операционная система выполняет следующие действия по управлению памятью:

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

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

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

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

  1. Выполнение программы
    Операционная система отвечает за выполнение всех типов программ, будь то пользовательские или системные программы. Операционная система использует различные ресурсы, доступные для эффективной работы всех типов функций.
  2. Обработка операций ввода/вывода
    Операционная система отвечает за обработку всех видов ввода, т. е. с клавиатуры, мыши, рабочего стола и т. д. входы и выходы.
    Например, существует разница в природе всех типов периферийных устройств, таких как мышь или клавиатура, тогда за обработку данных между ними отвечает операционная система.
  3. Управление файловой системой
    Операционная система отвечает за принятие решений относительно хранения всех типов данных или файлов, т. е. дискета/жесткий диск/флешка и т. д. Операционная система решает, как данные должны обрабатываться и храниться.
  4. Обнаружение и обработка ошибок
    Операционная система отвечает за обнаружение любых типов ошибок или ошибок, которые могут возникнуть при выполнении любой задачи. Хорошо защищенная ОС иногда также выступает в качестве контрмеры для предотвращения любых нарушений компьютерной системы из любого внешнего источника и, возможно, для их обработки.
  5. Распределение ресурсов
    Операционная система обеспечивает надлежащее использование всех доступных ресурсов, решая, какой ресурс должен использоваться кем и как долго. Все решения принимаются операционной системой.
  6. Учет
    Операционная система отслеживает учет всех функций, выполняемых в компьютерной системе одновременно. Все подробности, такие как типы возникших ошибок, записываются операционной системой.
  7. Защита информации и ресурсов
    Операционная система отвечает за наиболее защищенное использование всей информации и ресурсов, доступных на компьютере. Операционная система должна препятствовать попыткам любого внешнего ресурса заблокировать какие-либо данные или информацию.

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

Вклады и атрибуции

Эта страница находится под лицензией CC BY-SA, автором, ремиком и/или куратором которой является Патрик МакКланахан. Подробная история версий изменений исходного контента доступна по запросу.

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

ИТ-руководители начали год с ветерком в спину, опираясь на инвестиции, сделанные во время пандемии, и вновь сосредоточившись на .

Определения метавселенной различаются, как и прогнозы относительно того, когда она появится. Но умные ИТ-директора должны ознакомиться с .

Продавец средств аутентификации Okta стал последним технологическим гигантом, который стал жертвой плодовитой команды Lapsus$ благодаря ключевым деталям .

Корпоративный бизнес финского поставщика систем безопасности начинается сам по себе как новый бренд под названием WithSecure, в то время как F-Secure будет .

Предупреждение президента Джо Байдена о потенциальных атаках России на важнейшую инфраструктуру США является последним призывом к действию для .

Сетевые архитектуры 4G и 5G имеют некоторые существенные различия. Посмотрите, чем отличаются две технологии и что нового .

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

DevOps, NetOps и NetSecOps. о боже! У этих ИТ-концепций есть свои отличия, но, в конце концов, они — одна семья. .

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

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

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

Хранилище данных Apache Pinot OLAP с открытым исходным кодом стало проще в развертывании, управлении и эксплуатации в облаке благодаря улучшенному .

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

Платформа RKVST поддерживает несколько типов приложений для работы с данными на блокчейне, включая безопасный обмен данными SBOM для обеспечения кибербезопасности.

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

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

Центральный процессор (ЦП)

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

Ранние компьютеры имели только один ЦП и могли выполнять только одну задачу за раз.

Сегодня мы сохраняем термин ЦП, но теперь он относится к процессорному пакету на типичной материнской плате. На рис. 1 показан стандартный пакет процессоров Intel.

Рис. 1. Процессор Intel Core i5 (Джуд МакКрени, Wikimedia Commons, CC BY-SA 4.0).

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

Как работает процессор

Давайте рассмотрим ЦП более подробно. На рис. 2 представлена ​​концептуальная схема гипотетического ЦП, позволяющая упростить визуализацию компонентов. ОЗУ и системные часы заштрихованы, поскольку они не являются частью ЦП и показаны только для ясности. Кроме того, никакие связи между часами ЦП и блоком управления с компонентами ЦП не используются. Достаточно сказать, что сигналы часов и блока управления являются неотъемлемой частью любого другого компонента.

Рисунок 2. Упрощенная концептуальная схема типичного процессора.

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

Арифметико-логическое устройство

Арифметико-логическое устройство (АЛУ) выполняет арифметические и логические функции, за которые отвечает компьютер. A и B регистры содержат входные данные, а накопитель получает результат операции. Регистр инструкций содержит инструкцию, которую должен выполнить АЛУ.

Например, при добавлении двух чисел одно число помещается в регистр A, а другое — в регистр B. АЛУ выполняет сложение и помещает результат в аккумулятор. Если операция логическая, сравниваемые данные помещаются в регистры ввода. Результат сравнения, 1 или 0, помещается в аккумулятор. Независимо от того, является ли это логической или арифметической операцией, содержимое накопителя затем помещается в кэш-память, зарезервированную программой для результата.

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

Регистр инструкций и указатель

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

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

Кэш

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

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

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

Наш простой ЦП имеет три уровня кэша. Уровни 2 и 3 предназначены для прогнозирования того, какие данные и программные инструкции потребуются в следующий раз, для перемещения этих данных из ОЗУ и перемещения их как можно ближе к ЦП, чтобы они были готовы, когда это необходимо. Эти размеры кэша обычно варьируются от 1 МБ до 32 МБ в зависимости от скорости и предполагаемого использования процессора.

Кэш уровня 1 расположен ближе всего к центральному процессору. В нашем процессоре есть два типа кеша L1. L1i — это кэш инструкций, а L1d — кэш данных. Размер кэша уровня 1 обычно составляет от 64 КБ до 512 КБ.

Блок управления памятью

Блок управления памятью (MMU) управляет потоком данных между основной памятью (ОЗУ) и ЦП. Он также обеспечивает защиту памяти, необходимую в многозадачных средах, и преобразование адресов виртуальной памяти в физические адреса.

Часы процессора и блок управления

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

Оперативная память (ОЗУ)

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

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

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

Базовый цикл инструкций ЦП выглядит следующим образом.

Рисунок 3. Базовый цикл инструкций ЦП.

Потребность в скорости

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

Ускорение цикла инструкций

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

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

Рисунок 4. Цикл инструкций ЦП с перекрытием.

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

Тем не менее, это мощная стратегия повышения производительности ЦП.

Гиперпоточность

Еще одна стратегия повышения производительности ЦП — гиперпоточность. Гиперпоточность заставляет одно ядро ​​процессора работать как два процессора, предоставляя два потока данных и инструкций. Добавление второго указателя инструкций и регистра инструкций к нашему гипотетическому ЦП, как показано на рис. 5, заставляет его функционировать как два ЦП, выполняя два отдельных потока инструкций в течение каждого командного цикла. Кроме того, когда один поток выполнения останавливается в ожидании данных (опять же, инструкции также являются данными), второй поток выполнения продолжает обработку. Каждое ядро, реализующее гиперпоточность, эквивалентно двум ЦП по способности обрабатывать инструкции.

Рис. 5. Концептуальная схема ЦП с технологией Hyper-Threading.

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

Дополнительная терминология

Я столкнулся с множеством различных терминов ЦП.Чтобы более точно определить терминологию, давайте посмотрим на сам ЦП с помощью команды lscpu.

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

  • Ядро. Ядро — это наименьшая единица физического оборудования, способная выполнять задачу обработки. Он содержит одно АЛУ и один или два набора вспомогательных регистров. Второй набор регистров и поддерживающих схем обеспечивает гиперпоточность. Одно или несколько ядер можно объединить в один физический пакет.
  • ЦП. Логический аппаратный блок, способный обрабатывать один поток выполнения. Современное использование термина центральный процессор относится к общему количеству потоков, которые процессорный пакет может выполнять одновременно. Одноядерный процессор, не поддерживающий гиперпоточность, эквивалентен одному процессору. В этом случае ЦП и ядро ​​являются синонимами. Процессор Hyper-Threading с одним ядром является функциональным эквивалентом двух процессоров. Процессор с поддержкой технологии Hyper-Threading с восемью ядрами функционально эквивалентен 16 процессорам.
  • Пакет – физический компонент, содержащий одно или несколько ядер, как показано на рис. 1 выше.
  • Процессор. 1) Устройство, которое обрабатывает инструкции программы для обработки данных. 2) Часто используется как синоним пакета.
  • Сокет. Иногда используется как синоним пакета, но более точно относится к физическому сокету на материнской плате, в который вставляется корпус процессора.

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

Обратите внимание, что указанный выше процессор имеет два кэша уровня 1 по 512 КиБ каждый: один для инструкций (L1i) и один для данных (L1d). Кэш уровня 1 находится ближе всего к ЦП, и он ускоряет работу, разделяя инструкции и данные на этом этапе. Кэши уровня 2 и уровня 3 больше, но инструкции и данные сосуществуют в каждом из них.

Что все это значит?

Хороший вопрос. На заре мейнфреймов каждый компьютер имел только один ЦП и не мог одновременно запускать более одной программы. Мейнфрейм может выполнять расчет заработной платы, затем учет запасов, затем выставление счетов клиентам и т. д., но одновременно может выполняться только одно приложение. Каждая программа должна была завершиться, прежде чем системный оператор мог запустить следующую.

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

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

Все современные компьютеры, от смарт-часов и планшетов до суперкомпьютеров, поддерживают настоящую многозадачность с несколькими процессорами. Наличие нескольких процессоров позволяет компьютерам выполнять множество задач одновременно. Каждый ЦП выполняет свои функции одновременно со всеми остальными ЦП. Восьмиъядерный процессор с технологией Hyper-Threading (т. е. 16 ЦП) может одновременно выполнять 16 задач.

Заключительные мысли

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

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

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

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