Операцией [элементарной] называется, заданная на множестве состояний памяти акселератора {s}A (см. 2.1.1.1) функция ?, формирующая следующее состояние памяти акселератора на основе предыдущего. Операции соответствуют действиям, которые могут быть выполнены за один такт (например, сложение двух регистров):
? : {s}A -> {s}A
Множество операций акселератора обозначим ?A={?}. Для любого акселератора в этом множестве присутствует так называемая пустая операция, не изменяющая состояние и обозначаемая ?0.
Каждая элементарная операция характеризуется функциональными ресурсами, которые необходимы для выполнения этой операции. Обозначим множество всех ресурсов акселератора как RA, а множество всех его подмножеств (включая пустое) как pA. Функция rA, отображающая множество операций ?A на множество pA, называется функцией ресурсов. Она задает набор ресурсов для каждой операции в ?A:
rA : ?A -> PA
Обозначим множество всех подмножеств в ?A, которые состоят из операций, использующих не пересекающиеся ресурсы, как ?A:
Таким образом, элемент множества ?A задает группу операций {?i}, которые могут выполняться параллельно (в рамках одного такта). Применением параллельной композиции (см. выше) этот элемент задает функцию на множестве состояний памяти акселератора {s}A. Далее элементы множества ?A будем отождествлять с задаваемыми ими функциями и называть комплекс-операциями. Заметим, что в этом смысле
Определим два управляющих действия: продвижения next и окончания end. Каждое представляет собой параметрическую функцию на множестве управляющих состояний акселератора. Параметром функции является номер слота
Действие end переводит соответствующий слот в холостое состояние.
Множество из этих управляющих действий обозначим UA={next,end}.
Дескриптором команды акселератора называется функция f, вычисляющая пару из комплекс-операции