С какого устройства в компьютере процессор выбирает инструкции для выполнения

Обновлено: 01.07.2024

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

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

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

Здесь блок управления проверяет инструкцию, которая сейчас хранится в регистре инструкций (IR). Он смотрит на инструкцию, которая представляет собой просто последовательность нулей и единиц, и решает, что нужно сделать. В инструкции сказано добавить два числа? Говорит ли он загрузить значение из памяти? Где в памяти? Блок управления интерпретирует двоичную инструкцию, чтобы ответить на подобные вопросы.

Теперь блок управления отправляет сигналы, которые сообщают АЛУ, памяти и другим компонентам сигналы о том, что они должны выполнять правильную работу.

В приведенном ниже видеоролике демонстрируется простая программа, работающая на компьютере. Показанный воображаемый компьютер использует специальные регистры для хранения адреса памяти (MAR) и данных, которые только что поступили из памяти (MBR). Он также использует регистры AL и BL для временного хранения значений. Не беспокойтесь о деталях этих других регистров, сосредоточьтесь на цикле выборки/декодирования/выполнения и на том, как используются ПК и ИК.

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

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

Скачать в формате 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.

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

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

Компоненты компьютера

Путь к данным

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

Путь к данным состоит из следующих компонентов.

  • программируемые регистры — небольшие единицы хранения данных, которые непосредственно видны программистам на ассемблере. Их можно использовать как простые переменные в программе высокого уровня.
  • счетчик программ (ПК) — содержит адрес для получения инструкций.
  • Мультиплексоры имеют управляющие входы, поступающие от управления. Они используются для маршрутизации данных по пути данных.
  • элементы обработки — вычисление новых значений данных из старых значений данных. В простых процессорах основные элементы обработки сгруппированы в Арифметико-логическое устройство (ALU).
  • регистры специального назначения — содержат данные, необходимые для работы процессора, но не видимые напрямую программистам на ассемблере.

Путь к данным

Управление

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

  • Указать памяти отправлять или получать данные.
  • Укажите ALU, какую операцию выполнить.
  • Направлять данные между разными частями пути к данным.

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

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

Ввод — это данные, поступающие в процессор от внешних устройств ввода, таких как клавиатуры, мыши, диски и сети.

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

Вывод — это данные, поступающие от процессора на внешние устройства вывода, такие как дисплеи, принтеры, диски и сети.

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

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

  • Получение инструкций
  • Обновление счетчика программ (ПК)
  • Декодирование инструкции
  • Выбор исходного операнда
  • Операция арифметико-логического устройства (ALU)
  • Доступ к памяти
  • Зарегистрируйтесь

В этих действиях

  • счетчик программ (ПК) содержит адрес следующей инструкции.
  • В простом процессоре арифметико-логическое устройство (ALU) выполняет все арифметические и логические операции.

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

Выполнение инструкции происходит в несколько этапов. В разных архитектурах реализовано разное количество этапов, но большинство из них реализуют этапы выполнения команды Fetch, Decode, Execute и WriteBack в четыре или более дискретных этапа. При обсуждении выполнения инструкций мы сосредоточимся на этих четырех этапах выполнения и в качестве примера используем инструкцию ADD. Наш пример инструкции ADD закодирован, как показано на рисунке 1.

формат инструкции, использованный в качестве примера

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

Чтобы выполнить инструкцию, ЦП сначала выбирает следующую инструкцию из памяти в специальный регистр, регистр инструкций (IR). Адрес памяти инструкции для выборки хранится в другом специальном регистре, программном счетчике (ПК). ПК отслеживает адрес памяти следующей инструкции для выборки и увеличивается как часть выполнения этапа выборки, так что он сохраняет значение адреса памяти самой следующей инструкции. Например, если все инструкции имеют длину 32 бита, то значение ПК увеличивается на 4 (каждый байт, 8 бит, имеет уникальный адрес), чтобы сохранить адрес памяти инструкции, следующей сразу за той, которая была выбрана. Арифметические схемы, которые отделены от АЛУ, увеличивают значение ПК. Значение ПК также может измениться на этапе обратной записи. Например, некоторые инструкции переходят на определенные адреса, связанные, например, с выполнением циклов, if-else или вызовами функций. На рис. 2 показан этап выполнения выборки.

Этап выполнения CPU Fetch

Рисунок 2. Стадия выборки выполнения инструкции: инструкция по адресу памяти, хранящемуся в регистре ПК, считывается из памяти и сохраняется в IR. Значение ПК также увеличивается в конце этого этапа (если инструкции имеют длину 4 байта, то следующий адрес — 1238; фактический размер инструкции зависит от архитектуры и типа инструкции).

