2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие

2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие

2. Обработка инфы

Основной единицей обработки инфы в ВК "Эльбрус" является процеду-ра. В разных языках методы организации процедуры несколько различны. Процедура в ВК "Эльбрус" обладает последующими основными качествами:

  1. Телом процедуры является программка фактически неограниченной 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие длины.

  2. Процедура имеет имя, по которому может быть вызвана "дистанционно"




  1. Процедура имеет доступ к своим данным (локальные, данные) и данным других процедур (глобальные данные). Доступ к глобальным данным регламентирован ее словарным уровнем, задаваемым 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие статически текстом программки, другими словами любая процедура имеет свое собственное адресное место.

  2. Процедура может быть вызвана рекурсивно.

5: Фактические характеристики процедуры определяются запускающей ее про-цедурой.

  1. Процедура может поставлять значение и употребляться для получения 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие "побочного" эффекта.

  2. Выполнение процедуры спецефическим образом находится в зависимости от типа и форма-та поставляемых фактических характеристик.

Более много этим свойствам удовлетворяют процедуры языков "Алгол 60" и "Алгол 68". Подобные понятия: этих и 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие других языков можно рассматри-вать личным случаем вышеперечисленного понятия процедуры. Так "блок"

89

В.С.Бурцев, В.П.Торчигин. Неформальное описание системы команд

"Алгола 60" и "Алгола 68" можно рассматривать как функцию, которая вы-полняется там 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие, где она описана (процедура без имени, не владеющая свойст-вом дистанционного вызова).

Понятие "подпрограмма" и "функция" в языке "ФОРТРАН" может рас-сматриваться как процедура, не владеющая свойством рекурсивного пуска и описанная на 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие одном словарном уровне.

Операторная функция в языке "ФОРТРАН" может рассматриваться как процедура, не владеющая свойством рекурсивности, лексикографически опи-санная снутри подпрограммы или функции.

Стандартные операторы операций: +, -, *, :, < и т.д., также являются процедурами 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие, статически описанными на самом малом уровне (имена этих про-цедур доступны всей системе, включая процедуры операционной системы), тело которых совместно с их локальными данными реализованы аппаратно. Благодаря этим свойствам 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие пуск таких процедур существенно упрощен: нет необходимости переключать счетчик команд, нет необходимости поменять адресные места. Но механизм постановки фактических характеристик остается без конфигурации Таким макаром, структура реализации всех операций, принятая в ВК "Эльбрус", тождественна с 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие реализацией процедур.

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

В предстоящем изложении величины, подаваемые в качестве характеристик ап­паратным процедурам (операциям), будем называть операндами 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие.

2.1. Процедуры

2.1.1. Реализация воззваний к процедурам в языках ФОРТРАН, КОБОЛ, ЛИСП

Для простоты разглядим поначалу метод обработки процедур в языках, не имеющих блочной структуры (к примеру, ФОРТРАН, КОБОЛ, ЛИСП, APL). В процедурах таких языков доступны 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие только локальные характеристики и фактические характеристики, поставляемые через механизм передачи характеристик (реализация COMMON в языке Фортран в реальном разделе не рассматривается и будет рассмотрена в последнем разделе этой главы).

Рассредотачивание памяти для 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие каждой вызываемой процедуры делается динамически. При входе в функцию ей отводится в стеке нужная область свободной памяти для формальных и локальных характеристик, и УС передвигается на новейшую границу. Отводимая процедуре область 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие памяти описывается дескриптором, помещенным в один из базисных регистров, к примеру, с номером N. Воззвание к величине в этой области осуществляется при помощи адресной пары (N, И). В рассматриваемом облегченном случае довольно 1-го базисного 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие регистра, потому N является просто адресом 1-го из базисных регистров. В предстоящем при реализации блочных структур N будет указывать уровень процедуры. Математический адресок величины рассчитывается методом индексации дескриптора в базисном регистре с 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие номером N индексом И. Область свободной памяти в стеке ниже новейшей границы употребляется для хране-

90

В.С.Бурцев, В.П.Торчигин. Неформальное описание системы команд

