ПОДХОД МНОГОЭТАПНОГО ПЛАНИРОВАНИЯ НА УРОВНЕ ИСХОДНЫХ КОДОВ ДЛЯ РАЗРАБОТКИ И ТЕСТИРОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ МНОГОПРОЦЕССОРНЫХ СРЕД

1. Неоднородная многопроцессорная вычислительная система, содержащая:
множество специализированных процессоров (DP), причем каждый DP сконфигурирован для реализации одного или более программных модулей в течение операций времени выполнения;
множество управляющих процессоров (CP), причем каждый CP сконфигурирован для выполнения программного обеспечения планирования для управления операциями времени выполнения соответствующим подмножеством DP; и
одну или более шин, соединяющих между собой DP и CP, причем:
каждый CP сконфигурирован для изменения временной диаграммы реализации программных модулей для соответствующего подмножества DP на основании доступности ресурсов; и
каждый CP сконфигурирован для изменения временной диаграммы передач данных соответствующим подмножеством DP на основании доступности ресурсов.
2. Система по п.1, в которой доступность ресурсов содержит одно или более из доступности процессора, доступности памяти и доступности шины.
3. Система по п.1, в которой операции времени выполнения для неоднородной многопроцессорной -вычислительной системы реализуются в течение фазы онлайновой обработки в схеме разработки программного обеспечения, которая дополнительно содержит фазу офлайновой обработки, которая формирует программное обеспечение планирования для неоднородной многопроцессорной вычислительной системы.
4. Система по п.3, в которой фаза офлайновой обработки отображает каждый программный модуль на DP.
5. Система по п.1, в которой первый CP сконфигурирован с возможностью:
(a) принимать сообщение "задача выполнена" от первого DP, указывающее, что первый DP завершил первую задачу;
(b) определять, имеются ли какие-либо задержанные задачи для первого DP и, если это так, передавать сообщение "запустить задачу" на первый DP, чтобы выдать указание первому DP запустить задержанную задачу; и
(c) определять, имеются ли какие-либо зависимые задачи для первой задачи и, если это так, определять DP и отправлять сообщение "запустить задачу" на определенный DP, по меньшей мере, для одной зависимой задачи.
6. Система по п.1, в которой первый DP сконфигурирован с возможностью:
(a) принимать сообщение "запустить задачу" от первого CP, указывающее, что первый DP должен запустить первую задачу; и
(b) запускать первую задачу.
7. Система по п.1, в которой первый DP сконфигурирован с возможностью:
(a) принимать сообщение "передача входная" от первого CP, указывающее, что первый DP должен уменьшить счетчик зависимостей задачи; и
(b) исполнять функцию run, если первый DP определяет, что счетчик зависимостей задачи достиг нуля.
8. Система по п.1, в которой первый DP сконфигурирован с возможностью:
(a) принимать сообщение "передача выходная" от первого CP, указывающее, что первый DP должен пометить соответствующий буфер в качестве доступного; и
(b) использовать соответствующий буфер для другой цели.
1
2
1
2
9. Система по п.1, в которой специализированные процессоры и управляющие процессоры содержат, по меньшей мере, N процессоров первого типа процессора и N процессоров второго типа процессора, отличающегося от первого типа процессора, причем, по меньшей мере, одно значение из N и N больше 1.
1
2
10. Система по п.9, в которой и N, и N больше 1.
11. Система по п.1, в которой система содержит множество процессорных кластеров, соединенных между собой магистральной шиной, причем каждый процессорный кластер содержит CP и соответствующий набор DP, соединенных между собой шиной обмена.
12. Система по п.11, в которой:
каждый DP имеет локальную память; и
каждый кластер дополнительно содержит один или более процессоров DMA, обеспечивающих доступ к локальной памяти каждого DP в соответствующем наборе DP посредством шины обмена.
13. Система по п.12, в которой каждый кластер дополнительно содержит совместно используемую память с возможностью доступа каждым DP из соответствующего набора DP через шину обмена.