Опубликован: 22.12.2006 | Уровень: специалист | Доступ: платный | ВУЗ: Московский государственный университет путей сообщения
Лекция 10:

Асинхронная ВС на принципах "data flow"

< Лекция 9 || Лекция 10: 1234 || Лекция 11 >

Для этого преобразуем запись на ПОЛИЗ:

A \fr{a}{b}{({+}{,} 1{,}1)\!\!\!\! \fr{c}{d}} {(+{,}
2{,}1)\!\!\!\fr{e}{f}}\!\!\!\!\!\!
{\times}(+{,} 3{,}1) g\fr{h}{i}\!\!\!\!\!\!\!\!\!\!\! {+} {\times}(\times{,}
4{,}1)j\times
{-}klm {\longrightarrow}
 (\surd{,} 1{,}2) {-}{\times} : :=

Конструкции, объединенные стрелками, дают первые пять команд программы коммутации.

Предположим, что эти пять операций выполнены. Результаты находятся на тех же регистрах. С учетом имен этих результатов (адресов занимаемых регистров), перепишем запись на ПОЛИЗ.

A (1,1) (2,1) \times (3, 1) g + \times (4, 1) j \times - k l (1, 2) - \times: :=   .

Теперь условно выполняем операции следующего яруса, последовательно занимая для этого регистры буферов ПЭ:

A\fr{(1,1)}{(2,1)}(\times,2,2)\fr{(3,1)}{g}(+3,2)\times\fr{(4,1)}{j}(\times,4,2)-k
\fr{l}{(1,2)}(-,1,3)\times::=

Записываем следующие 6—9 команды программы.

После их условного выполнения запись на ПОЛИЗ преобразуется

A (2, 2) (3, 2) \times (4, 2) - k (1, 3) \times : := .

Снова назначаем ПЭ-исполнители и преобразуем эту запись:

A\fr{(2,2)}{(3,2)}(\times,2,3)(4,2)-\fr{k}{(1,3)}(\times,3,3)::=
Это позволяет сформировать команды 10—11.

С учетом их условного выполнения формируется запись

A (2 - 3) (4, 2) - (3, 3) ::=

По ней формируем выполнение единственной операции следующего яруса

A\fr{(2,3)}{(4,2)} (-, 4, 3) (3, 3) : :=

Формируем команду 12.

Затем вновь преобразуем запись

A (4, 3) (3, 3) : :=
и записываем схему условного выполнения последней операции
A\fr{(4,3)}{(3,3)}(:,1,4):=

Формируем команду 13. Этой командой показано, что принципиально выбор ПЭ и регистра его буфера могут производиться процессором (а не программистом или транслятором); тогда по третьему адресу можно сразу указывать адрес записи в память.

Рассмотрим, как эта программа выполняется процессором коммутации (процессором).

По команде 1 в регистр (1, 1) записывается код операции "+"; в свободных регистрах ОЗП (очереди заявок к памяти) формируются инструкции ПП (процессору памяти) "считать a — послать в (1, 1), в первую позицию (в позицию первого операнда)", "считать b — послать в (1, 1), во вторую позицию".

По команде 2 формируются код операции в регистре (2, 1) и две заявки ПП на считывание и отсылку в (2, 1).

Аналогично выполняются команды 3 и 4.

По команде 5 записывается код операции " \surd " в регистр (1, 2) и формируется одна заявка на считывание m и отсылку в этот регистр.

По команде 6 в регистр (1, 1) записывается адрес (2, 2), первая позиция, куда должен быть отправлен результат выполнения операции. Аналогично, в регистр (2, 1) записывается адрес (2, 2), вторая позиция, как адрес отсылки результата.

Так прослеживается выполнение всех команд.

При выполнении команды 13, как уже говорилось выше, отсутствует явное задание ПЭ-исполнителя команды и адрес регистра в его буфере, где соответствующая инструкция должна формироваться. Учитывая последовательную загрузку ПЭ, здесь должен быть указан адрес (1, 4). Адрес записи результата указывается сразу, и это говорит о том, что процессор сам ведет учет и использование ПЭ.

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

На рис. 10.4 представлена схема формирования и коммутации инструкций в регистрах буферов ПЭ и в очереди заявок к памяти.

Формирование инструкций процессорным элементам

Рис. 10.4. Формирование инструкций процессорным элементам

Почему же в регистре буфера ПЭ предусмотрены четыре позиции для операндов?

Пятиадресные команды используются для выполнения команд коммутации типа "if - then - else".

Запрограммируем счет выражения

\unitlength=1mm
\begin{picture}(0,0)
\put(38,0){\line(0,-1){3}}
\put(38,-3){\line(1,0){50}}
\put(88,0){\line(0,-1){3}}
\end{picture}
 A := \text{ \it\bfseries if } a+b > c \text{ \it\bfseries then if } c - d
>  e\text{ \it\bfseries then }
 X \text{ \it\bfseries else } B - D \text{ \it\bfseries else } Q

Cформируем три команды для коммутации счета составляющих арифметических операторов (рис. 10.5). Затем последовательно используем две команды УСЛ для коммутации внутренней и внешней конструкций типа "if - then - else".

Программа коммутации условного выражения

Рис. 10.5. Программа коммутации условного выражения

Команда УСЛ A1 A2 A3 A4 A5 интерпретируется как A3 := if (A1) > (A2) then (A4) else (A5) и записывается в двух словах.

< Лекция 9 || Лекция 10: 1234 || Лекция 11 >
Татьяна Королькова
Татьяна Королькова
Россия, Москва
Орхан Джафарзаде
Орхан Джафарзаде
Азербайджан, Баку