ния промежных результатов. При 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие выходе из, процедуры Отведенная ей об-ласть памяти ворачивается назад в область свободной памяти методом вос-становления прежнего УС. Таким макаром, каждой процедуре отводится ровно столько памяти, сколько востребует динамика ее выполнения, и только 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие тогда, когда это нужно. Если из рассматриваемой процедуры Р делается воззвание к другой процедуре Q, то для процедуры Q отводится область сво-бодной памяти точно таким же образом, как и для процедуры Р 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие. При всем этом пе-ременные, описанные в процедуре Р, и ее промежные результаты остаются в стеке и могут быть вновь применены, когда произойдет возврат из процедуры Q.

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

  1. МКС - маркер стека (Рис.12),

  2. УСВ - управляющее слово возврата (Рис.13).

МКС в неком отношении аналогично дескриптору, описывающему от 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие-водимую область, потому что оно содержит размер отводимой процедуре области для формальных и локальных характеристик (в поле РАЗМЕР), а адресок МКС задает начало отводимой области (само МКС является первым словом в отводимой области).

УСВ 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие похоже на метку, по которой осуществляется возврат из процедуры Q в функцию Р, потому что оно содержит информацию об адресе программного слога, на котором было прервано выполнение процедуры Р (поля Nk и 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие БАЗА), и информацию, нужную для восстановления содержимого базисного регистра для процедуры Р и ее режима (поля Д АДРЕСА, ТРИГГЕРЫ, РЕЖ).

Для организации воззвания к процедурам введен еш,е один регистр, называе 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие-мый указателем маркера стека (УМС). Необходимость этого регистра вызвана тем, что загрузка формальных характеристик делается из области данных запус-кающей процедуры (базисный регистр показывает на МКС запускающей процедуры и адресные пары оттранслированной программки 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие (№ 1) адресуют относительно МА этого МКС). В то же время в момент входа в новейшую функцию следует знать МА новейшей связывающей инфы, где находится метка процедуры, на выполне-ние которой нужно перейти на 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие этот переходный Период и нужен указа-тель маркера стека УМС.

При вызове процедуры Q принята последующая последовательность операций:

  1. Загружается в стек метка процедуры Q, другими словами информация о том, в каком месте 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие математической памяти находится вход в функцию Q.

  2. Производится команда МС - маркировать стек. При всем этом:

а) отводится свободная ячейка в вершине стека, и в нее помещается заго-
товка УСВ для вызываемой процедуры Q 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие;

б) в поле Δ АДРЕСА заготовки УСВ записывается разность меж адресом
этого УСВ и содержимым УМС (формируется так Именуемая динамическая
цепочка). В УМС записывается адресок МЕТКИ.

Состояние стека до и после выполнения операции МС показано 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие на Рис.37.

3. Следуют команды, которые поочередно загружают в стек информа-
цию о фактических параметрах.

Состояние стека после этих операций показано на Рис.38, Подразумевается, что процедура Q имеет 2 параметра П1 и П 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие2.

91



















В.С.Бурцев, В.П.Торчигин. Неформальное описание системы команд


4. Производится команда ВХОД. В итоге выполнения этой команды совсем формируется связывающая информация и управление передается на вход процедуры (Рис.38).

Команда ВХОД производится последующим 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие образом:

а) По адресу, обозначенному в УМС, находится метка процедуры Q, и на ее
место записывается МКС процедуры Q.

б) Устанавливается признак Ф в слове УСВ, показывающий, должна ли вызывае-
мая 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие процедура Q поставлять значение. (Операция ВХОД имеет 2 варианта: ВХОД и
ВХОДФ. Вариант ВХОДФ используется при воззвании к процедурам-функциям.)

в) Устанавливается размер области, занятой формальными параметрами, в
поле РАЗМЕР слова МКС вызываемой процедуры Q.

г) В 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие согласовании с содержимым вновь сформированного МКС в базисный
регистр записывается дескриптор, описывающий область, отведенную для
формальных характеристик процедуры Q. В поле ИНДМАКС записывается та же
величина, что и в поле РАЗМЕР слова МКС 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие.

