Процессор систем инструкций процессора регистрирует типы целей объекта
Обновлено: 21.11.2024
Доступ к регистру инструкций к регистру состояния позволяет выполнять условные переходы или условные подпрограммы.
Связанные термины:
Скачать в формате PDF
Об этой странице
Простые встроенные процессоры
8.3.3 Регистр инструкций
Регистр инструкций (IR) имеет те же часы и сигналы сброса, что и ПК, а также тот же интерфейс к шине (IR_bus), определенный как std_logic_vector типа INOUT. IR также имеет еще два управляющих сигнала, первый из которых представляет собой команду на загрузку регистра команд (IR_load), а второй — на загрузку требуемого адреса на системную шину (IR_address). Последнее соединение — это декодированный код операции, который должен быть отправлен на системный контроллер. Это определяется как простое целое число без знака того же размера, что и основная системная шина. Базовый VHDL для объекта IR задается следующим образом:
2 используйте ieee . стандартная_логика_1164 . все;
3 использовать работу. процессор_функции . все;
6 clk : в std_logic;
7 nrst : в std_logic;
8 ir_load : в std_logic;
9 ir_valid : в std_logic;
10 ir_address : в std_logic;
11 ir_opcode : выходной код операции;
12 ir_bus : inout std_logic_vector (n −1 до 0)
14 конечных объектов ir;
Функция IR состоит в том, чтобы декодировать код операции в двоичной форме и затем передать его блоку управления. Если IR_valid низкий, значение шины должно быть установлено на Z для всех битов. Если сигнал сброса (nsrt) низкий, то внутреннее значение регистра должно быть установлено на все 0.
1 архитектура rtl –
3 signal ir_internal : std_logic_vector (n −1 до 0);
6, когда ir_valid = 1, иначе (другие => z);
8 процесс (clk, nrst)
10, если nrst = 0, то
11 ir_internal 0);
12 elsif Rising_Edge (clk), затем
13, если ir_load = 1, то
18-конечная архитектура rtl;
Обратите внимание, что в этом VHDL мы использовали предопределенную функцию Decode из ранее определенного пакета processing_functions. Это рассмотрит верхние 4 бита адреса, переданного IR, и декодирует соответствующий код операции для передачи контроллеру.
Архитектура PIC
5.2.2 Выполнение инструкции
Секция выполнения программы микроконтроллера содержит регистр инструкций, декодер инструкций, а также синхронизацию и логику управления. 14-битные инструкции, хранящиеся в памяти программ, копируются в регистр инструкций для декодирования; каждая инструкция содержит как код операции, так и операнд. Логика декодера инструкций преобразует биты кода операции в настройки для всех внутренних линий управления. Операнд предоставляет литерал, адрес файлового регистра или адрес программы, который будет использоваться инструкцией.
Если, например, используется инструкция MOVLW (переместить литерал в W), линии управления будут настроены на передачу литерального операнда в W через литеральную шину данных в мультиплексор и АЛУ. Если указана инструкция MOVWF, управляющие линии будут настроены на копирование содержимого W в указанный файловый регистр через внутреннюю шину данных. Операндом будет требуемый адрес файлового регистра (от 00 до 4F). Если мы посмотрим на коды инструкций «перемещения», приведенные в наборе инструкций, мы увидим разницу в структуре кода для трех инструкций перемещения:
MOVLW k = 11 00xx кккк кккк
MOVWF f = 00 0000 1ffff ffff
MOVF f,d = 00 1000 dfff ffff
Как работают микрокомпьютеры
Блок управления
ЦП также имеет несколько других регистров, в том числе регистр инструкций (IR); счетчик программ (ПК), также называемый счетчиком команд; и адресный регистр памяти (MAR), также называемый адресным буфером.
IR используется для хранения командного слова. Когда CPU извлекает команду из памяти, она временно сохраняется в IR. Инструкция представляет собой двоичное слово или код, определяющий конкретную операцию, которую необходимо выполнить. Командное слово также называется кодом операции или кодом операции. ЦП декодирует инструкцию, а затем выполняет ее.
ПК на самом деле является счетчиком и регистром. Он хранит двоичное слово, которое используется в качестве адреса для доступа к инструкциям в программе. Если программа начинается с инструкции, хранящейся в ячейке памяти 43, ПК сначала загружается с адресом 43. Адрес в ПК применяется к памяти, вызывая выборку и выполнение инструкции в ячейке 43. После того, как инструкция выполнена, ПК увеличивается (добавляется 1) к следующему адресу в последовательности, или 44. Инструкции в программе хранятся в последовательных ячейках памяти.
MAR или буфер адресов также хранит адрес, который ссылается на память. Этот регистр напрямую управляет адресной шиной и декодером адреса памяти в ОЗУ или ПЗУ. MAR получает ввод от ПК, когда требуется доступ к инструкции (см. рис. 6.7).MAR также может быть загружен с адресом, который используется для доступа к словам данных, хранящимся в памяти. Чтобы получить слово данных, используемое в арифметической операции, MAR загружается двоичным словом, которое указывает на расположение этого слова в ОЗУ. Этот адрес часто является частью инструкции.
Рисунок 6.7. Счетчик программ определяет адрес в памяти, к которому осуществляется доступ.
Важно отметить, что ПК и MAR (адресный буфер) имеют фиксированную длину в определенное количество битов. И это ограничивает объем памяти, к которой можно получить доступ. Например, при 16-битном адресном регистре адресная шина имеет 16 бит для адресации ОЗУ и ПЗУ. С 16 битами можно адресовать максимум 2 16 = 65 536 слов.
Стековый регистр — это 16-разрядный или более крупный регистр, используемый для адресации выбранной области ОЗУ, известной как стек. Эта память используется для хранения содержимого регистров и информации о состоянии при использовании подпрограмм и прерываний.
Работа микроконтроллера
2.1.3 Регистр инструкций и декодер
Для выполнения инструкции процессор копирует код инструкции из памяти программ в регистр инструкций (IR). Затем он может быть декодирован (интерпретирован) декодером команд, который представляет собой комбинационный логический блок, который настраивает линии управления процессором по мере необходимости. Эти линии управления не показаны явно на блок-схеме, так как они идут ко всем частям микросхемы и сделали бы ее слишком сложной. В PIC код инструкции включает операнд (рабочие данные), который может быть буквальным значением или адресом регистра. Например, если литерал (число), указанный в инструкции, должен быть загружен в рабочий регистр (W), он помещается на внутреннюю шину данных, а линии разрешения защелки регистра W активируются логикой синхронизации и управления. Внутреннюю шину данных можно увидеть на блок-схеме производителя ( рис. 1-1 в техпаспорте PIC 16F84A).
Компьютерный дизайн
5.4.3 Работа простой машины
Машина предназначена для работы путем повторения следующих двух фаз для каждой инструкции в программе.
Фаза 1 – выборка инструкции
Блок управления генерирует управляющие сигналы, которые копируют байт инструкции из памяти в регистр инструкций, IR. Адрес этой инструкции находится в Счетчике программ, ПК.
Фаза 2. Выполнение инструкции
8 бит в IR подключаются к блоку управления. Эти 8 бит определяют последовательность управляющих сигналов, которые генерирует блок управления. Последовательность управляющих сигналов, генерируемых блоком управления, вызывает выполнение инструкции. Последовательность заканчивается запуском фазы 1, поэтому следующая инструкция загружается в IR.
Блок управления представляет собой сложную последовательную схему, имеющую входы от ИК, которые определяют последовательность управляющих сигналов, генерируемых блоком управления. Системный тактовый сигнал определяет синхронизацию всех этих управляющих сигналов. Существует большое количество управляющих сигналов. Таким образом, будет сигнал управления, подключенный к входу разрешения буфера с тремя состояниями, который соединяет регистр с шиной. Будут другие сигналы, которые подключены к входу загрузки каждого регистра, что приведет к загрузке этого регистра с шины. Еще другие сигналы будут поступать в сигналы управления ALU_mode ALU, заставляя ALU быть настроенным на выполнение конкретной арифметической или логической операции. Другой управляющий сигнал подключается к входу WriteEnable памяти, определяя, будет ли память читать или писать.
Эти сигналы будут устанавливаться один за другим, создавая таким образом последовательность управляющих сигналов, которые вызывают выборку инструкции в IR и ее последующее выполнение. Например, если набор битов в IR представляет собой инструкцию по копированию данных из одного регистра в другой, последовательность управляющих сигналов будет аналогична описанной в разделе 5.3.
Блок управления — самый сложный из основных компонентов вычислительной машины. Мы рассмотрим его конструкцию в главе 13.
Микропроцессоры
15.4.3.2 Регистр инструкций
Этот регистр содержит текущую инструкцию, чтобы ее можно было декодировать и ввести в блок управления и синхронизации. В частности, регистр инструкций содержит код операции, определяющий тип инструкции. В зависимости от типа инструкции она может также содержать непосредственные данные операнда или адреса операндов и адрес результата. Поскольку данные операндов и адреса содержат много битов, они обычно хранятся во временных регистрах, которые можно рассматривать как расширения регистра команд. Содержимое регистра команд не может быть перезаписано АЛУ, и программист не может получить к нему доступ.
Блок управления
13.7.2 Выбор последовательности
Последовательность CROM, необходимая для выполнения такой инструкции, как ld a ,( hl ), определяется кодом операции, хранящимся в регистре инструкций IR компьютера. Очевидной возможностью является использование содержимого IR в качестве адреса CROM, с которого начинается последовательность управляющих сигналов для этой инструкции. То есть загружаем МАШИНУ с ИК. Сразу распознаем проблему: два кода операции могут отличаться численно на единицу. Таким образом, 0×57 и 0×58 оба могут быть допустимыми кодами операций в компьютере, поэтому последовательность для выполнения инструкции с кодом операции 0×57 должна занимать только одно место в CROM. Существует простое решение: ячейка CROM 0×57 будет содержать следующий адрес, который ссылается на неиспользуемую ячейку в CROM, где может быть размещена последовательность любой длины. Мы примем это решение. Теперь возникает вопрос, как реализовать фазу выборки инструкций компьютерной операции?
Например, мы разработаем содержимое CROM таким образом, чтобы последовательность выборки инструкций занимала ячейки CROM 0×1E и 0×1F. Предполагается, что эта последовательность управляющих сигналов копирует следующий код операции из ОЗУ в регистр инструкций и в адресный регистр CROM. В конце каждой последовательности выполнения поле «Следующий адрес» будет иметь значение 0×1E, так что начнется последовательность для получения кода операции следующей инструкции. Эта схема показана на рис. 13.9. Для простоты предполагается, что существует только четыре кода операции, от 0×00 до 0×03.
Рисунок 13.9. Содержимое CROM для микропрограммного контроллера
Запустите программу CROMA.exe и нажмите Включить выборку в меню. Это загрузит в CROM данные, показанные на рис. 13.9, и загрузит адресный регистр CROM со значением 0×1E. Медленно нажмите кнопку «Шаг», чтобы увидеть, как последовательность выборки копирует код операции из ОЗУ, а затем введите соответствующую последовательность выполнения. При желании вы можете изменить программный код в ОЗУ, нажав на ОЗУ в меню. (Помните, что действительными кодами операции являются только от 00 до 03.)
Практический пример: проектирование системы с использованием сердцевины Gumnut
Выполнение инструкции перехода
Процедура выполнения инструкций перехода показана ниже. В случае инструкции jmp процедура просто копирует целевой адрес из регистра инструкций в программный счетчик. В случае инструкции jsb перед обновлением счетчика программ процедура сначала копирует текущее значение счетчика программ в позицию стека, индексированную SP, а затем увеличивает SP. Приращение выполняется с помощью арифметики по модулю. Если вызовы подпрограмм вложены слишком глубоко, более ранний адрес возврата заменяется более поздними адресами. Gumnut не проверяет это, так как не имеет механизма для обработки ошибки. Скорее, он полагается на программиста или компилятора, чтобы избежать ошибки.
процедура Perform_jump
начать
случай IR_jump_fn
когда jump_fn_jmp =>
когда jump_fn_jsb =>
SP := (SP + 1) mod stack_depth;
когда другие =>
отчет «Логическая ошибка программы в интерпретаторе»
серьезный сбой;
конец регистра;
завершить процедуру Perform_jump;
Процессор
ХАРВИ М. ДЕЙТЕЛЬ, БАРБАРА ДЕЙТЕЛЬ, Введение в обработку информации, 1986 г.
Цикл выполнения инструкции
Теперь давайте более подробно рассмотрим выполнение типичной инструкции машинного языка. Компьютер всегда должен знать, в каком месте оперативной памяти находится следующая инструкция, которую нужно выполнить. Для этого в процессоре есть специальный регистр, называемый счетчиком инструкций. После выполнения каждой инструкции ЦП автоматически обновляет счетчик инструкций адресом следующей выполняемой инструкции.
Предположим, что счетчик инструкций содержит адрес 5000. Компьютер выбирает команду из ячейки 5000 и помещает ее в другой специальный регистр ЦП, называемый регистром инструкций. Электронные компоненты компьютера сконструированы таким образом, что компьютер может определить, какой тип инструкции находится в регистре команд — сложение, вычитание, операция ввода, операция вывода, операция редактирования, сравнение и т. д. на. Если регистр команд компьютера содержит команду умножения, такую как
Инструкция состоит в том, чтобы умножить 4-байтовое число, начинающееся в ячейке 6000, на 3-байтовое число, начинающееся в ячейке 7500, и поместить результат в 4-байтовое поле по адресу 6000.
ЦП работает следующим образом. Сначала он извлекает 4-байтовое число из ячеек с 6000 по 6003 и загружает его в регистр АЛУ. Затем он извлекает 3-байтовое число из ячеек с 7500 по 7502 и загружает его в другой регистр АЛУ.Произведение двух значений в регистрах АЛУ затем вычисляется и заносится в третий регистр АЛУ. Затем ЦП сохраняет этот результат обратно в 4-байтовое поле, начиная с ячейки 6000. (Если в результате умножения получается число, превышающее четыре байта, произошла ошибка переполнения. Большинство компьютеров завершают программу при возникновении такой серьезной ошибки. . По этой причине переполнение называется фатальной ошибкой).
Короче говоря, большинство компьютеров используют следующую схему:
Выбрать следующую инструкцию по адресу, указанному в счетчике инструкций, и поместить ее в регистр инструкций.
Выберите данные для обработки и поместите их в регистры ALU.
Выполните указанную операцию.
Сохранить результат операции обратно в основное хранилище.
Зачем весь этот обмен инструкциями и данными? Почему бы просто не выполнять расчеты прямо в оперативной памяти компьютера?
Здесь полезно сравнить работу компьютерной системы с работой больницы с сотнями палат для пациентов и только с одной операционной. Больного, нуждающегося в хирургическом вмешательстве, переводят из его собственной палаты в операционную. После операции пациента возвращают в его или ее палату, а следующего пациента доставляют в операционную. Обеспечить каждую из нескольких сотен палат дорогостоящим оборудованием, необходимым для операционной, было бы слишком дорого.
Аналогичным образом операции с данными могут выполняться только в ЦП, поэтому данные переносятся из основного хранилища в ЦП. Он остается там, пока выполняется операция, и возвращается в основное хранилище после завершения операции. Электроника, необходимая для выполнения операций, загружена почти так же, как и операционная в больнице.
Регистры — это места хранения внутри схемы ЦП. Это очень быстрая встроенная память, хранящая двоичные значения с использованием 32 или 64 бит. Информация хранится там, пока она интерпретируется или обрабатывается. Регистры специального назначения или общего назначения.
Регистры общего назначения
Может использоваться программистами для временного хранения данных. Некоторые компьютеры могут иметь до 16 регистров общего назначения (R1. R16). Разработчики процессоров не назначали этим регистрам особой роли.
Указатель стека (SP)
Указывает на структуру данных стека, содержащую адреса возврата, параметры процедуры или функции и локальные переменные. Используется при вызове процедуры или функции. Также используется, когда обслуживается прерывание. (Прерывание = сигнал от источника (аппаратного или программного обеспечения), запрашивающий внимание процессора)
Счетчик программ (ПК)
Сохраняет в оперативной памяти адрес следующей выполняемой инструкции.
АКА Регистр управления последовательностью (SCR) или Регистр последовательности.
Регистр статуса (SR)
Содержит биты, которые устанавливаются и сбрасываются на основе результатов инструкции. Позволяет ЦП сохранять информацию, такую как возникновение переполнения. Эта информация может быть использована для принятия решения о переходе от заданной последовательности инструкций.
Аккумулятор
Регистр текущих инструкций (CIR)
Сохраняет оператор и операнд для текущей инструкции.
Например, LDA 1000 (загрузить ячейку 1000 в аккумулятор)
Оператор LDA, что вы делаете
1000 операндов, с чем вы это делаете
Регистр адреса памяти (MAR)
Содержит адрес ячейки памяти, из которой или в которую данные должны быть прочитаны или записаны. Это может быть адрес инструкции, которую нужно выбрать, или адрес данных, которые будут использоваться в инструкции. При получении инструкций копирует содержимое счетчика программ.
Регистр буфера памяти (MBR)
Регистр данных памяти AKA (MDR) Временно хранит данные, считанные из памяти или записанные в память. ЦП и память работают на разных скоростях (отсюда и буфер)
Например, LDA 1000 размещен здесь по пути в CIR для декодирования.
Операнд (1000) помещен в MAR. Содержимое 1000 скопировано в MBR.
Системные часы
На каждом компьютере есть системные часы. Часы представляют собой генератор с кварцевым управлением, выдающий синхронизирующие сигналы с фиксированной частотой. Из этого выводятся другие сигналы синхронизации. Эти сигналы используются для регулирования выполнения инструкций и синхронизации работы компонентов компьютера.
Часовая частота
Процессоры предназначены для выполнения инструкций с определенной частотой. Выражается в мегагерцах или гигагерцах. Для некоторых инструкций требуется больше тактов часов, чем для других.
Длина слова
Слово — это наименьший участок памяти, на который программа может ссылаться независимо. Длина слова ограничивает сложность набора инструкций и эффективность математических операций.
Ширина шины
Этот термин относится к количеству параллельных проводов, выделенных на шину. Количество проводов определяет, насколько большое слово может быть передано по шине. Каждый провод может передавать двоичную цифру. Размер слова увеличивается с шириной шины.
Факторы, влияющие на эффективность
Производительность компьютерной системы можно измерить, запустив стандартные программы на процессоре и оценив количество машинных операций, выполненных за каждую единицу времени.
Измеряется в GOPS — гигаоперациях в секунду (или MOPS)
Закон Мура
Гордон Э. Мур – инженер и соучредитель корпорации Intel. В 1965 году для специального выпуска журнала Electronics Мура попросили спрогнозировать развитие событий на следующее десятилетие. Анализируя увеличение числа транзисторов на кремниевый чип в прошлом, Мур сформулировал так называемый закон Мура: количество транзисторов на кремниевый чип удваивается каждый год.
Увеличить тактовую частоту
Чем больше транзисторов размещено в одном пространстве, тем больше тепла выделяется при их работе. Квантовая физика предлагает теоретические ограничения на размер транзистора. Точно так же, чем выше частота тактов часов, тем больше выделяется тепла. Оба фактора ограничивают тактовую частоту.
Многоядерные процессоры
Процессоры объединены в несколько ядер. Каждое ядро работает на более низкой частоте. Несколько задач выполняются одновременно на разных ядрах или задачи распределяются между несколькими ядрами. Многоядерные процессоры особенно подходят для работы с мультимедиа.
Увеличить длину слова
Обычно длина слова процессора составляет 32 и 64 бита. Регистры общего назначения обычно имеют одинаковую длину слова. Чем больше длина слова, тем больше операнды и результаты. Когда операнд больше длины слова, его необходимо разделить на несколько инструкций, что требует большего количества тактов. Длина слова также ограничивает количество ячеек памяти, к которым можно обращаться в основной памяти. По этой причине существует ограничение на объем адресной памяти в компьютерной системе с 32-битным размером слова.
Увеличить ширину шины
На системную шину между процессором и основной памятью приходится наибольшая потеря времени при обработке. Чем шире шина, тем большее слово можно по ней передать. Если адрес или инструкция шире шины, для обработки требуется несколько тактовых импульсов.
В компьютерной архитектуре регистры представляют собой очень быструю компьютерную память, которая используется для эффективного выполнения программ и операций. Это достигается за счет предоставления доступа к часто используемым значениям, то есть к значениям, которые в данный момент находятся в точке операции/выполнения. Итак, для этой цели существует несколько различных классов регистров ЦП, которые работают в координации с памятью компьютера для эффективного выполнения операций.
Единственной целью наличия регистра является быстрый поиск данных для обработки центральным процессором. Хотя доступ к инструкциям из ОЗУ сравнительно быстрее с жестким диском, этого все же недостаточно для ЦП. Для еще лучшей обработки в ЦП есть память, которая может получать данные из ОЗУ, которые должны быть выполнены заранее. После регистров у нас есть кэш-память, которая быстрее, но не так быстро, как регистры.
- Накопитель:
Это наиболее часто используемый регистр для хранения данных, взятых из памяти. В разных микропроцессорах он разный. - Регистры адресов памяти (MAR):
Они содержат адрес местоположения, доступ к которому осуществляется из памяти. MAR и MDR (регистр данных памяти) вместе облегчают связь ЦП и основной памяти. - Регистры данных памяти (MDR):
Он содержит данные, которые должны быть записаны или считаны из адресата. - Регистры общего назначения:
Они пронумерованы как R0, R1, R2….Rn-1 и используются для хранения временных данных во время любой текущей операции. Доступ к его содержимому можно получить с помощью программирования на ассемблере. Современные архитектуры ЦП, как правило, используют больше GPR, поэтому адресация между регистрами может использоваться чаще, что сравнительно быстрее, чем другие режимы адресации. - Счетчик программ (ПК):
Счетчик программ (ПК) используется для отслеживания выполнения программы. Он содержит адрес памяти следующей инструкции, которая будет выбрана. PC указывает на адрес следующей инструкции, которая будет извлечена из основной памяти, когда предыдущая инструкция была успешно завершена. Счетчик программ (ПК) также служит для подсчета количества инструкций. Инкрементация ПК зависит от типа используемой архитектуры. Если мы используем 32-битную архитектуру, ПК увеличивается на 4 каждый раз, чтобы получить следующую инструкцию. - Регистр инструкций (IR):
IR содержит инструкцию, которая вот-вот должна быть выполнена.Инструкция с ПК извлекается и сохраняется в ИК. Как только инструкция помещается в IR, ЦП начинает выполнение инструкции, а ПК указывает на следующую инструкцию для выполнения. - Регистр кода состояния ( CCR ):
Регистры кода состояния содержат различные флаги, указывающие на состояние любой операции. Например, допустим, что операция вызвала создание отрицательного результата или нуля, тогда эти флаги соответственно устанавливаются высокими. .и флаги
- Перенос C: установите значение 1, если операция сложения приводит к переносу, а операция вычитания — к заимствованию; в противном случае очищается до 0.
- Переполнение V: полезно только при операциях над целыми числами со знаком.
- Ноль Z: установите значение 1, если результат равен 0, в противном случае сбрасывается на 0.
- Отменить N: имеет смысл только в операциях со знаком. Установите значение 1, если получен отрицательный результат.
- Extend X: работает как перенос для арифметических операций с множественной точностью.
Как правило, решение об этом принимает ALU.
Итак, это разные регистры, которые работают для определенной цели.
Каждый современный процессор включает несколько (очень маленьких) сверхбыстрых банков памяти, называемых регистрами. Регистры являются наиболее доступной областью памяти для ЦП и находятся на вершине иерархии памяти. Они намного меньше локальной памяти и используются для хранения машинных инструкций, адресов памяти и некоторых других значений. Данные загружаются из основной памяти в регистры (через кэш ЦП), после чего с ними выполняются различные арифметические операции. Обработанные данные затем записываются обратно в память через кэш ЦП.
Регистры процессора: определение и функции
Размер регистра обычно зависит от типа процессора. 64-битный процессор обычно имеет 64-битные регистры, поскольку он работает с 64-битными инструкциями. Однако есть и другие меньшие регистры, называемые полурегистрами, для выполнения более коротких инструкций.
Помимо предоставления ЦП платформы для выполнения машинных инструкций в постоянном темпе, регистры также уменьшают задержку при выполнении повторяющихся задач (точно так же, как кэш-память). Сохранение адресов памяти часто используемых данных позволяет значительно повысить производительность.
Физические и логические регистры
Современные процессоры, как правило, имеют несколько физических регистров, связанных с каждым логическим регистром. Программисты и дизайнеры взаимодействуют с логическими регистрами, в то время как с их физическими аналогами манипулируют косвенно. Это помогает избежать ложных зависимостей данных, которые могут возникнуть из-за многократного использования одного и того же регистра последовательными инструкциями, что, в свою очередь, улучшает параллелизм на уровне инструкций. Он также допускает спекулятивное выполнение и прогнозирование ветвлений.
Типы регистров процессора
Современные процессоры имеют несколько различных типов регистров, основными из которых являются регистры данных, регистры адреса, регистры общего назначения и < em>регистры специального назначения.
Регистры общего назначения (GPR). Регистры общего назначения представляют собой единый вид регистров. Может содержать адреса памяти, значения данных, а также значения с плавающей запятой. Они обычно используются большинством современных процессоров, а также графических процессоров из-за их гибкости.
Регистры специального назначения (SPR). Регистры специального назначения обычно используются для хранения состояния программы. Обычно они состоят из счетчика программ и регистра состояния. Современные архитектуры обычно объединяют два регистра в один.
Накопитель. В накопителе хранятся целочисленные значения, которые могут потребоваться АЛУ для выполнения конкретной инструкции. Аккумулятор — это регистр общего назначения.
Регистры адреса памяти: Регистры адреса содержат адреса памяти следующего адреса, который должен быть выполнен ЦП. Они сохраняются в адресном регистре счетчиком программ. Адресные регистры — это регистры специального назначения.
Счетчик программ: Счетчик программ является своего рода SPR. Он существует в блоке управления ЦП и содержит адрес памяти следующей выполняемой инструкции. Он выполняет работу по упорядочиванию инструкций и отслеживает количество выполненных инструкций. Счетчик программ является регистром специального назначения.
Регистры данных памяти: после того, как счетчик команд вводит адрес памяти в MAR, процессор извлекает необходимые инструкции и данные из памяти (через кэш), а временная копия сохраняется в регистре данных. MAR – это регистр специального назначения.
Регистры данных хранят данные в виде числовых значений, таких как целые числа, а иногда и значения с плавающей запятой. Многие архитектуры имеют отдельные регистры для значений FP. В примитивных конструкциях регистр данных также называется аккумулятором.
Регистр текущей инструкции: CIR содержит копию инструкции, которая в данный момент находится в MDR. Он разделен на две части. Один декодируется в микрооперации декодером ЦП, а другой представляет собой адрес памяти требуемых данных, необходимых для их выполнения. Текущий регистр инструкций является регистром специального назначения.
Читайте также: