В процессорах
Существуют пути обобщения такой структуры ВС на основе комплектации
многопроцессорных ВС на общем вычислительном ресурсе, -
Процессор в обычном смысле выполняет функции устройства управления -
управления выполнением программы. Исполнительные команды выполняются
процессорными элементами (ПЭ)
Однако при такой структуре и универсальности ПЭ целесообразно распределять
между ними не отдельные команды, а группы команд или законченные
операторы. И принимать решение об этом можно на основе анализа
бесскобочной записи (
Тогда, если представить, что программа в
Процессорный элемент и его
(рис 4.1) Подстек
Рассмотрим арифметическое выражение
A := a - (b x (c + d) - e : f) : (g x h x i)
Его
Aabcd + x ef : - gh x i x : - :=.
Запишем программу, произведя очевидное оптимизирующее преобразование, сокращающее количество цепочек имен и операций,
abcd + x ef : - ghi x x : - ЗпА.
Составим G, соответствующий порядку
выполнения операций на стеке при счете значения этого выражения
(рис. 4.2).
(рис 4.2) Граф-схема счёта арифметического выражения
Строить этот граф будем в порядке выполнения операций. Сначала изобразим
вершины a,b,c,d в соответствии с вызовом их в стек.
Затем изобразим вершину +, соответствующую сложению c и d.
Затем — вершину x, соответствующую умножению b на c+d. Так как цепочка операций
закончилась, изобразим вершины e и f и т.д. В
результате последовательных действий развернется граф G,
иллюстрирующий
Важный вывод на основе анализа графа: можно независимо (и параллельно)
извлекать из памяти величины по всем именам, составляющим цепочки имен в
Тогда разовьем стековый механизм, позволяющий производить
По числу цепочек имен (и операций) в
(рис 4.3) Взаимодействие подстеков
Определим возможный вариант реализации: подстеки могут заполняться не соответствующими величинами, а их адресами в СОЗУ. Т.е. традиционные приемы использования КЭШ-памяти должны быть применены здесь.
Взаимосвязь
Если данный
Если левый
При правильной бесскобочной записи каждый не полностью вырожденный
Продолжим рассмотрение примера, для простоты считая одинаковым время выполнения всех операций.
На первом шаге (в первом такте) выполняются операции на всех подстеках
(рис. 4.3,б). После этого
После выполнения операций на втором шаге (рис. 4.3,в)
После выполнения операций на третьем шаге (рис. 4.3,г)
После выполнения операций на
При произвольных временах выполнения операций динамическая картина
меняется, но правила взаимодействия
Таким образом, все подстеки образуют очередь заданий, которые
распределяются между операционными или исполнительными универсальными
устройствами — ПЭ для выполнения. ПЭ действительно образуют
распределяемый
ресурс системы, в общем случае — многопроцессорной, и назначаются
динамически по необходимости. Реализуется концепция виртуальных
исполнительных устройств или процессорных элементов
Пусть необходимо распараллелить счет арифметического выражения
Y:=(a+e:f)x if axl <= c then if l < gxh
then A else A+l else cx(h+16).
Предварительно необходимо распространить правила формирования if, then, else. Знак операции, в
которой участвует условное выражение, необходимо предпосылать каждому
Тогда легко на этом примере представить формирование безадресной программы счета значения арифметического выражения:$$\text{\boldmath{\begin{gathered} a e f : + \; \underline{if}\; \underbrace{a l \times c}_{\hbox to 0pt{\footnotesize\hss\text{оператор \underline\itshape if}\hss}} \le \;\underline{then} \;\underbrace{\underline{if}\; \underbrace{l g h}_{\hbox to 0pt{\footnotesize\hss \text{оператор \underline\itshape if}\hss}} \times < \; \underline{then}\; \underbrace{A \times{}}_{\hbox to 0pt{\footnotesize\hss\text{оператор \underline\itshape then}}}}_{\hbox to 0pt{\footnotesize\hss\text{оператор \underline\itshape then}}} \;\underline{else}\\ \underbrace{A l + \times{}}_{\hbox to 0pt{\footnotesize\hss\text{оператор \underline\itshape else}\hss}} \underline{else} \underbrace{c h 16 +\times \times{}}_{\hbox to 0pt{\footnotesize\hss\text{оператор \underline\itshape else}\hss}} \underline{\text{Зп}}Y \end{gathered}}}$$
Процессор, как указывалось ранее, выполняя функции лишь устройства
управления, производит if он формирует ему ссылку на два then и
первого else —
после их анализа.
Преобразование выделенных для счета
| Такты (шаги) | Номер 0 занятого ПЭ (стека) | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|---|
| 1 | a |
||||||
| 2 | e a Ссылка 1 |
a |
|||||
| 3 | f e a Ссылка 1 |
l a Ссылка 2 |
c |
||||
| 4 | f e a Ссылка 1 :+Зп у |
l a Ссылка 2 x |
c Ссылка 3 |
l |
|||
| 5 | e:f a Ссылка 1 +Зп у |
ax l Ссылка 2 |
c Ссылка 3 <= |
g l Ссылка 4 |
A |
||
| 6 | a+e:f Ссылка 1 Зп у |
c ax l Ссылка 3 <= |
h g l Ссылка 4 |
A Нет ссылки x |
A |
||
| 7 | a+e:f Ссылка 1 Зп у |
Операция: ax l <= c Ссылка 3,6 |
h g l Ссылка 4,5 x < |
A Нет ссылки x |
1 A Нет ссылки |
c |
|
| 8 | a+e:f Ссылка 1 Зп у |
Пусть ax l=c Ссылка 3 |
gx h l Ссылка 4,5 < |
A Нет ссылки x |
1 A Нет ссылки +x |
c Нет ссылки |
|
| 9 | a+e:f Ссылка 3 Зп у |
Операция: l < gx h Ссылка 4,5 |
A Нет ссылки x |
A+l Нет ссылки x |
|||
| 10 | a+e:f Ссылка 3 Зп у |
Пусть l > gx h Ссылка 5 |
A+l Нет ссылки x |
||||
| 11 | a+e:f Ссылка 3 Зп у |
A+l Нет ссылки x |
|||||
| 12 | A+l a+e:f Нет ссылки x Зп у |
Рассмотрим работу системы по шагам (тактам), для упрощения предполагая, что каждая операция выполняется за один такт.
В первом такте процессор, анализируя программу
символ за символом, начинает анализ первой цепочки имен. Из
вычислительного ресурса назначается ПЭ 0, и он начинает формирование
Во втором такте, "запустив" формирование первой
цепочки, процессор находит вторую цепочку имен. За ней закрепляется ПЭ 1.
Т.к. определилось место обработки этой, правой для предыдущей цепочки
имен, цепочки, то процессорному элементу 0 сообщается ссылка на свой
правый e. Однако процессор зафиксировал
тот факт, что он при анализе программы вошел в оператор if-then-else на первом
лексикографическом уровне.
В третьем такте ПЭ 0 загружает в свой стек адрес f,
ПЭ 1 загружает адрес l, а процессор
находит следующую цепочку, за которой закрепляет ПЭ 2. Ссылку на этот
процессорный элемент он сообщает ПЭ 1, а ПЭ 2 загружает в свой стек
единственный адрес c.
В четвертом такте ПЭ 0 загружает в свой стек цепочку операций.
Такие же действия выполняет и ПЭ 1. За первой цепочкой имен оператора then закрепляется ПЭ 3. Тогда ПЭ 2
получает ссылку пока только на этот процессорный элемент, на котором
находится один из его правых l
в свой if-then-else
на втором лексикографическом уровне.
В пятом такте процессор анализирует оператор then.
За первой (единственной) его цепочкой имен
закрепляется ПЭ 4. Он загружает в свой А.
ПЭ 3 загружает в свой стек адрес g и получает
ссылку на ПЭ 4. ПЭ 0 и ПЭ 1 выполняют операции из своих цепочек операций.
ПЭ 2 находится в состоянии ожидания.
В шестом такте процессор приступает к анализу первой
цепочки имен оператора else на втором
лексикографическом уровне. За этой цепочкой имен закрепляется процессорный
элемент 5, который загружает в свой А. При
этом ПЭ 4 не только не получает ссылки на правый А является одним из альтернативных значений арифметического
выражения. ПЭ 0 продолжает счет. Т.к. в пятом такте на стеке ПЭ 1
выполнение всех возможных операций закончилось, а ПЭ 2 пребывал в ожидании
именно этого, то в соответствии со своей ссылкой ПЭ 1 переводит адресный
стек ПЭ 2 в вершину своего h. ПЭ 4 загружает цепочку операций, формируя тем самым
не полностью вырожденный
В седьмом такте процессор закончил анализ
оператора else на втором лексикографическом уровне и приступает к
анализу оператора else на первом
лексикографическом уровне. За цепочкой имен этого оператора закрепляется
ПЭ 6. В его с. ПЭ 5 загружает
в свой l. Т.к. на его else, то определились и вторые ссылки
в ПЭ 1 и ПЭ 3. ПЭ 3 вводит цепочку операций.
Пусть при выполнении процессорным элементом 1 операции отношения в восьмом
такте оказалось справедливым равенство. Тогда
результат счета значения арифметического оператора определяется
результатом выполнения оператора then на первом
лексикографическом уровне. Т.е. ссылка на два else на первом
лексикографическом уровне. ПЭ 5 загружает себе цепочку операций.
Т.к.
ПЭ 3 выполняет операцию отношения. ПЭ 4 находится в состоянии ожидания, а ПЭ 5 выполняет очередную операцию из своей цепочки операций.
В десятом такте предположим, что в результате выполнения
операции отношения процессорным элементом 3 оказалось справедливым
неравенство, определяющее необходимость выполнения оператора else
на втором лексикографическом уровне. Тем самым
определяется значение ссылки ПЭ 3 на правый
Т.к. ПЭ 5 содержит не полностью вырожденный
В двенадцатом такте полностью определилось завершение счета процессорным элементом 0.
Рассмотренная на принципиальном уровне схема распределения работ в
Ее главным недостатком является привязанность к способу формирования
На пути
Первый из них предполагает "укрупнение" стеков на основе алгебры их преобразований.
Так, в нашем примере явно просматривается целесообразность замены
al x c <= -> cal x >.
Эта замена позволяет использовать один стек вместо двух.
В первом примере мы упомянули очевидную замену
gh x i x -> ghi x x.
Она также исключает излишнее "измельчение" работ.
Однако таких преобразований, приводящих к укрупнению и сокращению числа
Поэтому следующий уровень преобразований может использовать сформированные
транслятором указания о неделимых операторах, выполняющихся на одном
стеке, т.е. одним процессорным элементом. Для этого могут использоваться
Например, программа счета значения арифметического выражения с условиями, которую мы рассматривали выше, может после оптимизации иметь вид$$\text{\boldmath{\begin{gathered} aef:+\underline{if}(al\times c\le)\;\underline{then}\;\underline{if}\; lgh\times\gt\underline{then}A\times\\ \underline{else}\; Al+\times\underline{else}\; ch16+\times\times\underline{\text\itshape 3пY} \end{gathered}}}.$$ Здесь выделена конструкция в таких операторных скобках.
Хотя наши примеры оказались не столь богатыми для демонстрации подобных укрупнений работ, сложные программы вычислительного характера в таком укрупнении, несомненно, нуждаются.
С развитием архитектурной сложности ВС и с проектированием больших
интегральных схем появилось новое направление в развитии архитектур —
Так, в проекте МВК "Эльбрус-3" длина командного слова составляет 320 разрядов. В нем задано управление каждым из семи ИУ (два — сложения, два — умножения, одно — деления, два логических), их взаимодействием, считыванием операндов и записью результатов, передачей управления.
Так как управление всеми устройствами явное, то вся работа по оптимальному распараллеливанию возлагается на транслятор.
Однако состояние не всех устройств может быть точно предсказано на каждый момент времени. Когда необходимо обращение к ОП, из-за непредсказуемости эффекта расслоения памяти и возможности конфликтов при одновременном обращении и других процессоров используются элементы динамического планирования обращений к ОП.
Тогда жесткое использование данных, считанных из ОП в регистры стека в
СОЗУ (в МВК "Эльбрус-3" стек велик и распространяется на ОП,
оперативно
используемая его часть в СОЗУ называется буфером стека) планируется
транслятором по минимальному значению количества тактов обращения к ОП.
Синхронизация же с учетом большего числа тактов обращения осуществляется с
помощью
Каждый регистр буфера стека и буфера массивов имеет
Широко используется непосредственная передача результатов с одних ИУ на другие. Для этого результаты операций сохраняются несколько тактов в протоколе результатов работы каждого ИУ.
Однако "длинные" команды непроизводительно расходуют память, и с развитием архитектуры заменены командами переменной длины.
В результате проводимых исследований, в контексте разработок крупнейших зарубежных фирм, сложилось представление об архитектуре микропроцессора, используемого в многопроцессорной вычислительной системе, на основе совместного применения всех существующих способов оптимизации параллельной обработки информации.
Однако эффективность распараллеливания зависит от решения (статического
или динамического) задач оптимального планирования загрузки оборудования.
Поиск в этом направлении привел к целесообразности
Важной особенностью
Поэтому второй случай ветвления, осуществляемого внутри линейного участка программы, предпочтителен, хотя также приводит к избыточности оборудования, используемого при вычислениях.
В процессорах
Существуют пути обобщения такой структуры ВС на основе комплектации
многопроцессорных ВС на общем вычислительном ресурсе, -
Процессор в обычном смысле выполняет функции устройства управления -
управления выполнением программы. Исполнительные команды выполняются
процессорными элементами (ПЭ)
Однако при такой структуре и универсальности ПЭ целесообразно распределять
между ними не отдельные команды, а группы команд или законченные
операторы. И принимать решение об этом можно на основе анализа
бесскобочной записи (
Тогда, если представить, что программа в
Процессорный элемент и его
(рис 4.1) Подстек
Рассмотрим арифметическое выражение
A := a - (b x (c + d) - e : f) : (g x h x i)
Его
Aabcd + x ef : - gh x i x : - :=.
Запишем программу, произведя очевидное оптимизирующее преобразование, сокращающее количество цепочек имен и операций,
abcd + x ef : - ghi x x : - ЗпА.
Составим G, соответствующий порядку
выполнения операций на стеке при счете значения этого выражения
(рис. 4.2).
(рис 4.2) Граф-схема счёта арифметического выражения
Строить этот граф будем в порядке выполнения операций. Сначала изобразим
вершины a,b,c,d в соответствии с вызовом их в стек.
Затем изобразим вершину +, соответствующую сложению c и d.
Затем — вершину x, соответствующую умножению b на c+d. Так как цепочка операций
закончилась, изобразим вершины e и f и т.д. В
результате последовательных действий развернется граф G,
иллюстрирующий
Важный вывод на основе анализа графа: можно независимо (и параллельно)
извлекать из памяти величины по всем именам, составляющим цепочки имен в
Тогда разовьем стековый механизм, позволяющий производить
По числу цепочек имен (и операций) в
(рис 4.3) Взаимодействие подстеков
Определим возможный вариант реализации: подстеки могут заполняться не соответствующими величинами, а их адресами в СОЗУ. Т.е. традиционные приемы использования КЭШ-памяти должны быть применены здесь.
Взаимосвязь
Если данный
Если левый
При правильной бесскобочной записи каждый не полностью вырожденный
Продолжим рассмотрение примера, для простоты считая одинаковым время выполнения всех операций.
На первом шаге (в первом такте) выполняются операции на всех подстеках
(рис. 4.3,б). После этого
После выполнения операций на втором шаге (рис. 4.3,в)
После выполнения операций на третьем шаге (рис. 4.3,г)
После выполнения операций на
При произвольных временах выполнения операций динамическая картина
меняется, но правила взаимодействия
Таким образом, все подстеки образуют очередь заданий, которые
распределяются между операционными или исполнительными универсальными
устройствами — ПЭ для выполнения. ПЭ действительно образуют
распределяемый
ресурс системы, в общем случае — многопроцессорной, и назначаются
динамически по необходимости. Реализуется концепция виртуальных
исполнительных устройств или процессорных элементов
Пусть необходимо распараллелить счет арифметического выражения
Y:=(a+e:f)x if axl <= c then if l < gxh
then A else A+l else cx(h+16).
Предварительно необходимо распространить правила формирования if, then, else. Знак операции, в
которой участвует условное выражение, необходимо предпосылать каждому
Тогда легко на этом примере представить формирование безадресной программы счета значения арифметического выражения:$$\text{\boldmath{\begin{gathered} a e f : + \; \underline{if}\; \underbrace{a l \times c}_{\hbox to 0pt{\footnotesize\hss\text{оператор \underline\itshape if}\hss}} \le \;\underline{then} \;\underbrace{\underline{if}\; \underbrace{l g h}_{\hbox to 0pt{\footnotesize\hss \text{оператор \underline\itshape if}\hss}} \times < \; \underline{then}\; \underbrace{A \times{}}_{\hbox to 0pt{\footnotesize\hss\text{оператор \underline\itshape then}}}}_{\hbox to 0pt{\footnotesize\hss\text{оператор \underline\itshape then}}} \;\underline{else}\\ \underbrace{A l + \times{}}_{\hbox to 0pt{\footnotesize\hss\text{оператор \underline\itshape else}\hss}} \underline{else} \underbrace{c h 16 +\times \times{}}_{\hbox to 0pt{\footnotesize\hss\text{оператор \underline\itshape else}\hss}} \underline{\text{Зп}}Y \end{gathered}}}$$
Процессор, как указывалось ранее, выполняя функции лишь устройства
управления, производит if он формирует ему ссылку на два then и
первого else —
после их анализа.
Преобразование выделенных для счета
| Такты (шаги) | Номер 0 занятого ПЭ (стека) | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|---|
| 1 | a |
||||||
| 2 | e a Ссылка 1 |
a |
|||||
| 3 | f e a Ссылка 1 |
l a Ссылка 2 |
c |
||||
| 4 | f e a Ссылка 1 :+Зп у |
l a Ссылка 2 x |
c Ссылка 3 |
l |
|||
| 5 | e:f a Ссылка 1 +Зп у |
ax l Ссылка 2 |
c Ссылка 3 <= |
g l Ссылка 4 |
A |
||
| 6 | a+e:f Ссылка 1 Зп у |
c ax l Ссылка 3 <= |
h g l Ссылка 4 |
A Нет ссылки x |
A |
||
| 7 | a+e:f Ссылка 1 Зп у |
Операция: ax l <= c Ссылка 3,6 |
h g l Ссылка 4,5 x < |
A Нет ссылки x |
1 A Нет ссылки |
c |
|
| 8 | a+e:f Ссылка 1 Зп у |
Пусть ax l=c Ссылка 3 |
gx h l Ссылка 4,5 < |
A Нет ссылки x |
1 A Нет ссылки +x |
c Нет ссылки |
|
| 9 | a+e:f Ссылка 3 Зп у |
Операция: l < gx h Ссылка 4,5 |
A Нет ссылки x |
A+l Нет ссылки x |
|||
| 10 | a+e:f Ссылка 3 Зп у |
Пусть l > gx h Ссылка 5 |
A+l Нет ссылки x |
||||
| 11 | a+e:f Ссылка 3 Зп у |
A+l Нет ссылки x |
|||||
| 12 | A+l a+e:f Нет ссылки x Зп у |
Рассмотрим работу системы по шагам (тактам), для упрощения предполагая, что каждая операция выполняется за один такт.
В первом такте процессор, анализируя программу
символ за символом, начинает анализ первой цепочки имен. Из
вычислительного ресурса назначается ПЭ 0, и он начинает формирование
Во втором такте, "запустив" формирование первой
цепочки, процессор находит вторую цепочку имен. За ней закрепляется ПЭ 1.
Т.к. определилось место обработки этой, правой для предыдущей цепочки
имен, цепочки, то процессорному элементу 0 сообщается ссылка на свой
правый e. Однако процессор зафиксировал
тот факт, что он при анализе программы вошел в оператор if-then-else на первом
лексикографическом уровне.
В третьем такте ПЭ 0 загружает в свой стек адрес f,
ПЭ 1 загружает адрес l, а процессор
находит следующую цепочку, за которой закрепляет ПЭ 2. Ссылку на этот
процессорный элемент он сообщает ПЭ 1, а ПЭ 2 загружает в свой стек
единственный адрес c.
В четвертом такте ПЭ 0 загружает в свой стек цепочку операций.
Такие же действия выполняет и ПЭ 1. За первой цепочкой имен оператора then закрепляется ПЭ 3. Тогда ПЭ 2
получает ссылку пока только на этот процессорный элемент, на котором
находится один из его правых l
в свой if-then-else
на втором лексикографическом уровне.
В пятом такте процессор анализирует оператор then.
За первой (единственной) его цепочкой имен
закрепляется ПЭ 4. Он загружает в свой А.
ПЭ 3 загружает в свой стек адрес g и получает
ссылку на ПЭ 4. ПЭ 0 и ПЭ 1 выполняют операции из своих цепочек операций.
ПЭ 2 находится в состоянии ожидания.
В шестом такте процессор приступает к анализу первой
цепочки имен оператора else на втором
лексикографическом уровне. За этой цепочкой имен закрепляется процессорный
элемент 5, который загружает в свой А. При
этом ПЭ 4 не только не получает ссылки на правый А является одним из альтернативных значений арифметического
выражения. ПЭ 0 продолжает счет. Т.к. в пятом такте на стеке ПЭ 1
выполнение всех возможных операций закончилось, а ПЭ 2 пребывал в ожидании
именно этого, то в соответствии со своей ссылкой ПЭ 1 переводит адресный
стек ПЭ 2 в вершину своего h. ПЭ 4 загружает цепочку операций, формируя тем самым
не полностью вырожденный
В седьмом такте процессор закончил анализ
оператора else на втором лексикографическом уровне и приступает к
анализу оператора else на первом
лексикографическом уровне. За цепочкой имен этого оператора закрепляется
ПЭ 6. В его с. ПЭ 5 загружает
в свой l. Т.к. на его else, то определились и вторые ссылки
в ПЭ 1 и ПЭ 3. ПЭ 3 вводит цепочку операций.
Пусть при выполнении процессорным элементом 1 операции отношения в восьмом
такте оказалось справедливым равенство. Тогда
результат счета значения арифметического оператора определяется
результатом выполнения оператора then на первом
лексикографическом уровне. Т.е. ссылка на два else на первом
лексикографическом уровне. ПЭ 5 загружает себе цепочку операций.
Т.к.
ПЭ 3 выполняет операцию отношения. ПЭ 4 находится в состоянии ожидания, а ПЭ 5 выполняет очередную операцию из своей цепочки операций.
В десятом такте предположим, что в результате выполнения
операции отношения процессорным элементом 3 оказалось справедливым
неравенство, определяющее необходимость выполнения оператора else
на втором лексикографическом уровне. Тем самым
определяется значение ссылки ПЭ 3 на правый
Т.к. ПЭ 5 содержит не полностью вырожденный
В двенадцатом такте полностью определилось завершение счета процессорным элементом 0.
Рассмотренная на принципиальном уровне схема распределения работ в
Ее главным недостатком является привязанность к способу формирования
На пути
Первый из них предполагает "укрупнение" стеков на основе алгебры их преобразований.
Так, в нашем примере явно просматривается целесообразность замены
al x c <= -> cal x >.
Эта замена позволяет использовать один стек вместо двух.
В первом примере мы упомянули очевидную замену
gh x i x -> ghi x x.
Она также исключает излишнее "измельчение" работ.
Однако таких преобразований, приводящих к укрупнению и сокращению числа
Поэтому следующий уровень преобразований может использовать сформированные
транслятором указания о неделимых операторах, выполняющихся на одном
стеке, т.е. одним процессорным элементом. Для этого могут использоваться
Например, программа счета значения арифметического выражения с условиями, которую мы рассматривали выше, может после оптимизации иметь вид$$\text{\boldmath{\begin{gathered} aef:+\underline{if}(al\times c\le)\;\underline{then}\;\underline{if}\; lgh\times\gt\underline{then}A\times\\ \underline{else}\; Al+\times\underline{else}\; ch16+\times\times\underline{\text\itshape 3пY} \end{gathered}}}.$$ Здесь выделена конструкция в таких операторных скобках.
Хотя наши примеры оказались не столь богатыми для демонстрации подобных укрупнений работ, сложные программы вычислительного характера в таком укрупнении, несомненно, нуждаются.
С развитием архитектурной сложности ВС и с проектированием больших
интегральных схем появилось новое направление в развитии архитектур —
Так, в проекте МВК "Эльбрус-3" длина командного слова составляет 320 разрядов. В нем задано управление каждым из семи ИУ (два — сложения, два — умножения, одно — деления, два логических), их взаимодействием, считыванием операндов и записью результатов, передачей управления.
Так как управление всеми устройствами явное, то вся работа по оптимальному распараллеливанию возлагается на транслятор.
Однако состояние не всех устройств может быть точно предсказано на каждый момент времени. Когда необходимо обращение к ОП, из-за непредсказуемости эффекта расслоения памяти и возможности конфликтов при одновременном обращении и других процессоров используются элементы динамического планирования обращений к ОП.
Тогда жесткое использование данных, считанных из ОП в регистры стека в
СОЗУ (в МВК "Эльбрус-3" стек велик и распространяется на ОП,
оперативно
используемая его часть в СОЗУ называется буфером стека) планируется
транслятором по минимальному значению количества тактов обращения к ОП.
Синхронизация же с учетом большего числа тактов обращения осуществляется с
помощью
Каждый регистр буфера стека и буфера массивов имеет
Широко используется непосредственная передача результатов с одних ИУ на другие. Для этого результаты операций сохраняются несколько тактов в протоколе результатов работы каждого ИУ.
Однако "длинные" команды непроизводительно расходуют память, и с развитием архитектуры заменены командами переменной длины.
В результате проводимых исследований, в контексте разработок крупнейших зарубежных фирм, сложилось представление об архитектуре микропроцессора, используемого в многопроцессорной вычислительной системе, на основе совместного применения всех существующих способов оптимизации параллельной обработки информации.
Однако эффективность распараллеливания зависит от решения (статического
или динамического) задач оптимального планирования загрузки оборудования.
Поиск в этом направлении привел к целесообразности
Важной особенностью
Поэтому второй случай ветвления, осуществляемого внутри линейного участка программы, предпочтителен, хотя также приводит к избыточности оборудования, используемого при вычислениях.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.