д) Управление передается в функцию Q. При всем этом по содержимому поля
БАЗА метки в регистр базы записывается дескриптор нового программного
сектора процедуры ^ Q, а в счетчик команд записывается содержимое поля
Nk - номер программного 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие слога, с которого начинается выполнение процедуры Q.

Выход из процедуры Q осуществляется командой ВОЗВРАТ (Рис.39), которая непременно должна повстречаться в процедуре Q. При всем этом:

а) по содержимому регистра N уровня находим базисный регистр 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие ^ К, в кото-
ром записан МА МКС и УСВ процедуры Q;

б) методом анализа признака Ф в УСВ процедуры Q решается вопрос, остав-
лять ли значение в стеке;

в) по инфы, лежащей в 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие поле А АДРЕСА УСВ процедуры Q
(динамическая цепочка) поля МАНАЧ дескриптора К, находится МКС проце-
дурочки Р и формируется новый дескриптор в базисном регистре. Поле ШАГДЕСК
этого регистра записывается из поля РАЗМЕР 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие МКС процедуры ^ P;

г) по инфы, лежащей в УСВ процедуры Р, управление передается
в функцию Р. При всем этом по содержимому поля БАЗА в регистр базы записы-
вается дескриптор программного сектора процедуры Р, а в 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие счетчик команд
записывается содержимое поля Nk - номер программного слова, с которого
должно быть возобновлено выполнение процедуры Р.

В данном разделе описаны личные деяния операций МС, ВХОД и ВОЗВРАТ, более общее описание 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие этих операций дано в разделе 2.1.3.

^ 2.1.2. Реализация воззваний к процедурам в языках с блочной структурой

В языках с блочной структурой (к примеру, АЛГОЛ60, ПЛ/1, СИМУЛА, АЛГОЛ68) процедуре, описанной на неком словарном уровне п, доступны, не считая 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие ее собственных формальных и локальных характеристик, пара-метры, доступные в блоках и процедурах, в которые вложена рассматриваемая процедура. Так как блок является личным случаем процедуры, у которой описание и вызов находятся 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие в одном и том же месте программки, в предстоящем ради сокращенности будем рассматривать только процедуры.

Отметим, что конкретный вызов процедуры ^ Рп, описанной на лекси-
кографичеком уровне п, вероятен исключительно в том случае 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие, если перед этим была
вызвана, но не закончена процедура уровня Рn-1, в которую лексикографиче-
ски вложена процедура ^ Рп. Отсюда следует, что для вызова процедуры Рп
уровня п нужно, чтоб перед этим были вызваны, но не 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие завершены вло-
женные любая в следующую процедуры Pn-1, Pп-2.,... Р1 , Р0 соответствен-
но уровней п-1, п-2, , /, 0 (Рис.40).

95



Таким макаром, при вызове процедуры Рп в стеке уже должно существовать по последней мере n 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие областей памяти для этих вызванных, но незаконченных процедур, и переменные, описанные в этих областях, должны быть доступны рассматриваемой процедуре Рп на уровне п.

Адресация к переменным, легкодоступным процедуре Рт, осуществляется с 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие помощью адресных пар (m, i) В машине обеспечивается автоматическая загрузка в базисный регистр под номером т (0 ≤ т ≤ п ≤ 31) дескриптора, описывающего область памяти в стеке, выделенную для незавершенной процедуры Рт, переменные которой доступны 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие процедуре Рп.

Разглядим, как осуществляется автоматическая загрузка базисных регистров в разных случаях. Отметим, что после трансляции известны лексико-графические уровни всех процедур. Пусть процедура Рп--1 вызывает функцию Рп. В данном случае 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие в п-ый базисный регистр довольно загрузить дескриптор, описывающий область, отводимую для процедуры Рп. Если процедура Pn-1 вы-зывает функцию на наименьшем словарном уровне, к примеру, функцию S2 на уровне 2 (Рис.40), то нулевой и 1-ый 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие базисные дескрипторы должны остаться без конфигурации, а во 2-ой должен записываться дескриптор области в вершине стека, отводимой для процедуры S2 . Более непростая загрузка базисных регистров требуется при возврате из процедуры S2 в 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие функцию Pn -1 ,потому что при всем этом нужно вернуть содержимое базисных регистров со второго по п-1.

