Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к экзамену по АВС.docx
Скачиваний:
12
Добавлен:
01.03.2025
Размер:
908.38 Кб
Скачать
  1. Синхронный конвейер команд. Оценка его производительности.

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

1. разделение выполнения любой машинной команды на ряд последовательных этапов;

2. разделение аппаратуры CPU на ряд независимых функциональных блоков, способных функционировать параллельно и выполнять один или несколько смежных этапов машинной команды.

Синхронный конвейер работает в принудительном темпе и для выполнения любого этапа выделено одно и то же время tт (такт конвейера).

Оценка производительности

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

Идеальный случай:

1. длительности всех фаз конвейера одинаковы(синхронный конвейер);

2. обеспечивается постоянная загрузка всех блоков конвейера (без изменения порядка действия);

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

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

  1. Причины снижения производительности при конвейерном режиме обработки команд.

1. Наличие в программе так называемых зависимостей по управлению (конфликты по управлению).

2. Наличие в программах зависимостей по данным (конфликты по данным).

3. Использование различными блоками конвейера одного и того же ресурса(структурные конфликты).

4. Различное время выполнения отдельных фаз машинных команд.

5. Наличие при выполнении программы особых случаев, приводящих к прерыванию.

6. Большой разброс длительности фазы выполнения операции для различных машинных команд.

  1. Способы повышения производительности при конвейерной обработке команд.

Проблема: различное время выполнения отдельных фаз машинных команд. Решение:

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

· использование таких аппаратных решений, которые позволили бы значительно снизить затраты времени на выполнение данного этапа (например, использовать матричные схемы умножения). Но это приведет к усложнению схемы процессора и невозможности реализации на этой БИС других, функционально более важных, узлов.

Проблема: структурные конфликты. Решение:

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

Проблема: конфликты по управлению. Решение:

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

Проблема: конфликты по данным. Решение:

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

· Устранение конфликтов по данным типов WAR(запись прежде считывания) и WAW(запись прежде записи) достигается путем отказа от неупорядоченного исполнения команд, но чаще всего путём введения буфера восстановления последовательности команд.