Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Конвейерные процессоры




2.1 Предпосылки создания конвейера данных

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

 
 

Формат хранения действительных чисел - чисел с плавающей точкой (FP) представлен на рис 4.1:

Формат хранения действительных чисел (FP)

Рис 4.1

Этапы выполнения машинной команды умножения:

1) Сложение порядков;

2) Нормализация мантисс (приведение мантисс к виду 0,1хххх);

3) Умножение мантисс;

4) Нормализация результата.

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

2.2 Структура конвейера данных

Создание конвейера предполагает выполнение следующих действий:

1) Деление машиной команды на этапы;

2) Аппаратная реализация этапов в виде конвейерных блоков (сегментов);

3) Создание входных / выходных регистров блоков для передачи результатов.

 

 
 

Операционные блоки для машинной команды умножения действительных чисел

Рис 4.2

Таким образом каждый сегмент конвейера имеет структуру, показанную на рис 4.3, где ОР1 и ОР 2 - входные и выходные операнды блока (регистры), а R - поле результата


Структура конвейерного сегмента

Рис 4.3

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

2.3 Сокращение времени при использовании конвейера данных

Пусть при конвейерной обработке машинная команда, как показано на рис. 4.2, разбивается на несколько (допустим, n) блоков, и каждая пара операндов последовательно обрабатывается в каждом таком блоке, начиная с первого по n -й, причем, как только одна пара операндов заканчивает обрабатываться на некотором операционном блоке, то этот блок начинает обрабатывать пару другую пару операндов, переданных с предыдущего блока. Таким образом, все блоки операционного конвейера работают одновременно и выполняют n разных этапов обработки для n разных пар операндов. Допустим, что конвейер спроектирован таким образом, что время прохождения одной пары операндов в обычном АЛУ и конвейере одинаково и равно Т, а число пар операндов, которые можно последовательно пропускать через конвейер, достаточно велико и равно N. В таком случае в исходном операционном блоке АЛУ на выполнение одной операции потребуется время Т, но если используется n-звенный конвейер, то на обработку N операций потребуется время (n + N) • (Т/n).

При этом на одну операцию потребуется время ((n + N)*T)/(n*N). Если отношение N/n достаточно велико, то это время приближается к Т/n, т. е. скорость вычислений возрастает приблизительно в n раз, где n -количество блоков или сегментов конвейера.

2.4 Конвейер команд

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

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

Например, в устройстве управления можно выделить следующие конвейерные блоки (сегменты):

1) выборка команды по адресу из ОП (или из КЭШ памяти);

2) дешифрация и обработка кода операции;

3) выборка первого операнда;

4) выборка второго операнда.

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

2.5 Многооперационные конвейеры

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

 
 

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

Структура конвейера в ширину

Рис 4.4

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

Пример конвейера в глубину фирмы Texas Instruments в системе ASC приведен на рис 4.5. В этой структуре отсутствует дублирование конвейерных блоков, но затрачивается время на передачу операндов через блоки, неиспользуемые в данной операции.

 
 

Конвейер в глубину

Рис. 4.5

2.6 Проблемы конвейерных процессоров:

a) Стоимость аппаратных средств. Стоимость аппаратной реализации растёт за счёт конвейерных блоков, входных и выходных регистров блоков, особенно для конвейеров в ширину и конвейера команд;

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

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

2.7 Замечания по реализации

Необходимость решать крупные вычислительные задачи с более высокой скоростью привела в 60-е годы к необходимости разработки ЭВМ с высокоскоростной параллельной обработкой данных. К первым машинам такого типа относятся LARC фирмы UNIVAC и IBM 7030, в которых впервые был применен принцип конвейера команд.

Что касается области конвейерных суперкомпьютеров, то здесь одной из первых была фирма Control Dada Corporation (CDC). Конвейерные принципы были использованы так же в машинах STAR 100 фирмы CDC и ASC формы Texas Instuments, наиболее полно конвейерные принципы нашли свое отражение в архитектуре CRAY процессора. Также SX-6 фирмы NEC.




Поделиться с друзьями:


Дата добавления: 2014-01-14; Просмотров: 2263; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.