Чтоб обеспечить таковой возврат, области памяти, доступные из процедуры Рп-1 , объединены в перечень последующим образом. В 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие поле Адресок слова МКС для процедуры Рn-1 в момент входа в функцию Pn-1 (во время выполнения операции ВХОД) записан адресок МКС процедуры Рп -2 . Аналогичным образом в МКС процедуры Рп-2 записан адресок МКС 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие процедуры Рn -3 , из которой произошел вызов Рп-2,, и т.д.. В поле NIL слова МКС процедуры наинизшего уровня записывается признак конца перечня. Таким макаром все области памяти, доступные процедуре Рn 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие -1, объединены в перечень (статическая цепочка).

96

В.С.Бурцев, В.П.Торчигин. Неформальное описание системы команд

Восстановление базисных регистров при возврате из процедуры S2 в функцию Pn -1 осуществляется во время операции ВОЗВРАТ последующим образом 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие.

По содержимому УМС система определяет адресок МКС выполнявшейся процедуры. По динамической цепочке в связывающей инфы система находит адресок МКС процедуры, в которую осуществляется возврат. (В примере это адресок МКС процедуры Рп -1) В слове 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие МКС процедуры Рn -1 в поле LL записан уровень процедуры, которая относится к этому МКС. (Эта запись делается при вызове процедуры во время выполнения операции ВХОД, смотри выше). В базисный регистр, определяемый 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие полем LL (п-1 - базисный регистр), записывается дескриптор, который формируется из отысканного МКС. Этот дескриптор обрисовывает область памяти, отведенную для процедуры Pn -1 в момент воззвания Рп-1 к процедуре S2. В поле Адресок 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие слова МКС хранится начало статической цепочки, другими словами адресок МКС процедуры Рп -2.. По этому адресу находится МКС для Рп-2 и сформированный по этому МКС дескриптор записывается в базисный регистр с номером п 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие-2. Аналогичным образом формируются дескрипторы в базисных регистрах с номерами п-3, п-4,...., 1, 0. Таким макаром ,вызов процедуры и выход из нее для языков с блочной структурой отличается от работы с процедурами, описанной в прошлом разделе 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие истинной главы, только корректировкой базисных регистров.

Как уже указывалось, при воззвании к процедурам с параметрами после операции МС идут операции наполнения ячеек, отведенных под формальные характеристики (формальных ячеек). Разглядим поначалу случай, когда формаль 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие­ные характеристики вызываются по значению. В данном случае в формальные ячей­ки в стеке должны быть загружены значения. Если фактические характеристики являются ординарными переменными, то загружаются в стек значения этих пере­менных 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие и осуществляется вход в функцию.

Если фактический параметр является выражением, то в программном потоке имеются операции для вычисления этого выражения, и итог остается в вер­хушке стека на месте соответственного параметра. К 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие примеру, воззвание к про­цедуре А (а, Ь+с) уровня п, будет транслироваться последующим образом:

1)ФМП п, Nk

  1. МС

  2. ВЗ п-2, 3 % загрузка значения а

  3. ВЗ п-2, 4 % загрузка значения b

  4. ВЗ п-1, 3 % загрузка значения с

  5. + % загрузка значения b 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие+с заместо b

  6. ВХОДФ

Подразумевается, что значения переменных a, b и с хранятся в стеке соот­ветственно по адресам (п-2, 3), (п-2, 4), (п-1, 3).

Формальные ячейки заполняются более сложным образом, если в качестве фактического 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие параметра стоит воззвание к процедуре-функции. К примеру, воззвание к процедуре А (В (С)) траслируется так:



Для определенности представим, что вызов происходит из процедуры ^ Р уровня п-1, а процедуры А и 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие В описаны в этой процедуре на уровне п.

97

В.С.Бурцев, В.П.Торчигин. Неформальное описание системы команд

