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

Обновлено: 21.11.2024

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

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

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

Регистр ЦП — это организация, которая отслеживает ваш ЦП. NSA является примером регистра ЦП.

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

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

Еще одно отличие — размер: регистровый файл редко превышает пару сотен слов, в то время как кэш L1 легко может достигать 64 КБ.

4 ответа 4

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

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

EDIT: вот простое объяснение того, как работает логика регистрации.

Представим, что у нас есть четыре регистра с именами R1..R4. Если вы скомпилируете заявление, которое выглядит так:

компилятор выдаст машинный код, который (в дизассемблированном виде) будет выглядеть примерно так:

Поскольку большинство современных процессоров имеют регистры шириной 32 или 64 бита, они могут выполнять математические операции с любым значением, размер которого не может удерживаться. Им не нужны специальные регистры для меньших значений; они просто используют специальные инструкции ASM, которые говорят ему использовать только часть регистра. И, подобно плотнику с двумя руками, регистры могут одновременно хранить только небольшой объем данных, но их можно использовать повторно, передавая активные данные в них и из них, а это означает, что «множество регистров» не работает. оказаться нужным. (Наличие большого количества данных, конечно, позволяет компиляторам генерировать более быстрый код, но это не обязательно.)

И многое другое на складе в другом городе (диск) и другие вещи, которые он может отправить через Fedex (по сети) :-)

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

@Vatine: Да, есть очень глубокая кроличья нора, когда вы начинаете отслаивать слои абстракции и смотреть на реальную реализацию. Но когда имеешь дело с кем-то, задающим вопрос начального уровня, я предпочитаю давать более простые ответы, которые просветят, а не еще больше запутают.

Если вы возьмете другой процессор, регистры будут отличаться, скажем, 8086 - это 16-битный процессор, и у него есть AX, BX, CX и DX, все регистры 16-битные, PC, SP и флаговые регистры.

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

но есть небольшая разница между кешем процессора (ЦП) и регистрами процессора (ЦП). Регистры действительно необходимы для некоторых специальных действий, таких как указатель памяти, состояние программы и т. д. Пример: ПК: Счетчик программ, который действует как указатель памяти в программная память, указатель SP:Stack, который действует как указатель памяти в памяти стека. а Аккумулятор — это буфер и основной регистр для доступа к АЛУ для арифметических операций.

Вы можете увидеть объяснение Мейсона Уиллера для примеров

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

Думайте скорее как объектно-ориентированный: регистр — это класс, не производный от памяти, а память — это класс, не производный от регистра, но класс регистра имеет методы (коды машинных операций) для преобразования его данных в память и из памяти. С другой стороны, память ничего не знает о регистрах и не может вызывать над ними действия.В результате все операции процессора выполняются регистрами, которые часто обращаются к памяти.

Нередко можно увидеть регистры только для записи, что вряд ли является атрибутом памяти. Также возможно изменение значения регистра без записи в него — опять же, не то поведение, которое вы ожидаете от памяти.

Ответ, предоставленный @Mason Wheeler, был точным, но я думаю, что можно поставить ваш вопрос с другой точки зрения. Судя по вашему вопросу, мне кажется, что концепция, необходимая для полного понимания разницы между кешем и регистром, - это путь к данным. Как правильно указал Мейсон, логика ЦП (т. Е. Его путь данных) спроектирована таким образом, что информация о памяти не может обрабатываться ЦП напрямую, и поэтому существуют регистры. На самом деле ЦП даже не способен декодировать текущую инструкцию программы, которую он выполняет, если эта инструкция не была загружена сначала в соответствующий регистр (обычно тот, который называется IR, «Регистр инструкций»).

