Одним из эффективных средств совершенствования архитектуры современных ЭВМ является теговая организация памяти, при которой каждое хранящееся в памяти (или регистре) слово снабжается указателем — тегом (рис. 4.8,а).
Тег определяет тип данных — целое двоичное число, число с плавающей точкой, десятичное число, адрес, строка символов, дескриптор и т.д. В поле тега обычно указывается не только тип, но и длина (формат) и некоторые другие его параметры. Теги формируются компилятором.
Наличие тегов придает хранящимся в машине данным свойство самоопределяемости, вносящее принципиальные особенности в архитектуру и функционирование ЭВМ.
В обычных ЭВМ, соответствующих классической модели фон Неймана, тип данных — операндов и их формат задаются кодом операции команды, а в ряде случаев размер (формат) определяется следующими полями команды.
Теговая организация памяти, напротив, позволяет достигнуть инвариантности команд относительно типов и форматов операндов, что приводит к значительному сокращению набора команды машины.
Другие преимущества теговой организации памяти ЭВМ:
¨ упрощается и делается более регулярной структура процессора;
¨ облегчается работа программиста, в том числе при отладке программ;
¨ упрощаются компиляторы и сокращаются временные затраты на компиляцию (так как отпадает необходимость выбора типа команды в зависимости от типов данных);
¨ облегчается обнаружение ошибок, связанных с некорректным заданием типа данных (например, при попытке сложить адрес с числом с плавающей точкой);
¨ теговая организация памяти способствует реализации принципа независимости программ от данных;
¨ использование тегов приводит к экономии памяти, так как в программах обычных машин имеется большая информационная избыточность на задание типов и размеров операндов при их использовании несколькими командами.
Недостатки теговой организации памяти — некоторое замедление работы процессора из-за того, что установление соответствия типа команды типу данных, в обычных ЭВМ выполняемое на этапе компиляции, при использовании тегов переносится на этап выполнения программы.
В архитектуре некоторых ЭВМ используются дескрипторы — служебные слова, содержащие описание массивов данных и команд, причем дескрипторы могут употребляться как в машинах с теговой организацией памяти, так и без тегов.
Дескриптор содержит сведения о размере массива данных, его местоположении (в ОП или внешней памяти), адресе начала массива, типе данных, режиме защиты данных (например, запрет записи в ячейки массива) и некоторых других параметрах данных. Отметим, что задание в дескрипторе размера массива позволяет контролировать выход за границу массива при индексации его элементов. На рис. 4.8 в качестве примера представлен один из видов дескрипторов — дескриптор данных.
Дескриптор содержит специфический тег — ТДс, указывающий, что данное слово является дескриптором определенного вида; Ук — группа указателей; А — адрес начала массива данных; L — длина массива; X — индекс.
Использование в архитектуре ЭВМ дескрипторов подразумевает, что обращение к информации в памяти производится через дескрипторы, которые при этом можно рассматривать как дальнейшее развитие аппарата косвенной адресации.
Адресация информации в памяти может осуществляться с помощью цепочки дескрипторов, при этом реализуется многоступенчатая косвенная адресация. То есть адресная часть дескриптора содержит адрес начала массива других дескрипторов, в адресной части каждого из которых содержится в свою очередь, адрес начала массива дескрипторов данных.
Рис. 4.8. Описание двумерного массива данных древовидной структурой дескрипторов: ТДс и ТДн – теги дескрипторов и данных.
Статьи к прочтению:
Заголовки-теги h1, h2, h3- мифы, реальность и шо делать?
Похожие статьи:
-
Объявлять данные очень просто — например, чтобы объявить байт cо значением 5 достаточно написать: x db 5 где x — название нашей переменной или константы,…
-
Энергонезависимая память данных (eeprom).
Все микроконтроллеры семейства Mega имеют в своем составе энергонезависимую память (EEPROM-память). Объем этой памяти колеблется от 256 байт в моделях…