Состояние стека до вызова А (В(С)) показано на Рис.41а. Пусть вход в функцию Pn.-1 завершен 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие. Тогда для процедуры Pn-1 уже сформирована свя-зующая информация.

При вызове процедуры А (В(С)) перед выполнением команды ВХОДФ происходит формирование меток А и В операцией ФМП.

При формировании 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие меток в поле Адресок записывается информация, позволяющая найти статическую цепочку запускаемой процедуры, другими словами адресок МКС на один уровень ниже запускаемой. В этом случае в поле Адресок обеих меток записывается адресок МКС 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие процедуры Рп.-1. При выполнении операций МС в коде

Δ Адресок УСВ установлены Δ АДРЕСА, по которым замыкается динамическая цепочка. УМС всегда переключается на последнее в стеке МКС незавершенной процедуры. Поле БАЗА в метках А 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие и В устанавливается из текущего базисного регистра, a Nk соответственно из командного потока (Рис.41а и б).

Состояние стека после выполнения команды ВХОДФ показано на Рис.41 в. Метка, на которую указывал УМС, преобразуется в 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие МКС, поле Адресок которого показывает на МКС п-1 уровня. В базисном регистре п формируется дескриптор, описывающий поле процедуры Рп. Потом корректируются другие базисные регистры. В этом случае по полю Адресок МКС процедуры В 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие находится МКС процедуры Pn -1 и формируется дескриптор, описывающий локальные данные этой процедуры.

Этот дескриптор должен быть записан в базисный регистр п-1. Но в этом случае информация, записанная в нем, совпадает с 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие той, которую нужно за-писать, потому корректировка базисных регистров прекращается. Если б в реги-стре была другая информация, то после записи в него дескриптора стека процеду-ры В по инфы поля 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие Адресок МКС процедуры А был бы найден МКС проце-дуры п-2 уровня. Потом был бы сформирован дескриптор на локальные данные этой процедуры и записан в базисный регистр п-2, и т.д. до совпадения 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие ин-формации базисного регистра с вновь сформированным дескриптором.

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

Операция ВОЗВРАТ в процедуре ^ В поставляет в вершину стека значение В(С), и управление передается в функцию вызова А(В 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие(С)). Для этого по динамической цепочке, используя поле Δ Адресок УСВ процедуры В, доходим до первого завершенного МКС (в нашем случае это МКС процедуры Pn -1 ). По этому МКС формируется дескриптор, который 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие записывается в базисный регистр, номер которого указан в поле LL УСВ процедуры В. Тот же номер устанавливается в регистре номера уровня. Используя информацию поля Адресок МКС процедуры Рп.-1 , делается корректировка базисных регистров 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие. Поле БАЗА и Nk УСВ процедуры В употребляются для наполнения базисного регистра программки текущей процедуры и счетчика Nk, после этого МКС и УСВ этой процедуры вычеркиваются из стека, поставляя значение процедуры В. УМС переводится 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие на последнюю метку стека связывающей инфы, используя информацию поля Δ Адресок УСВ

(Рис. 41 г).

Потом операция ВХОД передает управление в функцию ^ А. При всем этом фор-мируется МКС процедуры А, это МКС подсоединяется 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие к статической цепочке, и корректируются по статической цепочке базисные регистры (Рис. 41 д).

98









100

В.С.Бурцев, В.П.Торчигин. Неформальное описание системы команд




В.С.Бурцев, В.П.Торчигин. Неформальное описание системы команд


Операция 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие ВОЗВРАТ в процедуре А поставляет в вершину стека значение А(В(С)), и управление по динамической цепочке опять передается в функцию Рп.1 (Рис.41 е).

Полный список функций, выполняемых операцией ВХОД, представлен в разделе 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие 2.1.3.

