Главная страница
Навигация по странице:

  • Конвейерный принцип обработки информации

  • Команда

  • Количество команд Время при последовательном выполнении

  • Задачи Для существующего набора инструкций (ListInstructions (

  • Лабораторная работа №1. Лабораторная работа 1 Конвейерная организация процессоров


    Скачать 42.28 Kb.
    НазваниеЛабораторная работа 1 Конвейерная организация процессоров
    Дата19.01.2022
    Размер42.28 Kb.
    Формат файлаdocx
    Имя файлаЛабораторная работа №1.docx
    ТипЛабораторная работа
    #336603

    Лабораторная работа № 1

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

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

    В различных процессорах количество и суть этапов различаются. Рассмотрим принципы конвейерной обработки информации на примере пятиступенчатого конвейера, в котором выполнение команды складывается из следующих этапов:
    IF (Instruction Fetch) - считывание команды в процессор;

    ID (Instruction Decoding) - декодирование команды;

    OR (Operand Reading) - считывание операндов;

    EX (Executing) - выполнение команды;

    WB (Write Back) - запись результата.
    Каждый из блоков занимает n тактов времени (ms).

    Варианты организации вычислений (Variants):

    1. Однотактная организация

    2. Конвейерная организация

    3. Суперскалярная организация (количество блоков в EX=числу тактов)


    Выполнение команд в таком конвейере представлено в табл. 1.


    Команда

    Такт

    1

    2

    3

    4

    5

    6

    7

    8

    9

    i

    IF

    ID

    OR

    EX

    WB













    i+1




    IF

    ID

    OR

    EX

    WB










    i+2







    IF

    ID

    OR

    EX

    WB







    i+3










    IF

    ID

    OR

    EX

    WB




    i+4













    IF

    ID

    OR

    EX

    WB


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

    TIF = 20, TID = 15, TOR = 20, TEX = 25, TWB = 20.

    Тогда, предполагая, что дополнительные расходы времени составляют dt = 5 единиц, получим время такта:


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

    При последовательной обработке время выполнения N команд составит:


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


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


    Количество команд

    Время

    при последовательном выполнении

    при конвейерном выполнении

    1

    100

    150

    2

    200

    240

    10

    1000

    420

    100

    10000

    3120


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

    Процессоры, имеющие в своем составе более одного конвейера, называются суперскалярными. Недостатком суперскалярных микропроцессоров является необходимость синхронного продвижения команд в каждом из конвейеров. В случае суперскалярной организации при EX=3, вид конвейера, следующий:

    EX



    WB

    EX

    IF

    ID

    OR








    EX

    Задачи
    Для существующего набора инструкций (ListInstructions (ListInstructions.slx)) необходимо:

    1. Нарисовать временные диаграммы вычислений ListInstructions.

    2. Вычислить общее время выполнения (TListInstructions) всего набора ListInstructions.

    3. Представить полученные результаты в виде графиков (диаграмм) для сравнения TListInstructions, сделать выводы.

    4. Реализация в любой среде программирования.




    № варианта

    IF

    ID

    OR

    EX

    WB

    1

    2

    3

    5

    3

    1

    2

    2

    1

    3

    4

    5

    3

    4

    3

    4

    4

    5

    4

    5

    1

    5

    4

    1

    5

    4

    3

    3

    5

    4

    6

    3

    5

    2

    3

    4

    7

    1

    4

    3

    3

    1

    8

    4

    1

    3

    3

    3

    9

    3

    1

    3

    4

    1

    10

    2

    3

    3

    3

    3

    11

    5

    3

    2

    4

    2

    12

    4

    4

    4

    5

    4

    13

    1

    1

    2

    4

    4

    14

    1

    2

    5

    4

    2

    15

    2

    3

    2

    3

    3

    16

    4

    2

    5

    3

    1

    17

    4

    4

    3

    5

    5

    18

    4

    3

    2

    5

    1

    19

    3

    5

    2

    3

    1

    20

    2

    1

    3

    3

    4

    21

    1

    3

    4

    5

    2

    22

    1

    5

    3

    4

    4

    23

    2

    5

    1

    4

    5

    24

    3

    4

    3

    3

    3

    25

    5

    2

    5

    3

    2

    26

    1

    4

    4

    3

    4

    27

    4

    3

    3

    3

    2

    28

    3

    5

    3

    3

    4

    29

    4

    5

    2

    5

    2

    30

    4

    1

    1

    4

    4


    Пример.xls – пример.


    написать администратору сайта