Мегаобучалка Главная | О нас | Обратная связь


Функции регистрового окна в RISC-процессорах.



2018-07-06 657 Обсуждений (0)
Функции регистрового окна в RISC-процессорах. 0.00 из 5.00 0 оценок




 

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

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

 

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

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

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

 
 


Сравнить VLIW-процессор и суперскалярный процессор с точки зрения выявления и реализации ILP.

Сравнить VLIW-процессор и суперскалярный процессор с точки зрения выявления и реализации ILP.

 

ILP - Параллелизм на уровне команд (англ. Instruction-level parallelism) — является мерой того, какое множество операций в компьютерной программе может выполняться одновременно. Потенциальное совмещение выполнения команд называется «параллелизмом на уровне команд».

 

 

VLIW (англ. very long instruction word — «очень длинная машинная команда») — архитектура процессоров с несколькими вычислительными устройствами. Характеризуется тем, что одна инструкция процессора содержит несколько операций, которые должны выполняться параллельно. Фактически это «видимое программисту» микропрограммное управление, когда машинный код представляет собой лишь немного свёрнутый микрокод для непосредственного управления аппаратурой.

 

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

 

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

 

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

 

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

 

 

Суперскалярный процессор (англ. superscalar processor) — процессор, поддерживающий так называемый параллелизм на уровне инструкций (то есть, процессор, способный выполнять несколько инструкций одновременно) за счёт включения в состав его вычислительного ядра нескольких одинаковых функциональных узлов (таких как АЛУ, FPU, умножитель, сдвигающее устройство и другие устройства). Планирование исполнения потока инструкций осуществляется динамически вычислительным ядром (не статически компилятором как в VLIW). Использование конвейера (англ. pipelining), увеличение количества функциональных узлов процессора (суперскалярность), увеличение количества ядер (многоядерность) и увеличение количества процессоров (многопроцессорность) — разные способы увеличения производительности, которые могут использоваться совместно. При использовании конвейера количество узлов остаётся прежним; увеличение производительности достигается за счёт одновременной работы узлов, ответственных за разные стадии обработки инструкций одного потока. При использовании суперскалярности увеличение производительности достигается за счёт одновременной работы большего количества одинаковых узлов, независимо обрабатывающих инструкции одного потока (в том числе, и большего количества конвейеров). При использовании нескольких ядер каждое ядро выполняет инструкции отдельного потока, может быть суперскалярным и/или конвейерным. При использовании нескольких процессоров каждый процессор может быть многоядерным.

 

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

 

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

 

Узел суперскалярного процессора, называемый диспетчером инструкций (англ. instruction dispatcher, ID), ответственен:

 

· за чтение инструкций из памяти;

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

· за распределение инструкций между несколькими функциональными узлами процессора.

 

Узел ID должен распределять инструкции между узлами так, чтобы узлы работали без простоев.

Если узел ID не справится со своей работой (не нагрузит работой все узлы), производительность суперскалярного процессора будет не лучше производительности скалярного процессора. Суперскалярный процессор, обычно, способен выполнять больше одной инструкции за такт. Но способность обрабатывать несколько инструкций одновременно не делает архитектуру суперскалярной, так как одновременности можно добиться и другими методами: применением конвейера, применением нескольких ядер и/или применением нескольких процессоров.

 

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

 

Увеличение производительности суперскалярных процессоров ограничивается следующими факторами:

 

· степенью внутреннего параллелизма инструкций;

· сложностью поиска зависимостей между инструкциями и затратами времени на этот поиск; сложностью схемы переименования регистров и затратами времени на переименование;

· обработкой инструкций ветвления.

 

Возможность одновременного выполнения инструкций зависит от степени внутреннего параллелизма инструкций — от того, насколько одни инструкции зависят от других. Одна инструкция зависит от другой инструкции, если использует ресурсы, также используемые другой инструкцией, или использует результат работы другой инструкции. Одновременное выполнение возможно в случаях, когда инструкции программы не зависят друг от друга. Например, инструкция «a = b + c» и инструкция «d = e + f» могут быть выполнены одновременно, так как результат вычисления ни одной из них не зависит от результата вычисления другой. Инструкция «a = b + c» и инструкция «b = e + f» взаимозависимы и не могут выполняться одновременно, так как результат их выполнения зависит от того, какая из них выполнится первой.



2018-07-06 657 Обсуждений (0)
Функции регистрового окна в RISC-процессорах. 0.00 из 5.00 0 оценок









Обсуждение в статье: Функции регистрового окна в RISC-процессорах.

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (657)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)