Система управления конвейеризованным циклом процессора широкого командного слова
Изобретение относится к области вычислительной техники. Техническим результатом является расширение функциональных возможностей системы управления конвейеризованным циклом процессора широкого командного слова при сохранении высокой тактовой частоты. Для этого система содержит устройство управления прологом и эпилогом конвейеризованного цикла, дешифратор широких команд, блок регистров, устройства считывания из оперативной памяти, записи в оперативную память и блок выдачи адреса перехода. 4 з.п.ф-лы, 5 ил.
Изобретение относится к области вычислительной техники, в частности к архитектуре процессоров конвейерного типа, предназначенных для использования при осуществлении параллельных вычислений на уровне элементарных операций, в том числе к технике аппаратной поддержки конвейеризованных циклов для архитектур с использованием широких команд.
Из уровня техники известно, что отдельные независимые операции объединяются в параллельные группы, называемые широкими командами, которые выполняются аппаратурой как единое целое в каждом машинном такте (см. патент США 5418975, кл. G 06 F 009/00 от 23 мая 1995 г.). Высокая производительность вычислительной системы на базе процессоров широкого командного слова достигается при помощи оптимизирующего компилятора - системной программы, осуществляющей перевод прикладного математического обеспечения с языков программирования в параллельный объектный код. При этом при использовании широких команд обеспечивается оптимизация процессов обработки, главным образом состоящая в выявлении параллельных операций исходной программы и наборе из них широкого командного слова (см. патент СССР 1804645, кл. G 06 F 15/76 от 27.03.91). Производительность современных вычислительных систем в значительной степени определяется скоростью обработки регулярно повторяющихся участков программ (циклов). Совокупность вычислений, реализующих регулярно повторяющееся действие цикла, называют итерацией цикла (loop iteration), а машинный код итерации - телом цикла (loop body). Скорость вычислений для таких участков обычно определяется временем выполнения одной итерации цикла и числом повторений цикла, которое задано алгоритмом программы. Ускорить обработку цикла можно путем совмещения во времени вычислений с нескольких соседних итераций цикла. При этом очередная итерация цикла начинается не ожидая окончания текущей итерации, как бы образуя конвейер. Оптимизация такого рода получила название программной конвейеризации цикла, а оптимизированный цикл считается конвейеризованным (pipelined loop). Исходная итерация цикла разбивается на одинаковые интервалы времени, содержащие фрагменты вычислений и называемые стадиями конвейера (pipeline stage). Конвейеризованный цикл содержит параллельный код всех стадий конвейера. Количество стадий и их продолжительность (в машинных тактах) определяются исходя из вычислительных возможностей архитектуры процессора и характеристик самого цикла. При работе конвейеризованного цикла за время, равное длительности стадии конвейера, выполняется первая стадия текущей i-й итерации исходного цикла, вторая стадия предыдущей (i-1)-й итерации, третья стадия (i-2)-й и т. д. При числе стадий конвейера цикла, равном S, параллельно выполняются вычисления сразу для S соседних итераций, смещенных по времени друг относительно друга на одну стадию конвейера. Для разгона и остановки конвейера, как правило, строится отдельный код. Можно выполнить эту функцию и с помощью кода самого конвейеризованного цикла при наличии специальной аппаратной поддержки (системы управления конвейеризованным циклом). Данная система обеспечивает плавное включение в работу вычислений первых S-1 стадий, которые принято называть периодом пролога (loop prologue period) конвейеризованного цикла, и плавное выключение вычислений последних S-1 стадий опорожнения конвейера, образующих период эпилога (loop epilogue period) конвейеризованного цикла. Между периодами пролога и эпилога неограниченно долго цикл может работать с полностью загруженным конвейером (ядро конвейеризованного цикла - loop kernel). Например, для цикла с числом стадий S=3 и числом повторений N=5 периоды пролога и эпилога будут длиться в течение 2-х стадий, а ядро займет К= 3 стадий. Число повторений конвейеризованного цикла с учетом разгона и остановки конвейера в этом случае составит Nk=7 раз (см. фиг.4). Управление работой конвейеризованного цикла в течение периодов пролога и эпилога осуществляется путем отмены операций обращения в оперативную память и изменения условий операций перехода, относящихся к несуществующим итерациям исходного цикла. Известна система управления работой конвейеризованного цикла процессора широкого командного слова, содержащая КЭШ память широких команд, регистровую матрицу, дешифратор широких команд, устройство управления, устройство команд, исполнительное устройство, подключенные к системной шине (см. статью "The Cydra 5 Minisupercomputer: Architecture and Implementation", Journal of Supercomputing, 7, 143-180 (1993)). Указанная система рассчитана на построение кода цикла без программного пролога и эпилога. Однако функции разгона и остановки программного конвейера цикла выполняются дополнительными командами, закодированными в самом теле цикла, что при определенных обстоятельствах может привести к росту времени выполнения цикла. Замедление исполнения цикла происходит в силу двух причин: во-первых, увеличивается количество операций в теле цикла и для выполнения каждой стадии программного конвейера требуется больше машинных тактов; во-вторых, растет число стадий конвейера, необходимых для выполнения одной итерации цикла. Особенно сильно это замедление может проявиться для циклов с малым количеством операций и большим числом повторений. По технической сущности наиболее близким к заявляемому изобретению является система управления конвейеризованным циклом процессора широкого командного слова (ARCHITECTURAL SUPPORT FOR EXECUTION CONTROL OF PROLOGUE AND EPILOGUE PERIODS OF LOOPS IN A VLIW PROCESSOR), содержащая КЭШ память широких команд, блок регистров общего назначения, дешифратор широких команд, устройство управления, блок выдачи адреса перехода, как минимум одно устройство считывания из оперативной памяти, как минимум одно устройство записи в оперативную память, при этом информационный вход КЭШ памяти команд, первые входы-выходы устройств считывания и выходы устройств записи подключены к шине оперативной памяти, информационный выход КЭШ памяти - к информационному входу дешифратора широких команд, блок регистров связан двунаправленной шиной данных с информационным входом-выходом устройства управления, со вторыми информационными входами-выходами устройств считывания и с информационными входами-выходами устройств записи (см. патент США 5794029, кл. G 06 F 9/445 от 18 октября 1996 г.). Данная система рассчитана на применение в процессоре с аппаратной поддержкой предикатных вычислений и позволяет исключить из цикла операции, связанные с разгоном и остановкой программного конвейера. Однако данная система имеет ограниченные функциональные возможности при конвейеризации цикла со сложной структурой управления, поскольку рассчитана на выполнение лишь одной команды перехода в теле цикла. Для расширения функциональных возможностей данной системы применительно ко всем циклам потребуется значительное усложнение устройства управления и, как следствие, понижение тактовой частоты, что приведет к ограничению быстродействия процессора. Техническим результатом изобретения является расширение функциональных возможностей системы управления конвейеризованным циклом процессора широкого командного слова при сохранении высокой тактовой частоты. Для этого в системе управления конвейеризованным циклом процессора широкого командного слова, содержащей КЭШ память широких команд, блок регистров, дешифратор широких команд, устройство управления, блок выдачи адреса перехода, как минимум одно устройство считывания из оперативной памяти, как минимум одно устройство записи в оперативную память, причем информационный вход КЭШ памяти команд, первый вход-выход устройств считывания из оперативной памяти и выход устройств записи в оперативную память подключены к шине оперативной памяти, информационный выход КЭШ памяти команд подключен к информационному входу дешифратора широких команд, управляющий вход которого подключен к выходу блока выдачи адреса перехода, блок регистров связан двунаправленной шиной данных с информационным входом-выходом устройства управления, со вторым информационным входом-выходом устройств считывания из оперативной памяти и с информационным входом-выходом устройств записи в оперативную память, согласно изобретению введено устройство управления прологом и эпилогом конвейеризованного цикла, подключенное управляющим входом к выходной шине дешифратора широких команд, информационным входом - к двунаправленной шине данных блока регистров, а устройства считывания из оперативной памяти, записи в оперативную память и блок выдачи адреса перехода подключены управляющим входом к выходной шине устройства управления прологом и эпилогом конвейеризованного цикла. При этом устройство управления прологом и эпилогом конвейеризованного цикла содержит блок фиксации периода эпилога конвейеризованного цикла, блок фиксации момента окончания эпилога конвейеризованного цикла, блок фиксации периода пролога конвейеризованного цикла и блок задания режимов работы, причем первые управляющие входы блока фиксации периода эпилога конвейеризованного цикла, блока фиксации момента окончания эпилога конвейеризованного цикла и блока фиксации периода пролога конвейеризованного цикла подключены к управляющему входу устройства, второй управляющий и информационный входы блока фиксации периода эпилога конвейеризованного цикла, блока фиксации момента окончания эпилога конвейеризованного цикла, блока фиксации периода пролога конвейеризованного цикла, информационный и управляющий входы блока задания режимов работы подключены к информационному входу устройства, первый управляющий выход блока фиксации периода эпилога конвейеризованного цикла, управляющий выход блока фиксации момента окончания эпилога конвейеризованного цикла и управляющий выход блока фиксации периода пролога конвейеризованного цикла подключены к выходной шине устройства управления прологом и эпилогом конвейеризованного цикла, второй управляющий выход блока фиксации периода эпилога конвейеризованного цикла подключен к третьему управляющему входу блока фиксации момента окончания эпилога конвейеризованного цикла, первый и второй управляющие выходы блока задания режимов работы подключены к третьему управляющему входу блока фиксации периода эпилога конвейеризованного цикла и блока фиксации периода пролога конвейеризованного цикла соответственно. Кроме того, блок фиксации периода эпилога конвейеризованного цикла содержит мультиплексор, регистр, сумматор, компаратор и элемент И, причем к первому управляющему входу блока подключены первый и второй управляющие входы сумматора и элемента И, управляющий вход мультиплексора является вторым управляющим входом блока, третий управляющий вход элемента И и его выход являются соответственно третьим управляющим входом и первым управляющим выходом блока, второй управляющий выход которого подключен к выходу компаратора и четвертому управляющему входу элемента И, первый информационный вход мультиплексора является информационным входом блока, информационный выход мультиплексора подключен к информационному входу регистра, информационный выход которого подключен к информационному входу сумматора, информационный выход которого подключен к информационному входу компаратора и второму информационному входу мультиплексора. Кроме того, блок фиксации момента окончания эпилога конвейеризованного цикла содержит мультиплексор, регистр, сумматор, компаратор и элемент И, причем к первому управляющему входу блока подключены первый и второй управляющие входы сумматора и элемента И, выход которого является управляющим выходом блока, ко второму управляющему и информационному входам которого подключены соответственно управляющий и первый информационный входы мультиплексора, выход которого подключен к информационному входу регистра, информационный выход которого подключен к информационному входу сумматора, информационный выход которого подключен к информационному входу компаратора и второму информационному входу мультиплексора, третий управляющий вход сумматора является третьим управляющим входом блока, выход компаратора подключен к третьему управляющему входу элемента И. Кроме того, блок фиксации периода пролога конвейеризованного цикла содержит первый и второй мультиплексоры, сдвиговый регистр, триггер и элемент И, причем к первому управляющему входу блока подключены первый и второй управляющие входы сдвигового регистра и элемента И, ко второму управляющему входу блока подключены управляющие входы первого и второго мультиплексоров, к информационному входу блока подключены первые информационные входы первого и второго мультиплексоров, вторые информационные входы которых подключены соответственно к первому и второму информационным выходам сдвигового регистра, информационный вход которого соединен с выходом первого мультиплексора, третий управляющий вход и выход элемента И являются соответственно третьим управляющим входом и выходом блока, а выход второго мультиплексора подключен ко входу триггера, выход которого подключен к четвертому управляющему входу элемента И. Кроме того, блок задания режима работы содержит первый и второй регистры, причем информационный вход первого и второго регистров подключен к информационному входу блока, управляющий вход первого и второго регистров подключен к управляющему входу блока, первым и вторым управляющими выходами которого являются выход второго и выход первого регистров соответственно. Сущность изобретения заключается в том, что введение устройства управления прологом и эпилогом конвейеризованного цикла и соответствующее его подключение позволяют при организации конвейеризованного цикла получить без усложнения устройства управления и при сохранении высокого быстродействия процессора длительность одной стадии конвейера, равную одному машинному такту, в то время как в прототипе такой же цикл имел бы размер стадии не менее двух машинных тактов. Сравнение с ближайшим аналогом позволяет утверждать о выполнении критерия "новизна", а отсутствие в аналогах отличительных признаков заявляемой системы позволяет говорить о выполнении критерия "изобретательский уровень". Предварительные испытания подтверждают возможность широкого промышленного использования изобретения. На Фиг.1 представлена блок-схема многопроцессорной вычислительной системы, на Фиг.2 представлена система управления конвейеризованным циклом процессора широкого командного слова, на Фиг.3 представлено устройство управления прологом и эпилогом конвейеризованного цикла, на Фиг.4 приведены пример реализации конвейеризованного цикла и сравнение с неоптимизированным случаем, на Фиг.5 представлена блок-схема алгоритма работы устройства 4 и дешифратора 3 при выполнении команд передачи управления. Система управления конвейеризованным циклом процессора широкого командного слова является составной частью многопроцессорной вычислительной системы, которая включает процессоры 1-1...1-N широкого командного слова и оперативную память 2. Система содержит дешифратор 3 широких команд, устройство 4 управления, КЭШ память 5 широких команд, блок 6 регистров, устройства 7-1. . . 7-К считывания из оперативной памяти, устройства 8-1...8-К записи в оперативную память, устройство 9 управления прологом и эпилогом конвейеризованного цикла, блок 10 выдачи адреса перехода. Дешифратор 3 широких команд содержит информационный вход 11-1, управляющий вход 11-2 и выходную шину 12. Устройство 9 управления прологом и эпилогом конвейеризованного цикла содержит управляющий вход 13, информационный вход 14 и выходную шину 15. Блок 10 выдачи адреса перехода содержит управляющий вход 16 и управляющий выход, подключенный к управляющему входу 11-2 дешифратора 3. Кроме того, система содержит двунаправленную шину 17 данных, обеспечивающую связь информационного входа-выхода блока 6 с устройством 4 через его информационный вход-выход и с устройством 9 через его информационный вход 14. Каждое из устройств 7-i содержит управляющий вход 18 и первый и второй информационные входы-выходы 19-1 и 19-2 соответственно. Каждое из устройств 8-i содержит управляющий вход 20, информационный вход-выход 21 и информационный выход 22. К шине 23 связи с оперативной памятью 2 подключены первые информационные входы-выходы 19-1 устройств 7-i, информационные выходы 22 устройств 8-i и информационный вход КЭШ памяти 5, информационный выход которой подключен к информационному входу 11-1 дешифратора 3, выходная шина 12 которого подключена к управляющему входу 13 устройства 9. Выходная шина 15 последнего подключена к управляющим входам 18 и 20 устройств 7-i и 8-i соответственно и к управляющему входу 16 блока 10. Двунаправленная шина 17 также обеспечивает связь информационных входов-выходов 19-2 и 21 устройств 7-i и 8-i соответственно с информационным входом-выходом блока 6. Дешифратор 3, устройство 4, КЭШ память 5, блок 6, устройства 7-i и 8-i могут быть выполнены аналогично соответствующим блокам процессора прототипа (Фиг.2 и 4 патента США 5794029). Дешифратор 3 представляет собой стандартный дешифратор, предназначенный для распаковки (декодирования) всех операций, входящих в состав текущей широкой команды, поступающей на его информационный вход, и выработки (формирования) сигналов запуска исполнительных устройств процессора, в том числе устройств 7-i и 8-i. КЭШ память 5 может быть выполнена как стандартное ассоциативное запоминающее устройство, предназначенное в данном случае для выборки и хранения широких команд. Блок 6 регистров может содержать как минимум 2
Формула изобретения
1. Система управления процессора широкого командного слова, выполняющего конвейеризованный цикл вычислений, содержащая КЭШ память широких команд, блок регистров, дешифратор широких команд, устройство управления, блок выдачи адреса перехода, как минимум одно устройство считывания из оперативной памяти, как минимум одно устройство записи в оперативную память, причем информационный вход КЭШ памяти команд, первые входы-выходы устройств считывания из оперативной памяти и выходы устройств записи в оперативную память подключены к шине оперативной памяти, информационный выход КЭШ памяти широких команд подключен к информационному входу дешифратора широких команд, управляющий вход которого подключен к выходу блока выдачи адреса перехода, блок регистров связан двунаправленной шиной данных с информационным входом-выходом устройства управления, со вторыми информационными входами-выходами устройств считывания из оперативной памяти и с информационными входами выходами устройств записи в оперативную память, отличающаяся тем, что введено устройство управления прологом и эпилогом конвейеризованного цикла, подключенное управляющим входом к выходной шине дешифратора широких команд, информационным входом - к двунаправленной шине данных блока регистров, а устройства считывания из оперативной памяти, записи в оперативную память и блок выдачи адреса перехода подключены управляющими входами к выходной шине устройства управления прологом и эпилогом конвейеризованного цикла, при этом устройство управления прологом и эпилогом конвейеризованного цикла содержит блок фиксации периода эпилога конвейеризованного цикла, блок фиксации момента окончания эпилога конвейеризованного цикла, блок фиксации периода пролога конвейеризованного цикла, блок задания режимов работы устройства управления прологом и эпилогом конвейеризованного цикла, причем первые управляющие входы блока фиксации периода эпилога конвейеризованного цикла, блока фиксации момента окончания эпилога конвейеризованного цикла и блока фиксации периода пролога конвейеризованного цикла подключены к управляющему входу устройства управления прологом и эпилогом конвейеризованного цикла, второй управляющий и информационный входы блока фиксации периода эпилога конвейеризованного цикла, блока фиксации момента окончания эпилога конвейеризованного цикла, блока фиксации периода пролога конвейеризованного цикла, информационный и управляющий входы блока задания режимов работы подключены к информационному входу устройства управления прологом и эпилогом конвейеризованного цикла, первый управляющий выход блока фиксации периода эпилога конвейеризованного цикла, управляющий выход блока фиксации момента окончания эпилога конвейеризованного цикла и управляющий выход блока фиксации периода пролога конвейеризованного цикла подключены к выходной шине устройства управления прологом и эпилогом конвейеризованного цикла, второй управляющий выход блока фиксации периода эпилога конвейеризованного цикла подключен к третьему управляющему входу блока фиксации момента окончания эпилога конвейеризованного цикла, первый и второй управляющие выходы блока задания режимов работы устройства управления прологом и эпилогом конвейеризованного цикла подключены к третьим управляющим входам блока фиксации периода эпилога конвейеризованного цикла и блока фиксации периода пролога конвейеризованного цикла. 2. Система по п. 1, отличающаяся тем, что блок фиксации периода эпилога конвейеризованного цикла содержит мультиплексор, регистр, сумматор, компаратор и элемент И, причем к первому управляющему входу блока подключены первые и вторые управляющие входы сумматора и элемента И, управляющий вход мультиплексора является вторым управляющим входом блока, третий управляющий вход элемента И и его выход являются соответственно третьим управляющим входом и первым управляющим выходом блока, второй управляющий выход которого подключен к выходу компаратора и четвертому управляющему входу элемента И, первый информационный вход мультиплексора является информационным входом блока, информационный выход мультиплексора подключен к информационному входу регистра, информационный выход которого подключен к информационному входу сумматора, который осуществляет вычитание единицы из величины, находящейся в регистре, при этом информационный выход сумматора подключен к информационному входу компаратора и второму информационному входу мультиплексора. 3. Система по п. 1, отличающаяся тем, что блок фиксации момента окончания эпилога конвейеризованного цикла содержит мультиплексор, регистр, сумматор, компаратор и элемент И, причем к первому управляющему входу блока подключены первые и вторые управляющие входы сумматора и элемента И, выход которого является управляющим выходом блока, ко второму управляющему и информационному входам которого подключены соответственно управляющий и первый информационный входы мультиплексора, выход которого подключен к информационному входу регистра, информационный выход которого подключен к информационному входу сумматора, который осуществляет вычитание единицы из величины, находящейся в регистре, при этом информационный выход сумматора подключен к информационному входу компаратора и второму информационному входу мультиплексора, третий управляющий вход сумматора является третьим управляющим входом блока, выход компаратора подключен к третьему управляющему входу элемента И. 4. Система по п. 1, отличающаяся тем, что блок фиксации периода пролога конвейеризованного цикла содержит первый и второй мультиплексоры, сдвиговый регистр, триггер и элемент И, причем к первому управляющему входу блока подключены первые и вторые управляющие входы сдвигового регистра и элемента И, ко второму управляющему входу блока подключены управляющие входы первого и второго мультиплексоров, к информационному входу блока подключены первые информационные входы первого и второго мультиплексоров, вторые информационные входы которых подключены к первому и второму информационным выходам сдвигового регистра, информационный вход которого соединен с выходом первого мультиплексора, третий управляющий вход и выход элемента И являются соответственно третьим управляющим входом и выходом блока, а выход второго мультиплексора подключен ко входу триггера, выход которого подключен к четвертому управляющему входу элемента И. 5. Система по п. 1, отличающаяся тем, что блок задания режима работы содержит первый и второй регистры, причем информационные входы первого и второго регистров подключены к информационному входу блока, управляющие входы первого и второго регистров подключены к управляющему входу блока, первым и вторым управляющими выходами которого являются выход второго и выход первого регистров соответственно.РИСУНКИ
Рисунок 1, Рисунок 2, Рисунок 3, Рисунок 4, Рисунок 5MM4A Досрочное прекращение действия патента из-за неуплаты в установленный срок пошлины заподдержание патента в силе
Дата прекращения действия патента: 05.06.2011
Дата публикации: 27.03.2012