Аноним

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

Материал из WEGA
Строка 68: Строка 68:




Вторая подзадача не так проста. Если :P3, иначе говоря, если существует другая допустимая ресинхронизация hr0, t0i, такая, что max(t) > max(t0), тогда на любой вершине v, для которой выполняется t[v] = max(t), должно иметь место соотношение t0[v] < t[v]. Для этих вершин известно следующее свойство:
Вторая команда не так проста. Если <math>\neg P3 \;</math>, иначе говоря, если существует другая допустимая ресинхронизация <math>\langle r', t' \rangle \;</math>, такая, что max(t) > max(t'), тогда на любой вершине v, для которой выполняется t[v] = max(t), должно выполняться соотношение t'[v] < t[v]. Для этих вершин известно следующее свойство:
8v2 V: t0[v] < t[v]
=> (9u 2 V: r[u] - r[v] > r0[u] - r0[v]) ;


что означает, что если время прибытия вершины v меньше при другой ресинхронизации hr0, t0i, тогда должна существовать вершина u, такая, что r0 обеспечивает больше регистров между u и v. Фактически одной такой вершиной u является начальная вершина самого длинного комбинационного пути к v, дающего задержку t[v].
<math>\forall v \in V: t'[v] < t[v] => (\exist u \in V: r[u] - r[v] > r'[u] - r'[v]) \;</math>,


что означает, что если время прибытия вершины v меньше при другой ресинхронизации <math>\langle r', t' \rangle \;</math>, тогда должна существовать вершина u, такая, что r' обеспечивает больше регистров между u и v. Фактически одной такой вершиной u является начальная вершина самого длинного комбинационного пути к v, дающего задержку t[v].


Для сокращения длительности цикла переменную r необходимо изменить, сделав ее ближе к r0. Следует отметить, что в контексте ресинхронизации важны не абсолютные значения r, но их разности. Если hr, ti является решением задачи ресинхронизации, то hr + c; ti, где c 2 Z – произвольная константа, также будет являться решением. Следовательно, r может быть сделана «ближе» к r0 за счет размещения большего количества регистров между u и v, то есть либо за счет уменьшения r[u], либо за счет увеличения r[v]. Отметим, что v можно легко определить из t [v] = max(t). Независимо от того, какое значение (r[v] или r[u]) выбрано для изменения, изменение должно быть единичным, поскольку r не следует чрезмерно корректировать. Таким образом, после корректировки будут по-прежнему выполняться соотношения r[v] r[u] < r0[v] — r0[u] или, что эквивалентно, r[v] — r0[v] < r[u] — r0[u]. Поскольку v легко определить, выберем для увеличения r[v]. Время прибытия t[v] можно незамедлительно уменьшить до d[v]. Это позволяет уточнить второе условие:
 
Для сокращения длительности цикла переменную r необходимо изменить, сделав ее ближе к r'. Следует отметить, что в контексте ресинхронизации важны не абсолютные значения r, но их разности. Если <math>\langle r, t \rangle \;</math> является решением задачи ресинхронизации, то <math>\langle r + c, t \rangle \;</math>, где <math>c \in \mathbb{Z} \;</math> – произвольная константа, также будет являться решением. Следовательно, r может быть сделана «ближе» к r' за счет размещения большего количества регистров между u и v, то есть либо за счет уменьшения r[u], либо за счет увеличения r[v]. Отметим, что v можно легко определить из соотношения t[v] = max(t). Независимо от того, какое значение (r[v] или r[u]) выбрано для изменения, изменение должно быть единичным, поскольку r не следует чрезмерно корректировать. Таким образом, после корректировки будут по-прежнему выполняться соотношения <math>r[v] - r[u] \le r'[v] - r'[u] \;</math> или, что эквивалентно, <math>r[v] — r'[v] \le r[u] — r'[u] \;</math>. Поскольку v легко определить, выберем для увеличения r[v]. Время прибытия t[v] можно незамедлительно уменьшить до d[v]. Это позволяет уточнить второе условие:
:P3 Л P2 Л 9v 2 V: t[v] = max(t) !r[v];t[v] :=r[v] + 1;d[v]:
:P3 Л P2 Л 9v 2 V: t[v] = max(t) !r[v];t[v] :=r[v] + 1;d[v]:


4551

правка