Переименование регистров внеочередное исполнение предсказание переходов

Переименование регистров

Переименование регистров (англ. Register Renaming ) — метод ослабления взаимозависимостей команд, применяемый в процессорах, осуществляющих их внеочередное исполнение (англ. Out-of-order execution ).

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

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

Переименование регистров представляет собой преобразование программных ссылок на архитектурные регистры в ссылки на физические регистры и позволяет ослабить влияние ложных взаимозависимостей за счёт использования большого количества физических регистров вместо ограниченного количества архитектурных (так, например, x86-совместимые процессоры архитектуры Intel P6 содержат 40 физических регистров). При этом процессор отслеживает, состояние каких физических регистров соответствуют состоянию архитектурных, а выдача результатов осуществляется в порядке, который предусмотрен программой.

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

Для улучшения этой статьи желательно ? :
  • Найти и оформить в виде сносок ссылки на авторитетные источники, подтверждающие написанное.
  • Добавить иллюстрации.

8 бит · 16 бит · 32 бит · 64 бит · 128 бит

Параллелизм
Pipeline Конвейер · In-Order & Out-of-Order execution · Переименование регистров · Speculative execution
Уровни Бит · Инструкций · Суперскалярность · Данных · Задач
Потоки Многопоточность · Simultaneous multithreading · Hyperthreading · Superthreading · Аппаратная виртуализация
Классификация Флинна SISD · SIMD · MISD · MIMD
Реализации DSP · GPU · SoC · PPU · Векторный процессор · Математический сопроцессор • Микропроцессор · Микроконтроллер
Компоненты Barrel shifter · FPU · BSB · MMU · TLB · Регистровый файл · control unit · АЛУ • Демультиплексор · Мультиплексор · Микрокод · Тактовая частота • Корпус • Регистры • Кэш (Кэш процессора)
Управление питанием APM · ACPI · Clock gating · Динамическое изменение частоты • Динамическое изменение напряжения

Wikimedia Foundation . 2010 .

Смотреть что такое «Переименование регистров» в других словарях:

Микроархитектура — Схема, иллюстрирующая место микроархитектурного уровня в многоуровневой структуре компьютера. В компьютерной инженерии … Википедия

RISC — У этого термина существуют и другие значения, см. RISC (значения). RISC (англ. restricted (reduced) instruction set computer[1][2] компьютер с сокращённым набором команд) архитектура процессора, в которой быстродействие… … Википедия

Суперскалярность — Плата CRAY T3E 136/ac (1995) Суперскалярность архитектура вычислительного ядра, использующая несколько декодеров команд, к … Википедия

x86 — 80486 DX2 x86 (англ. Intel 80×86) архитектура процессора c одноимённым наборо … Википедия

NetBurst — (рабочее название P68) суперскалярная гиперконвейерная микроархитектура, разработанная компанией Intel и лежавшая в основе микропроцессоров Pentium 4, Pentium D, Celeron и Xeon. Содержание 1 История 2 … Википедия

Intel P6 — P6 суперскалярная суперконвейерная архитектура, разработанная компанией Intel и лежащая в основе микропроцессоров Pentium Pro, Pentium II, Pentium III, Celeron и Xeon. В отличие от x86 совместимых процессоров предыдущих поколений с CISC… … Википедия

Регистровый файл — (register file) модуль микропроцессора (CPU), содержащий в себе реализацию регистров процессора. Современные регистровый файлы, используемые в СБИС обычно реализованы как многопортовый массив быстрой статической памяти SRAM. Такие массивы… … Википедия

