Средства разработки приложений



              

Разреженная модель вычислительных процессов в базовых блоках


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

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

Разреженную модель базовых блоков можно математически описать с помощью следующего ациклического графа:

G=(V; E; s; e), где

  • V - множество узлов, соответствующих конвейерным операциям, формирующим базовый блок
  • E⊂VxV - множество связей, определяющих порядок поступления узлов-операций (команд и задержек) на конвейер процессора
  • s∈V - стартовый (корневой) узел
  • e∈V - последний узел в любом корректном расписании, построенном на основе данного графа.

Узлы в таком графе должны быть помечены соответственно их назначению - являются ли они выборками кода команды из памяти, либо непроизводительными задержками.

Для решения поставленных задач необходимо ввести два вида связей между вершинами.

Введем следующие определения:

Определение 1: Связь называется "жесткой", если две операции, которые она соединяет должны поступать на конвейер строго друг за другом (между ними не должно быть других операций).

Обозначим подмножество жестких связей как H.

Определение 2: Связь называется "гибкой", если она задает лишь относительный порядок поступления операций на конвейер (между ними на конвейер могут поступать другие операции).

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

4.jpg

Рис. 4. Представление базового блока с помощью разреженной модели

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

  • В графе существует только одна корневая вершина - s.
  • В графе существует только один лист - e.
  • Граф является слабо связным.
  • В графе не существует циклов, так как не могут существовать циклические зависимости по данным между инструкциями в одном базовом блоке



Содержание  Назад  Вперед