Часть компьютерного оборудования, выполняющая машинные инструкции

Обновлено: 03.07.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.

Компьютер представляет собой сложную систему, состоящую из множества различных компонентов. Но в сердце — или, если хотите, в мозгу — компьютера находится единственный компонент, который выполняет фактические вычисления. Это центральный процессор или центральный процессор. В современном настольном компьютере ЦП представляет собой один «чип» размером порядка одного квадратного дюйма. Работа процессора заключается в выполнении программ.

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

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

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

ЦП содержит арифметико-логическое устройство или АЛУ, которое является частью процессора и выполняет такие операции, как сложение и вычитание. Он также содержит небольшое количество регистров, которые представляют собой небольшие блоки памяти, способные хранить одно число. Типичный ЦП может иметь 16 или 32 регистра «общего назначения», в которых хранятся значения данных, которые сразу доступны для обработки, и многие инструкции машинного языка ссылаются на эти регистры. Например, может быть инструкция, которая берет два числа из двух указанных регистров, складывает эти числа (используя АЛУ) и сохраняет результат обратно в регистр. И могут быть инструкции для копирования значения данных из основной памяти в регистр или из регистра в основную память.

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

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

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

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

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

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

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

Машинные инструкции, используемые в микропроцессоре 8086

  • MOV: перемещение байта или слова в регистр или память.
  • IN, OUT: ввод байта или слова из порта, вывод слова в порт.
  • LEA: загрузить эффективный адрес
  • LDS, LES Указатель загрузки с использованием сегмента данных, дополнительный сегмент.
  • PUSH, POP: поместить слово в стек, извлечь слово из стека.
  • XCHG: обмен байтами или словами.
  • XLAT: преобразование байта с помощью таблицы поиска.
  • ADD, SUB: добавить, вычесть байт или слово
  • ADC, SBB: сложение, вычитание байта или слова и перенос (заимствование).
  • INC, DEC: Увеличение, уменьшение байта или слова.
  • NEG: отрицание байта или слова (дополнение до двух).
  • CMP: сравнение байта или слова (вычитание без сохранения).
  • MUL, DIV: умножение, деление байта или слова (без знака).
  • IMUL, IDIV: целочисленное умножение, деление байта или слова (со знаком)
  • CBW, CWD: преобразование байта в слово, слова в двойное слово
  • AAA, AAS, AAM, AAD: настройка ASCII для add, sub, mul, div.
  • DAA, DAS: десятичная корректировка для сложения и вычитания (BCD-числа)
  • НЕ: логическое НЕ байта или слова (дополнение до единицы)
  • И: логическое И байта или слова
  • ИЛИ: логическое ИЛИ байта или слова.
  • Исключающее ИЛИ: логическое исключающее ИЛИ байта или слова
  • ТЕСТ: Тестовый байт или слово (И без сохранения).
  • SHL, SHR: инструкция по логическому смещению сдвига влево, вправо байта или слова? от 1или CL
  • SAL, SAR: арифметический сдвиг влево, вправо байта или слова? на 1 или CL
  • ROL, ROR: Повернуть влево, вправо байт или слово? на 1 или CL.
  • RCL, RCR: Повернуть влево, вправо по переносимому байту или слову? на 1 или CL.
  1. Инструкция по работе со строками — загрузка, сохранение, перемещение, сравнение и поиск байтов/слов
  • MOVS: перемещение строки байтов или слов
  • MOVSB, MOVSW: перемещение байта, строки слова.
  • CMPS: сравнение байтовой или словесной строки.
  • SCAS S: может состоять из строк байтов или слов (по сравнению с A или AX)
  • LODS, STOS: загрузка, сохранение строки байтов или слов в AL.
  • JMP: безусловный переход. Он включает циклическую передачу, инструкции подпрограмм и прерываний.
  • JNZ: переход до тех пор, пока значение счетчика не уменьшится до нуля. Он запускает цикл до тех пор, пока значение, хранящееся в CX, не станет равным нулю
  • ЦИКЛ: безусловный цикл, подсчет в CX, короткий переход к целевому адресу.
  • LOOPE (LOOPZ): Цикл, если равен (ноль), счет в CX, короткий переход к целевому адресу.
  • LOOPNE (LOOPNZ): Цикл, если не равен (не ноль), счет в CX, короткий переход к целевому адресу.
  • JCXZ: переход, если CX равен нулю (используется для пропуска кода в цикле).
  • Инструкции по подпрограммам и прерываниям-
  • CALL, RET: вызов, возврат из процедуры (внутри или вне текущего сегмента).
  • INT, INTO: Программное прерывание, прерывание при переполнении. IRET: Возврат из прерывания.
<р>7. Инструкции по управлению процессором-

  • STC, CLC, CMC: установить, очистить, дополнить флаг переноса.
  • STD, CLD: установить, сбросить флаг направления. STI, CLI: установить, сбросить флаг разрешения прерывания.
  • PUSHF, POPF: отправка флагов в стек, извлечение флагов из стека.

Пример вопроса GATE

Рассмотрите приведенную ниже последовательность машинных инструкций:

В приведенной выше последовательности регистры с R0 по R8 являются регистрами общего назначения. В показанных инструкциях первый регистр хранит результат операции, выполненной на втором и третьем регистрах. Эта последовательность инструкций должна выполняться в конвейерном процессоре команд со следующими 4 этапами: (1) выборка и декодирование инструкции (IF), (2) выборка операнда (OF), (3) выполнение операции (PO) и (4). ) Запишите результат (WB). Стадии IF, OF и WB занимают по 1 тактовому циклу для каждой инструкции. Стадия PO занимает 1 тактовый цикл для инструкции ADD или SUB, 3 тактовых цикла для инструкции MUL и 5 тактовых циклов для инструкции DIV. Конвейерный процессор использует пересылку операндов со стадии PO на стадию OF. Количество тактов, необходимых для выполнения вышеуказанной последовательности инструкций, равно ___________
(A) 11
(B) 12
(C) 13
(D) 14< /p>

Статья предоставлена ​​Пуджей Танеджей. Пожалуйста, напишите комментарии, если вы обнаружите что-то неверное, или вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше.

Компьютер представляет собой сложную систему, состоящую из множества различных компонентов. Но в сердце — или, если хотите, в мозгу — компьютера находится единственный компонент, который выполняет фактические вычисления. Это центральный процессор или центральный процессор. В современном настольном компьютере ЦП представляет собой один «чип» размером порядка одного квадратного дюйма. Работа процессора заключается в выполнении программ.

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

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

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

ЦП содержит арифметико-логическое устройство или АЛУ, которое является частью процессора и выполняет такие операции, как сложение и вычитание. Он также содержит небольшое количество регистров, которые представляют собой небольшие блоки памяти, способные хранить одно число.Типичный ЦП может иметь 16 или 32 регистра «общего назначения», в которых хранятся значения данных, которые сразу доступны для обработки, и многие инструкции машинного языка ссылаются на эти регистры. Например, может быть инструкция, которая берет два числа из двух указанных регистров, складывает эти числа (используя АЛУ) и сохраняет результат обратно в регистр. И могут быть инструкции для копирования значения данных из основной памяти в регистр или из регистра в основную память.

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

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

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

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

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

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