X86 — 80486 DX2 x86 (Intel 80×86) аппаратная платформа: архитектура микропроцессора и соответствующий набор инструкций, как разработанных и выпускаемых компанией Intel, так и совместимых с ними процессоров других производителей (AMD, VIA … Википедия

Регистр процессора — Эта статья включает описание термина «IP»; см. также другие значения. Регистр процессора блок ячеек памяти, образующий сверхбыструю оперативную память (СОЗУ) внутри процессора; используется самим процессором и большой частью недоступен… … Википедия

x86-64 — Для улучшения этой статьи желательно?: Переработать оформление в соответствии с правилами написания статей. Викифицировать статью. Исправить статью согласно стилистическим правилам Википедии … Википедия

Источник

49. Возможности микропроцессоров фирмы Intel последних поколений: переименование регистров, предсказание переходов.

Переименование регистров (англ. Register Renaming) — метод ослабления взаимозависимостей команд, применяемый в процессорах, осуществляющих их внеочередное исполнение (англ. Out-of-order execution).

Модуль предсказания условных переходов (англ. Branch Prediction Unit) — устройство, входящее в состав микропроцессоров, имеющих конвейерную архитектуру, определяющее направление ветвлений (предсказывающее, будет ли выполнен условный переход) в исполняемой программе. Предсказание ветвлений позволяет осуществлять предварительную выборку инструкций и данных из памяти, а также выполнять инструкции, находящиеся после условного перехода, до того, как он будет выполнен. Предсказатель переходов является неотъемлемой частью всех современных суперскалярных микропроцессоров, так как в большинстве случаев (точность предсказания переходов в современных процессорах превышает 90 %) позволяет оптимально использовать вычислительные ресурсы процессора. [1]

50.Единицы измерения Производительности микропроцессора.

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

51.Микропроцессорные системы. Определение. Типы.

Микропроцессорная система (МПС) представляет собой функционально законченное изделие, состоящее из одного или нескольких устройств, главным образом микропроцессорных: микропроцессора и/или микроконтроллера.

Типы микропроцессорных систем. Сформировалось несколько типов микропроцессорных систем, различающихся мощностью, универсальностью, быстродействием и структурными отличиями. Основные типы следующие: • микроконтроллеры — наиболее простой тип микропроцессорных систем, в которых все или большинство узлов системы выполнены в виде одной микросхемы; • контроллеры — управляющие микропроцессорные системы, выполненные в виде отдельных модулей; • микрокомпьютеры — более мощные микропроцессорные системы с развитыми средствами сопряжения с внешними устройствами. • компьютеры (в том числе персональные) — самые мощные и наиболее универсальные микропроцессорные системы. Четкую границу между этими типами иногда провести довольно сложно. Быстродействие всех типов микропроцессоров постоянно растет, и нередки ситуации, когда новый микроконтроллер оказывается быстрее, например, устаревшего персонального компьютера.

52.Микроконтроллеры. Отличие микроконтроллера от универсальных микропроцессорных систем.

МК – разновидность микропроцессорной системы (однокристальные ЭВМ), ориентированная на реализацию алгоритмов управления техническими устройствами и технологическими процессами.

МК проще, чем универсальные ЭВМ:

1)малый объем памяти МК реализует заранее известные несложные алгоритмы, и для размещения программ им требуется емкость памяти на несколько порядков 10 / 12 10 11 12 > Следующая > >>

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Источник

Предсказатель переходов

Из Википедии — свободной энциклопедии

Модуль предсказания переходов (прогнозирования ветвлений) (англ. branch prediction unit ) — устройство, входящее в состав микропроцессоров, имеющих конвейерную архитектуру, предсказывающее, будет ли выполнен условный переход в исполняемой программе. Предсказание ветвлений позволяет сократить время простоя конвейера за счёт предварительной загрузки и исполнения инструкций, которые должны выполниться после выполнения инструкции условного перехода. Прогнозирование ветвлений играет критическую роль, так как в большинстве случаев (точность предсказания переходов в современных процессорах превышает 90 %) позволяет оптимально использовать вычислительные ресурсы процессора [1] .

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

Следует отличать «предсказание переходов» от «предсказания адреса перехода» [en] . Цель предсказания адреса перехода состоит в выборе адреса условного или безусловного перехода до декодирования и выполнения инструкции перехода.

Существует два основных метода предсказания переходов:

Источник

Переименование регистров

Сколько бы команд одновременно ни был способен выполнять процессор, т.е. сколько бы в нем ни было конвейеров, он никогда не будет загружен полностью. Это связано с тем, что некоторые операции просто нельзя выполнить до получения результатов предыдущих. Например, если мы хотим вычислить значение выражения (b/2 – d), то одновременно произвести операции деления и вычитания нам не удастся, так как результат операции деления (из которого производится вычитание) неизвестен заранее. Такая ситуация носит название истинной взаимозависимости данных и означает, что входные данные для операции вычитания определяются в результате другой операции, в нашем случае операции деления. Повысить производительность обработки при истинных взаимозависимостях данных путем одновременного исполнения двух операций невозможно.

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

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

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

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

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

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

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

Источник

Читайте также:  Предсказание вероятности рождения близнецов метод
Оцените статью