Теговая архитектура

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

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

Вазовые типы, которые могут быть операндами и результатами аппаратных операций, реализованы аппаратно. Основными аппаратно реализованными типами являются: целое 32-разрядное; целое 64-разрядное; вещественное 32-разрядное; вещественное 64-разрядное; вещественное 128-разрядное; битовый набор 64-разрядный; дескриптор массива; косвенное слово; метка процедуры; метка перехода; семафор.

Интерпретационному расширению операций соответствует аналогичное расширение типов. Соответственно в МВК «Эльбрус» на уровне аппаратуры реализованы типы и типовый контроль. В этом смысле можно сказать, что даже машинный язык в МВК «Эльбрус» является языком высокого уровня. На базе тегов в МВК «Эльбрус» реализована контекстная защита памяти. Реализация контекстной защиты на тех же принципах появилась и в США в машине фирмы IBM System/38.