October 20 2017 00:31:10
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
Реализация наиболее эффективного выполнения потока декодированных команд
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ

После формирования потоков микрокоманд производится выделение регистров, необходимых для выполнения декодированных команд. Эта процедура реализуется блоком распределения регистров (RAT- Register Alias Table), который выделяет для каждого указанного в команде логического регистра (регистра целочисленных операндов ЕАХ, ЕСХ и др. или регистра операндов с плавающей точкой ST0 - ST7) один из 40 физических регистров, входящих в блок регистров замещения (RRF - Retirement Register File). Эта процедура позволяет выполнять команды, использующие одни и те же логические регистры, одновременно или с изменением их последовательности.

Реализация наиболее эффективного выполнения потока декодированных команд обеспечивается блоком, который позволяет изменять последовательность команд (ROB - Re-Order Buffer). Этот блок реализован в виде буфера, в который поступают микрокоманды, реализующие выполнение ряда декодированных команд. Одновременно в буфере могут содержаться до 40 микрокоманд, которые затем направляются в исполнительные устройства по мере готовности операндов, поступающих из блока регистров RRF или выбираемых из памяти. При этом команды выполняются не в порядке их поступления, а по мере готовности соответствующих операндов и исполнительных устройств. В результате команды, поступившие позже, могут быть выполнены до ранее выбранных команд. Таким образом, естественный порядок следования команд нарушается, чтобы обеспечить более полную загрузку параллельно работающих исполнительных устройств и повысить производительность процессора.

Микрокоманды поступают в исполнительные устройства через блок распределения (RS -Reservation Station), который направляет их в соответствующее устройство после его освобождения. Блок распределения имеет пять выходных портов и обеспечивает в среднем выполнение трех команд одновременно.

Суперскалярная архитектура реализуется путем организации исполнительного ядра процессора в виде ряда параллельно работающих блоков. Исполнительные блоки IU1, IU2 (IU - Integer Unit) производят обработку целочисленных операндов, блок FPU (Floating-Point Unit) выполняет операции над числами с плавающей точкой, блок ММХ реализует одновременную обработку нескольких упакованных символов, блок SSE, введенный в процессорах Pentium III, обеспечивает выполнение операций над потоком чисел с плавающей точкой. Один из целочисленных блоков выполняет также проверку условий ветвления для команд условных переходов и выдает сигналы перезагрузки конвейера команд в случае неправильно предсказанного ветвления.

Адреса операндов, выбираемых из памяти, вычисляются блоком MIU (Memory Interface Unit), который реализует интерфейс с кэш-памятью данных или внешней памятью. В его состав входят устройства генерации адреса AGU (Address Generated Unit), которые в соответствии с заданными в декодированных командах способами адресации одновременно формируют адреса двух операндов: один для операции чтения, второй - для операции записи. При этом MIU может формировать адреса и производить предварительное чтение операндов для команд, которые еще не поступили на выполнение. Такая процедура предварительного чтения данных для последующей их обработки в исполнительных блоках называется спекулятивной выборкой. Если команда, для которой проведена спекулятивная выборка операнда, не поступает на исполнение, то считанные данные теряются. Такой случай имеет место, например, для выбранных и декодированных команд, которые оказываются в нереализуемой ветви программы.

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.03 секунд 2,256,508 уникальных посетителей