Это связано со способом подключения процессора. Между памятью и АЛУ нет физического пути; все данные, подаваемые в АЛУ, должны каким-то образом буферизоваться в каком-то регистре. Это могло бы быть по-другому, но схема, необходимая для прямого подключения памяти к АЛУ, была бы слишком сложной: проще и эффективнее осуществлять всю связь между памятью и АЛУ через файл регистрации, как определено вышеупомянутым путем данных. На самом деле, даже когда данная инструкция указывает позицию памяти в качестве операнда (режим адресации, известный как прямая адресация), соответствующий блок данных загружается в регистр, известный как MBR (Memory Buffer Register, регистр буфера памяти). иногда называется MDR, Memory Data Buffer).

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

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

  • Накопитель:
    Это наиболее часто используемый регистр для хранения данных, взятых из памяти. В разных микропроцессорах он разный.
  • Регистры адресов памяти (MAR):
    Они содержат адрес местоположения, доступ к которому осуществляется из памяти. MAR и MDR (регистр данных памяти) вместе облегчают связь ЦП и основной памяти.
  • Регистры данных памяти (MDR):
    Он содержит данные, которые должны быть записаны или считаны из адресата.
  • Регистры общего назначения:
    Они пронумерованы как R0, R1, R2….Rn-1 и используются для хранения временных данных во время любой текущей операции. Доступ к его содержимому можно получить с помощью программирования на ассемблере. Современные архитектуры ЦП, как правило, используют больше GPR, поэтому адресация между регистрами может использоваться чаще, что сравнительно быстрее, чем другие режимы адресации.
  • Счетчик программ (ПК):
    Счетчик программ (ПК) используется для отслеживания выполнения программы. Он содержит адрес памяти следующей инструкции, которая будет выбрана. PC указывает на адрес следующей инструкции, которая будет извлечена из основной памяти, когда предыдущая инструкция была успешно завершена. Счетчик программ (ПК) также служит для подсчета количества инструкций. Инкрементация ПК зависит от типа используемой архитектуры. Если мы используем 32-битную архитектуру, ПК увеличивается на 4 каждый раз, чтобы получить следующую инструкцию.
  • Регистр инструкций (IR):
    IR содержит инструкцию, которая вот-вот должна быть выполнена. Инструкция с ПК извлекается и сохраняется в ИК. Как только инструкция помещается в IR, ЦП начинает выполнение инструкции, а ПК указывает на следующую инструкцию для выполнения.
  • Регистр кода состояния ( CCR ):
    Регистры кода состояния содержат различные флаги, указывающие на состояние любой операции. Например, допустим, что операция вызвала создание отрицательного результата или нуля, тогда эти флаги соответственно устанавливаются высокими. .и флаги
  1. Перенос C: установите значение 1, если операция сложения приводит к переносу, а операция вычитания — к заимствованию; в противном случае очищается до 0.
  2. Переполнение V: полезно только при операциях над целыми числами со знаком.
  3. Ноль Z: установите значение 1, если результат равен 0, в противном случае сбрасывается на 0.
  4. Отменить N: имеет смысл только в операциях со знаком. Установите значение 1, если получен отрицательный результат.
  5. Extend X: работает как перенос для арифметических операций с множественной точностью.

Как правило, решение об этом принимает ALU.

Итак, это разные регистры, которые работают для определенной цели.

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

Регистр должен иметь длину 32 бита для 32-битного компьютера с инструкциями. Регистры могут быть пронумерованы в зависимости от конструкции процессора и языковых правил.

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

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

В следующей таблице показаны регистры и их функции.

< /th>
Символ регистраКоличество битовИмя регистраФункция
OUTR8Регистр выводаOСодержит выходной символ.
INPR8Регистр вводаСодержит вводимый символ.
ПК12Счетчик программСодержит адрес инструкции.
ARAR td>12Регистр адресаОн содержит адрес для памяти.
DR16Регистр данныхОн содержит операнд памяти.
AC16 НакопительЭто регистр процессора.
IR16Регистр инструкций td>Содержит код инструкции.
TR16Временный регистр Он содержит временные данные.

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

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

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

Веб-разработка, языки программирования, тестирование программного обеспечения и другое

Операции с регистром ЦП

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

По сути, регистр будет выполнять следующие операции.

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

Различные типы регистров памяти

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

  • Накопитель (AC)
  • Отметить регистрацию
  • Адресный реестр (AR)
  • Регистр данных (DR)
  • Счетчик программ (ПК)
  • Регистр инструкций (IR)
  • Регистр управления стеком (SCR)
  • Регистр буфера памяти (MBR)
  • Индексный регистр (IR)

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

1. Аккумулятор

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

Все в одном пакете для разработки программного обеспечения (600+ курсов, 50+ проектов) 600+ онлайн-курсов | 3000+ часов | Поддающиеся проверке сертификаты | Пожизненный доступ
4,6 (3144 оценки)

2. Пометить Регистрация

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

3. Регистр данных

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

4. Адресный реестр

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

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

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

6. Регистр инструкций

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

7. Регистр управления стеком SCR

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

8. Регистр буфера памяти

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

9. Регистр индекса

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

Зачем нам нужен регистр ЦП?

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

Преимущества и недостатки

Ниже приведены преимущества и недостатки

Преимущества

Ниже приведены преимущества:

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

Недостатки

Давайте взглянем на недостатки:

  • Поскольку размер памяти регистра конечен, и если инструкция больше, то процессор должен использовать кеш или основную память вместе с регистром для операции

Заключение

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

Рекомендуемые статьи

Это руководство о том, что такое регистр ЦП. Здесь мы обсудим введение в регистр ЦП, операции, различные типы, использование, преимущества и недостатки. Вы также можете ознакомиться с другими нашими статьями по теме, чтобы узнать больше –

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