Инструкция процессора указывает, какой регистр выполнять

Обновлено: 21.11.2024

ЦП

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

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

Как ЦП определяет одну конкретную инструкцию? Он отправляет адрес в память (помещая требуемое значение на адресную шину). Это двоичное число — последовательность битов, каждый из которых равен 0 или 1, — которая представляет собой последовательность низкого и высокого напряжения на наборе проводов, соединяющих ЦП с памятью программ.

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

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

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

Регистры

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

Есть также регистры специального назначения, используемые для определенных задач:

Счетчик программ ПК (указывает на следующую инструкцию)
IR Instruction Rgeister ("Значение" текущей инструкции)
Регистр состояния SR (флаги состояния после выполнения инструкций)
SP Stack Указатель (указывает на следующее свободное место в стеке)
Кадр стека SF (используется для поиска переменных программы)

Счетчик программ

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

Счетчик программ обычно имеет такую ​​же ширину (количество битов), что и адресная шина. В компьютерных системах довольно часто имеется больше памяти, чем фактической памяти. Если бы использовались только 13 бит, память могла бы содержать 8 КБ инструкций. Если бы использовались 24 бита, можно было бы адресовать 16 МБ памяти.

Обычно содержимое счетчика программ автоматически увеличивается на 1 во время каждой инструкции. Таким образом, процессор выполняет инструкции в списке одну за другой. Существуют и другие возможности, позволяющие переходить (ветвления или вызовы процедур) в другую часть программы. Это делается путем изменения содержимого счетчика программ.

Помимо памяти, в которой хранятся инструкции (память программ), есть также память, в которой хранятся данные. Память данных обычно представляет собой оперативную память (RAM) (или иногда RWM, память для чтения/записи), в отличие от памяти программ, которая может быть либо RAM, либо ROM.

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

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

Чтение и письмо

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

Возможны два вида операций; чтение, при котором ЦП указывает адрес в памяти данных, устанавливает провод управления чтением/записью в положение «чтение», и данные по этому адресу появляются на шине данных.

ЦП также может записывать данные в память данных; в этом случае ЦП указывает как адрес, так и данные, и устанавливает провод управления чтением/записью на «запись», после чего данные записываются по указанному адресу. (Чтение данных соответствует активации вывода разрешения на трехуровневом выходе ЦП, подключенном к шине данных; запись данных соответствует активации защелки.

Гарвард и Архитектура фон Неймана

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

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

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

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

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

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

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

Архитектура фон Неймана используется для большинства компьютеров; он позволяет хранить и запускать различные программы. Гарвардская архитектура больше подходит для микроконтроллера; при использовании он будет запускать только одну программу, которая будет храниться в ПЗУ в его программной памяти. Кроме того, в некоторых случаях может оказаться полезной дополнительная скорость без сложного сложного контроллера кэша.

Для ускорения работы процессора многие компьютеры используют так называемую "конвейерную систему". Это означает, что вы делите операцию инструкции на отдельные части, которые должны выполняться одна за другой; но вы договариваетесь, что пока выполняется одна часть одной инструкции, выполняются более ранние части более поздних инструкций. Например, рассмотрим четырехступенчатый конвейер; если каждый этап занимает 100 нс, то для полной обработки инструкции требуется всего 400 нс; но на самом деле производительность машины может составлять одну инструкцию каждые 100 нсек, поскольку четыре разные части четырех разных инструкций выполняются одновременно.

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


Процессоры RISC и CISC

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

В процессоре CISC одна инструкция может выполнять целую последовательность операций, например, вы можете умножить два числа с плавающей запятой и добавить третье (a + b*c) в одной инструкции; другие процессоры выполняют еще более сложные действия за одну инструкцию.

    Темы, обсуждаемые в этой веб-заметке:

<УЛ> <УЛ>
  • Структура и работа ЦП
    • Функция каждого компонента ЦП
    • Работа процессора (цикл выполнения инструкций)
    <УЛ>
  • Концепция указателя
  • Счетчик программ — это указатель
  • Поток программы по умолчанию является последовательным
  • Инструкция перехода может изменить ход программы по умолчанию
  • <УЛ>
  • Арифметические и логические операции
  • Операции передачи данных между процессором и оперативной памятью
  • Инструкции перехода, которые изменяют ход программы (инструкции перехода могут быть условными)
    • Структура процессора:

    Компоненты ЦП:

    <УЛ> <УЛ>
  • Регистр – это синоним памяти в информатике.
  • Регистр общего назначения — это ячейка памяти.
  • Каждый регистр общего назначения имеет уникальное имя
  • Он используется для хранения (и вызова) промежуточных результатов сложных вычислений.
  • <УЛ> <УЛ>
  • Сложная электрическая цепь, которая может выполнять математические (+, -, ×, /) и логические операции ( , ≥, и , или )
  • Вывод (результат) вычисления (полученный АЛУ) часто сохраняется в регистре общего назначения
    • <УЛ>
    • Содержит текущую инструкцию, выполняемую процессором.
    • ЦП выполнит операцию, указанную кодом инструкции, содержащимся в регистре инструкций

    <УЛ> <УЛ>
  • Счетчик программ — это регистр (ячейка памяти)!
  • Этот регистр содержит адрес (местоположение в памяти) следующей инструкции после того, как ЦП завершит выполнение текущей инструкции в регистре инструкций
  • Значение счетчика команд будет увеличиваться после того, как ЦП завершит выполнение одной инструкции.
    • <УЛ>
    • Этот регистр содержит различную информацию о процессоре.
    • Среди информации, содержащейся в PSR, есть:

    Результат операции сравнения позволит ЦП определить следующий факт между a и b :

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

      После выполнения инструкции ЦП получает («выбирает») (следующую) инструкцию по адресу (местоположению), указанному в программном счетчике

      <УЛ> Предположим, ЦП только что завершил выполнение инструкции (код инструкции 0) в регистре инструкций:

    (Код инструкции 0 в регистре инструкций означает "добавить" и она только что была выполнена)

      ЦП сначала отправляет запрос на получение (восстановление) данных, хранящихся в ячейке памяти, заданной программным счетчиком (ПК) (на рисунке значение ПК = 1):

    ЦП заставит память извлекать (вызывать) значение, хранящееся по адресу памяти (местоположению) 1

    Это число (4) будет интерпретироваться как код компьютерной инструкции.

    Старый код инструкции (0) будет заменен новым кодом инструкции

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

    Мартин имеет 20-летний опыт работы в области информационных систем и информационных технологий, имеет докторскую степень в области управления информационными технологиями и степень магистра в области управления информационными системами. Он адъюнкт-профессор компьютерных наук и компьютерного программирования.

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

    Набор инструкций

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

    Набор инструкций (используемый в так называемой ISA или архитектуре набора инструкций) — это код, который может понять процессор компьютера (ЦП). Язык 1 и 0, или машинный язык. Он содержит инструкции или задачи, управляющие перемещением битов и байтов внутри процессора.

    Но если это 1 и 0, как мы на самом деле взаимодействуем с процессором?Системные программисты используют язык ассемблера, который является разновидностью языка программирования. Операторы собираются на машинном языке — в инструкциях, понятных процессору. Язык ассемблера очень похож на машинный язык с метками, потому что один только двоичный код быстро становится трудно отслеживать.

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

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

    1. Длина инструкции (может варьироваться)
    2. Коды операций (выполняемая команда)
    3. Операнды (с чем будет работать команда)
    4. Реестры (внутренние расположения — ограничены по количеству и возможностям, но быстро доступны)
    5. Память (внешнее хранилище — большее и универсальное количество мест, но более медленный доступ)

    Произошла ошибка при загрузке этого видео.

    Попробуйте обновить страницу или обратитесь в службу поддержки.

    Вы должны создать учетную запись, чтобы продолжить просмотр

    Зарегистрируйтесь, чтобы просмотреть этот урок

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

    Получите неограниченный доступ к более чем 84 000 уроков.

    Уже зарегистрированы? Войдите здесь для доступа

    Ресурсы, созданные учителями для учителей

    Вы в ударе. Продолжайте в том же духе!

    Просто отмечаюсь. Вы все еще смотрите?

    Хотите посмотреть это позже?

    Войдите или зарегистрируйтесь, чтобы добавить этот урок в собственный курс.

    Инструкции

    Так что же такое инструкция? Давайте взглянем на инструкции и их длину.

    Об инструкции

    Инструкция может различаться по длине в зависимости от архитектуры. В системах x86 длина инструкции обычно составляет от 1 до 3 байтов (для кода операции) плюс количество байтов, необходимых для операндов, в зависимости от режима адресации. Что такое режим адресации? Различные операции могут выполняться непосредственно с чистыми числами, косвенно с числами во внутренних регистрах или очень косвенно с ячейками в основной памяти. Каждый из них представляет собой отдельный режим адресации.

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

    Сама инструкция состоит из битового шаблона (снова эти 1 и 0), но в ассемблере вы увидите такой синтаксис, как MOV, ADD и CMP. Они называются мнемоникой, а не кодом операции (мнемоника — это то, что облегчает запоминание другой вещи). Например, чтобы добавить два операнда, таких как число 42, к содержимому регистра EAX, код выглядит следующим образом:

    О длине инструкции

    Инструкция имеет определенную длину в соответствии с требованиями ISA. Однако рассмотрите следующую инструкцию, показанную на этом рисунке, который мы обозначили как Рисунок 1:

    Рисунок 1. Пример длины инструкции

    Длина инструкции зависит от того, сколько можно указать в наименьшем количестве битов. Некоторые инструкции, подобные показанной на рис. 1, могут быть указаны всего в 16 битах или двух байтах (также называемых словом). Это потому, что эти два 6-битных операнда могут указывать только то, что может быть описано 6-битами в предыдущем примере. Мы можем указать 32 разных вещи с помощью 6 бит, что часто достаточно для указания регистра. Но если нам нужно указать ячейку памяти в основной памяти, для указания каждого адреса может потребоваться 4 байта или больше.

    Операнды и коды операций

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

    Ниже приведены примеры операторов сборки с использованием команды MOV. Первый операнд — это пункт назначения, а второй операнд — источник.В качестве операндов можно указать немедленные значения, регистры или ячейки основной памяти (также несколькими способами, чтобы сэкономить время при перемещении большого количества данных).

    В этом примере число 9 будет загружено в регистр EAX:

    В этом примере содержимое регистра EBX будет перемещено в регистр EAX:

    Регистры и основная память

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

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

    Флаги состояния и счетчик программ

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

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

    Резюме урока

    Хорошо, давайте рассмотрим, что мы узнали!

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

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

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

    Исследуйте мир информатики

    Регистры процессора

    Что такое регистры процессора?

    Организация и архитектура компьютера

    Регистры являются важным компонентом микроархитектуры процессора. Регистры — это высокоскоростная память, встроенная в микросхему ЦП для быстрого доступа к данным. Это также самая быстрая память в иерархии памяти.

    Регистр эффективно функционирует как высокоскоростная временная память, используемая ЦП (чипом микропроцессора) во время выполнения программы. В зависимости от микроархитектуры процессора процессор может иметь много регистров.

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

    Зарегистрировать символ

    Зарегистрировать имя

    Размер в битах

    Функция регистрации

    Хранит данные для операций ALU

    Указывает на следующую инструкцию

    Хранит временные данные

    Регистры ввода и вывода

    Хранит входные и выходные данные

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

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

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

    Регистры являются важным компонентом ЦП. Итак, давайте сначала начнем с краткого введения в центральный процессор ( ЦП ).

    Что такое регистры процессора?

    Оглавление

    • Типы регистров ЦП.
    • Регистры общего назначения.
    • Регистры специального назначения.
    • Функции регистров ЦП.

    Что такое регистры процессора?

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

    Инструкции программы сохраняются в основной памяти RAM (оперативное запоминающее устройство) во время выполнения программы.

    Операционная система загружает инструкции программы и данные в память. Процессор извлекает данные и инструкции из основной памяти RAM одну за другой.

    Вот пример различных типов регистров, используемых в архитектуре Intel 8085.

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

    Регистр — это внутренняя высокоскоростная память процессора. Это наименьший размер, но самый быстрый в иерархии памяти.

    В цифровой электронике регистр представляет собой группу триггеров, которые могут хранить один бит данных. Триггер — это схема с защелкой, которая имеет два устойчивых состояния, которые можно использовать для хранения двоичных данных (ноль 0 или единица 1).

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

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