После выборки инструкции ЦП декодирует биты инструкции, хранящиеся в регистре IR, на четыре части: старшие биты инструкции кодируют код операции, который определяет операцию, которую необходимо выполнить (например, ADD, SUB, OR, …​), а оставшиеся биты разделены на три подмножества, которые определяют два источника операндов и назначение результата. В нашем примере мы используем регистры как для источника, так и для назначения результата. Код операции отправляется по проводам, которые вводятся в АЛУ, а исходные биты отправляются по проводам, которые являются входами в файл регистров. Исходные биты отправляются на два входа выбора чтения (Sr0 и Sr1), которые определяют, какие значения регистров считываются из файла регистров. Этап декодирования показан на рис. 3.

Этап выполнения декодирования CPU

Рисунок 3. Этап декодирования выполнения инструкции: разделите биты инструкции в IR на компоненты и отправьте их в качестве входных данных в ALU и регистровый файл. Биты кода операции в IR отправляются на вход выбора ALU, чтобы выбрать, какую операцию выполнять. Два набора битов операндов в IR отправляются на входы выбора файла регистров, чтобы выбрать регистры, из которых считываются значения операндов. Биты назначения в IR отправляются в регистровый файл на стадии WriteBack. Они указывают регистр, в который записывается результат АЛУ.

После того, как этап декодирования определяет операцию для выполнения и источники операндов, АЛУ выполняет операцию на следующем этапе, этапе Выполнение. Входные данные АЛУ поступают с двух выходов регистрового файла, а входные данные выбора поступают из битов кода операции инструкции. Эти входные данные проходят через АЛУ для получения результата, объединяющего значения операнда с операцией.В нашем примере АЛУ выводит результат добавления значения, хранящегося в Reg1, к значению, хранящемуся в Reg3, и выводит значения кода условия, связанные с результирующим значением. Этап выполнения показан на рис. 4.

этап выполнения

Рисунок 4. Стадия Execution выполнения инструкции: ALU выполняет указанную операцию (из битов кода операции инструкции) над своими входными значениями (из выходов регистрового файла).

На этапе WriteBack результат ALU сохраняется в регистре назначения. Файл регистров получает вывод результата АЛУ на входе данных, регистр назначения (из битов инструкций в IR) на входе выбора записи (Sw) и 1 на входе WE. Например, если регистр назначения — Reg0, то биты, кодирующие Reg0 в IR, отправляются в качестве входных данных Sw в файл регистров для выбора регистра назначения. Выходные данные АЛУ отправляются в качестве входных данных в файл регистров, а бит WE устанавливается в 1, чтобы разрешить запись результата АЛУ в регистр Reg0. Этап WriteBack показан на рис. 5.

стадия обратной записи

Рисунок 5. Стадия WriteBack выполнения инструкции: результат стадии выполнения (выход из ALU) записывается в регистр назначения в регистровом файле. Выход ALU представляет собой данные файла регистров на входе, биты назначения инструкции поступают на вход выбора записи файла регистров (Sw), а вход WE устанавливается на 1, чтобы разрешить запись Данные в значении для указанного целевого регистра.

5.6.1. Исполнение по часам

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

Часы ЦП измеряют дискретное время, а не непрерывное. Другими словами, существует время 0, за которым следует время 1, за которым следует время 2, и так далее для каждого последующего такта часов. Время тактового цикла процессора измеряет время между каждым тактом. Тактовая частота процессора (или тактовая частота) равна 1/(время тактового цикла). Обычно он измеряется в мегагерцах (МГц) или гигагерцах (ГГц). Тактовая частота 1 МГц соответствует одному миллиону тактов в секунду, а 1 ГГц — одному миллиарду тактов в секунду. Тактовая частота является мерой того, насколько быстро может работать ЦП, и является оценкой максимального количества инструкций в секунду, которые может выполнять ЦП. Например, на простых скалярных процессорах, таких как ЦП в нашем примере, процессор с частотой 2 ГГц может обеспечить максимальную скорость выполнения инструкций в два миллиарда инструкций в секунду (или две инструкции в наносекунду).

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

