Эффективность вычислительной системы. Часть 2.

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

Буфер стека содержит локальные данные вызванных процедур, информация из него откачивается в оперативную память (в продолжение стека в памяти) в соответствии со стековой дисциплиной, которой подчинен области данных вызываемых процедур в языках высокого уровня. Таким образом, наиболее актуальная информация — локальные данные самых недавно вызванных процедур — находится постоянно в сверхоперативной памяти — буфере стека. Как известно, 80—90 % всех обращений за данными попадает именно в эти области. Эффект попадания данных получается без всякой ассоциативности, которая сложно реализуется на основе статистики. При этом используются языковые принцип в частности, получается, что наиболее важные данные защищены от вытесняющего воздействия со стороны элементов массива, обрабатываемых в цикле. Разумеется, для реализации буфера стека процедур в МВК «Эльбрус» введен процедурный механизм на уровне аппаратуры.

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

В архитектуре МВК «Эльбрус-2» предусмотрены описатели массивов, содержащие конфигурацию многомерных массивов по всем измерениям. Существуют команда начала цикла с указанием шага изменения переменной цикла, команда конца цикла и специальная команд обращения к элементам массива в цикле. Необходима для этих команд информация основана на языковой семантике обработки циклов. В обычных машинах она остается в трансляторах и цикл транслируется в команды, которые не содержат для машины информацию о том, что идет обработка цикла. Аппаратная оптимизация при этом невозможна. В МВК «Эльбрус» же языковая информация доведена до аппаратуры, что позволяет, зная за коны обращения к элементам массива, заранее подкачивать необходимые элементы массива в сверхоперативную память для нескольких итераций цикла (до 5) на фон вычислений предыдущих итераций цикла. Такая подкачка впрок значительно ускоряет векторные вычисления. Так, проведенное в процессе испытаний МВК сравнение «Эльбрус-2» с наиболее быстродействующей машиной ГЛО66 ряда ЕС ЭВМ, выполненной на той же элементной базе, дало следующий результат. Задача по перемножению матриц размером 100x100 решалась на МВК «Эльбрус» в 6 раз быстрее, чем на ЕС 1066, при этом на EC1066 она была запрограммирована на ассемблере, а на МВК «Эльбрус» — на языке программирования высокого уровня ЭЛЬ-76; объем оборудования центрального процессора МВК «Эльбрус» приблизительно в 2 раза превосходит объем оборудования центрального процессора ЕС 1066.

Таким образом, комплекс мер, основанный на языковом подходе, позволил успешно решить важный архитектурный вопрос — эффективную стыковку процессора с памятью.