Различия между версиями 1 и 2
Версия 1 от 2015-12-27 22:26:23
Размер: 968
Редактор: FrBrGeorge
Комментарий:
Версия 2 от 2016-04-10 15:32:16
Размер: 2460
Редактор: ali
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 2: Строка 2:
 1.Цикл работы процессора:

    ||Загрузка инструкции (IF = Instruction Fetch)||Декодирование инструкции, выделение команды и операндов, чтение регистров (ID = Instruction Decode)|| Фактическое выполнение инструкции (Ex = Execute)|| Сохранение регистра в память, Загрузка регистра из памяти (MEM = Memory access)|| Запись результата регистр (WB = Writeback)||
 1.Мысленный эксперимент.
  Предположим существует возможность создать для каждой стадии цикла исполнения инструкции полностью автономное устройство(микросхему или часть микосхемы). Предположим также, что эти устройства могут быть последовательно связаны. Тогда для вычисления одной инструкции понадобится целых пять циклов.
 '''НО''':
  1. Мы можем повысить тактовую частоту, поскольку максимальная задержка теперь стала меньше.
  2. Во время каждого цикла мы можем использовать все части тракта данных.

Эффективность выполнения инструкций

  • 1.Цикл работы процессора:
    • Загрузка инструкции (IF = Instruction Fetch)

      Декодирование инструкции, выделение команды и операндов, чтение регистров (ID = Instruction Decode)

      Фактическое выполнение инструкции (Ex = Execute)

      Сохранение регистра в память, Загрузка регистра из памяти (MEM = Memory access)

      Запись результата регистр (WB = Writeback)

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

    НО:

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

Принципиальная схема MARS. => параллельная загрузка узлов

Пример конвейера на MIPS

  • Конфликт по данным
  • Конфликт по управлению

Варианты:

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

ArchitectureAssembler/20_Pipeline (последним исправлял пользователь ali 2016-04-14 00:19:43)