Исторически сложилось так, что увеличение тактовой частоты (наряду с разработкой более сложных и мощных микроархитектур, которые могут управляться более быстрыми тактовыми частотами) было для компьютерных архитекторов очень эффективным способом повышения производительности процессора. Например, в 1974 году процессор Intel 8080 работал на частоте 2 МГц (тактовая частота два миллиона циклов в секунду). Тактовая частота Intel Pentium Pro, представленного в 1995 г., составляла 150 МГц (150 миллионов циклов в секунду), а тактовая частота Intel Pentium 4, представленного в 2000 г., равнялась 1,3 ГГц или (1,3 миллиарда циклов в секунду). Пик тактовой частоты пришелся на середину-конец 2000-х годов, когда процессоры, такие как IBM z10, имели тактовую частоту 4,4 ГГц.

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

Схема часов

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

тактовая схема генерирует регулярный шаблон шириной 1 и 0

Рисунок 6. Обычный шаблон вывода 1 и 0 тактовой схемы. Каждая последовательность 1 и 0 составляет тактовый цикл.

Тактовый цикл (или тик) — это подпоследовательность 1 и 0 из шаблона схемы синхронизации. Переход от 1 к 0 или от 0 к 1 называется фронтом синхронизации. Тактовые фронты запускают изменения состояния в схемах ЦП, управляя выполнением инструкций. Нарастающий фронт тактового сигнала (переход от 0 к 1 в начале нового тактового цикла) указывает на состояние, в котором входные значения готовы к этапу выполнения инструкции. Например, передний фронт сигнализирует о том, что входные значения в схему АЛУ готовы. Пока значение часов равно 1, эти входы распространяются по схеме до тех пор, пока выход схемы не будет готов. Это называется задержкой распространения по цепи. Например, пока тактовый сигнал равен 1, входные значения в АЛУ распространяются по рабочим схемам АЛУ, а затем через мультиплексор для получения корректных выходных данных АЛУ для операции объединения входных значений. На заднем фронте (переход от 1 к 0) выходы каскада стабильны и готовы к передаче в следующее место (показано как «выход готов» на рисунке 7). Например, выход из АЛУ готов по заднему фронту. Пока значение часов равно 0, выходные данные АЛУ распространяются на входные данные регистрового файла. В следующем тактовом цикле нарастающий фронт указывает, что входное значение регистрового файла готово для записи в регистр (показано как «новый ввод» на рис. 7).

тактовый цикл

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

Длительность тактового цикла (или тактовая частота) ограничена максимальной задержкой распространения на любом этапе выполнения инструкции. Стадия выполнения и распространение через ALU обычно является самой продолжительной стадией. Таким образом, половина времени тактового цикла должна быть не меньше, чем время распространения входных значений АЛУ по самой медленной рабочей цепи к выходам АЛУ (другими словами, выходы отражают результаты работы на входах) . Например, в нашем ALU с четырьмя операциями (OR, ADD, AND и EQUALS) сумматор с неравномерным переносом имеет наибольшую задержку распространения и определяет минимальную продолжительность тактового цикла.

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

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

Если, например, тактовая частота составляет 1 ГГц, выполнение одной инструкции занимает 4 наносекунды (каждый из четырех этапов занимает 1 наносекунду). При тактовой частоте 2 ГГц выполнение одной инструкции занимает всего 2 наносекунды.

Хотя тактовая частота является фактором производительности процессора, сама по себе тактовая частота не является значимым показателем его производительности. Вместо этого среднее количество циклов на инструкцию (CPI), измеренное при полном выполнении программы, является лучшим показателем производительности процессора. Как правило, процессор не может поддерживать свой максимальный CPI для выполнения всей программы. Субмаксимальный CPI является результатом многих факторов, в том числе выполнения общих программных конструкций, которые изменяют поток управления, таких как циклы, ветвление if-else и вызовы функций. Средний показатель CPI для запуска набора стандартных тестовых программ используется для сравнения различных архитектур. CPI является более точным показателем производительности ЦП, поскольку он измеряет его скорость выполнения программы по сравнению с показателем одного аспекта выполнения отдельной инструкции. Дополнительные сведения о производительности процессоров и проектировании процессоров для повышения их производительности см. в учебнике по архитектуре компьютеров 1.

5.6.2. Собираем все вместе: центральный процессор в полноценном компьютере

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

На рис. 9 показан пример процессора в контексте современного компьютера, компоненты которого вместе реализуют архитектуру фон Неймана.

процессор в современном компьютере

Рисунок 9. Процессор полноценного современного компьютера. Шины соединяют микросхему процессора, оперативную память и устройства ввода и вывода.

5.6.3. Сноски

Авторское право (C) 2020 Dive into Systems, LLC.

Dive into Systems находится под лицензией Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0).

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