Перспективные модели многопроцессорных ЭВМ. Часть 6.

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

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

Большого внимания потребовала организация виртуальной памяти. МВК «Эльбрус-3» — одна из немногих суперЭВМ, в которых она реализуется. Задача осложняется еще и тем, что виртуальную память необходимо обеспечить при параллельном обращении по восьми каналам.

В отличие от таких архитектур, как у ЭВМ фирмы FPS, где полностью статически планируется обращение в память, в МВК «Эльбрус-3» предусматривается возможность флуктуации времени доступа к памяти. Они вызваны использованием многопроцессорной архитектуры и большим расслоением как локальной, так и общей памяти. Для того чтобы динамические флуктуации не снижали эффективность статического планирования, разработана техника битов значимости. Каждая ячейка буфера стека и буфера массивов имеет бит значимости, который обнуляется при выдаче адреса считывания числа в данную ячейку буфера из памяти и ставится в 1 по приходе требуемого числа. В этом случае также не нарушается расписание работы процессора, составленное транслятором, но лишь в нужные места вставляются пустые такты. Транслятор должен с достаточным опережением выдавать адреса в память, так чтобы пустые такты были Редки и не сказывались на быстродействии машины. Это вполне возможно, если вспомнить, что самая необходимая скалярная информация (около 1000 слов локальных работающих процедур) находится в буфере стека. Обращение к элементам цикла хорошо организуется ранее превентивной подкачкой, таким образом, ориентация на языки высокого уровня позволила правильно сбалансировать внутреннюю структуру процессора. Идеология управления каждым тактом снизила объем нерегулярного оборудования, что крайне важно при реализации машины на БИС. Использование широкой команды и реализация явного распараллеливания на уровне операций, в том числе при скалярных вычислениях, позволяет получить высокое архитектурное быстродействие.