ОРГАНИЗАЦИЯ МАШИННЫХ ЯЗЫКОВ ВЫСОКОГО УРОВНЯ И ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ МВС С ПРОГРАММИРУЕМОЙ АРХИТЕКТУРОЙ

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

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

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

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

Операторы различных устройств отличаются друг от друга только набором и значением параметров, что обеспечивает унифи­кацию процесса трансляции в машинные форматы. С целью обес­печения простоты программирования и достижения высокой эф­фективности решения задач необходимо использовать блочную структуру формирования программ. Программный блок реализу­ет полностью или частично операторы одного загрузочного яру­са. Вся программа состоит из последовательности блоков. Ис­пользование блоков осуществляется в порядке написания или в порядке, указанном метками переходов. Каждый из блоков может повторяться необходимое для решения задачи число раз. Если несколько блоков нужно объединить в некоторую более сложную программную единицу, то такая конструкция будет называться составным блоком. Последний также может повторяться в про­цессе решения задачи необходимое число раз.

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

Такой алгоритм обеспечивает наглядность описания функ­ционирования системы и простоту его модификации. Основным недостатком данного способа организации вычислительного процесса является некоторая громоздкость в описании и реализа­ции рассылки операторов по устройствам. Данную процедуру можно упростить использованием ассоциативного принципа рассылки операторов, в соответствии с которым каждый опера­тор снабжается признаком принадлежности тому или иному ус­тройству. В этом случае при распределении операторов про­граммного блока между устройствами устанавливается одновре­менная связь между ЦУУ и всеми участвующими в реализации данного блока устройствами. Каждый оператор, считываемый из ОЗУК, поступает сразу на все устройства, а воспринимается только тем устройством, которому он принадлежит. Это суще­ственно сокращает объем программ и время их реализации.