Разглядим сейчас случай, когда при вызове процедуры А передача факти-ческих характеристик делается по имени. Если фактические характеристики яв-ляются ординарными переменными, то формальные ячейки заполняются косвенными словами на эти переменные 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие. Если фактические характеристики являются вы-ражениями, то эти выражения оформляются как подпрограммы - функции без характеристик такого же уровня, тела которых находятся в месте вызова. В соот-ветствующие формальные ячейки засылаются метки этих 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие подпрограмм-функций. К примеру, воззвание А(а, b+ с), где А(х, у) - процедура с 2-мя формальными параметрами, вызываемыми по имени, транслируется последующим образом:

  1. ФМ А - сформировывать метку на процедуре 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие А.

  2. МС - маркировать стек.

  3. ЗА а - загрузить адресную пару.

  4. ВАЗА - конвертировать адресную пару в косвенное слово.

  5. ФМП - на подпрограмму-функцию ПФ.

  6. ВХОДФ

Выражение b+ с оформляется в такую подпрограмму-функцию:

ПФ: ВЗ b

ВЗ с

+

ВОЗВРАТ

Во время 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие выполнения процедуры А(х, у) при воззвании к формальному параметру х считывается косвенное слово, содержащее адресок значения а, ав-томатически происходит предстоящее воззвание по этому косвенному слову, и в вершину стека 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие считывается значение а.

При воззвании к формальному параметру у считывается метка на функцию без характеристик, вычисляющую значение b+ с. При всем этом:

Операция ВОЗВРАТ в подпрограмме-функции поставляет значение в про-цедуру ^ А и передает в 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие нее управление. Таким макаром, воззвание к формальному параметру у поставляет значение Ь+ с.

Если фактическим параметром процедуры А (у) является процедура с па-раметрами, к примеру В(х), то воззвание А(В(х 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие)) транслируется последующим образом:

  1. ФМП на функцию А

  2. МС

  3. ФМ на функцию В*

  4. ВХОДФ

В* является процедурой без характеристик, которая производит загрузку параметра х процедуры В и передачу управления на функцию В. Тело проце-дуры В* записывается 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие рядом с вызовом процедуры А и имеет последующий вид:

101

В.С.Бурцев, В.П.Торчигин. Неформальное описание системы команд

В*: 1) ФМП на функцию В

  1. МС

  2. ЗА х загрузить адресок переменной х.

  3. ВАЗА конвертировать адресную 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие пару в косвенное слово

  4. ВОДФ

  5. ВОЗВРАТ

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

Во время выполнения процедуры А воззвание к формальному параметру процедуры А вызывает, как и в прошлом случае, автоматическое 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие выполнение приведенных операций. Управление передается в функцию В*. В формальную ячейку загружается адресная пара фактического параметра х. Операция ВАЗА конвертирует адресную пару в косвенное слово, содержащее МА параметра х. При воззвании из 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие процедуры В к собственному формальному параметру z из формальной ячейки выбирается косвенное слово, которое показывает на значение х. Таким макаром происходит временный возврат в место вызова А(В(х)), другими словами хотя управление 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие находится в процедуре В, х берется из такого же окружения, которое имело место в момент вызова А(В(х)).

Операция ВОЗВРАТ в процедуре В поставляет итог ^ В(х) в 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие функцию В*. Операция ВОЗВРАТ в процедуре В* поставляет итог В(х) в функцию А, а операция ВОЗВРАТ в процедуре А поставляет итог вызова А(В(х)). Изменение состояний стека показано на Рис 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие. 42 а,б,в,г,д,е.

Механизм автоматического пуска процедур снутри операций типа "Вызвать значение" позволяет просто воплотить воззвание к процедурам-функциям без характеристик. Вправду, пусть, к примеру, снутри некой процедуры повстречалось выражение a+ h 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие, где h - процедура-функция без характеристик. Это выражение транслируется обыденным образом:

ВЗ а

ВЗ h

+

В ячейке, соответственной h, хранится метка на процедуру-функцию без характеристик. При воззвании к этой ячейке происходит автоматический 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие пуск процедуры, и операция ВОЗВРАТ в процедуре h поставляет итог в вер-хушку стека. Таким макаром конечный результат таковой же, как и при вызове значения по адресу.

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

К примеру, пусть имеется процедура А(х, τ) и в процедуре понятно, что формальному параметру τ соответствует 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие в качестве фактического параметра имя другой процедуры. Тогда воззвание А(а, Q) транслируется так:

ФМП А

МС

ВЗ а

ФМП Q

ВХОДФ

В момент воззвания А(а, Q) в формальную ячейку, подобающую τ, записывается рядовая метка на функцию Q 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие.

Пусть в теле процедуры А повстречалось воззвание τ(Ь). Это воззвание транслируется последующим образом:

102













В.С.Бурцев, В.П.Торчигин. Неформальное описание системы команд

ЗА(п, 2) МС

В3b ВХОДФ

где: (п, 2) - это адресок формальной 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие ячейки, соответственный формальному пара-метру τ .

Операция МС обращается к вершине стека. Там записана адресная пара {п, 2). Считывается значение по этой адресной паре. В вершину стека будет считана рядовая метка на функцию Q 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие. Потом маркируется стек, и операция МС на этом завершается. После этой операции загружается значение Ь, и управление передается в функцию Q. Операция ВОЗВРАТ в процедуре Q будет поставлять значение вызова Q (b 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие) в функцию А.

Разглядим очередной пример. Пусть имеется последующий вызов:

if a. then b else с fi (х,у),

где: а имеет вид bool a b и с - процедуры с 2-мя 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие параметрами.

Зависимо от значения а вызываются процедуры или Ь, или с 2-мя параметрами х и у.

Этот вызов может быть оттранслирован так: ФМПd

Конвертировать сформированную метку в сквозную метку МС

BЗх

ВЗу

ВХОДФ

По метке d 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие записана процедура, поставляющая обыденную метку или на функцию Ь, или на функцию с зависимо от значения а.

d: ВЗа

УОН условный переход по нулю конкретный

ФМП b

ВОЗВРАТ

ФМП с

ВОЗВРАТ

После того как сформирована сквозная метка 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие d, операция МС передает управление по этой метке в функцию, которая поставляет обыденную метку. Предстоящее выполнение вызова делается стандартным образом.

105


Не считая операции МС введена операция CMC - особая маркировка стека. Выполнение этой операции 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие показано на Рис.43.



В.С.Бурцев, В.П.Торчигин. Неформальное описание системы команд

Обычно эта операция применяется в однопроходных трансляторах при вызовах процедур, записанных в инфиксной форме. К примеру, выражение 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие (а+Ь) ↑ (c+d) представляет собой вызов процедуры возведения в степень с 2-мя параметрами. Вызов этой процедуры может быть оттранслирован последующим образом:

  1. ВЗ а

  2. ВЗ Ь

  3. +

  4. ВЗ с

  5. B3 d

  6. +

  7. ФМП на функцию возведения в степень

  8. ПОВЕРНУТЬ Ввысь

  9. CMC

10. ВХОДФ

После операции № 8 уже 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие вычислены два параметра вызываемой процедуры, и загружена метка процедуры, но нужная для вызова процедуры операция маркировки стека еще не выполнена. Операция CMC как раз и исправляет нарушенную последовательность. После выполнения этой 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие операции метка, УСВ и характеристики оказываются на собственных местах.

Если при выполнении операции CMC заместо обыкновенной метки имеется адресная пара, косвенное слово либо сквозная метка, то автоматом происходит поиск обыкновенной метки по 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие этой адресной инфы, так же как и при выполнении операции МС.

Просто убедиться, что рассмотренный механизм рассредотачивания памяти при вызове процедур позволяет производить рекурсивно воззвание с произвольным уровнем рекурсии.

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

Аналогичным образом обрабатываются и процедуры прерывания. Прерывание реализуется как аппаратный пуск процедуры с внедрением текущего стека. Аппаратура обеспечивает автоматическую загрузку в стек нужных 2. Обработка информации - В. С. Бурцев Параллелизм вычислительных процессов и развитие характеристик, компанию возврата и переход по соответственной метке.



2-opeka-i-popechitelstvo-otchet-o-vipolnenii-rabot-po-razrabotke-proektov-normativnih-pravovih-aktov-i-metodicheskih.html
2-opisanie-rekomendacii-po-montazhu-16-komplektnost-17.html
2-opredelenie-cad-cam-i-cae.html