Сделай Сам Свою Работу на 5

РЕЖИМЫ АДРЕСАЦИИ ИНФОРМАЦИИ

СИСТЕМА КОМАНД: СТРУКТУРА И ТИПЫ КОМАНД

Под командой понимают совокупность сведений, необ­ходимых процессору для выполнения определенного дейст­вия при реализации программы. Множество команд, реа­лизуемых в микроЭВМ, образует ее систему команд, выбор которой является сложнейшей и важнейшей задачей про­ектирования микроЭВМ, так как система команд определяет об­ласть и эффективность ее применения. Несмотря на то, что подавляющее большинство алгоритмов может быть реализовано посредством достаточно ограниченного и про­стого набора команд, большинство микроЭВМ имеет 60-120 базовых команд. Под базовой понимают команду, которая определяет выполняемую операцию без учета модификаций данной команды за счет использова­ния различных режимов адресации, регистров общего на­значения, являющихся источниками и приемниками резуль­татов, и т. п. Например, МП I8080A имеет 78 базовых ко­манд, однако с учетом модификаций число команд равняется 244. Это позволяет в ряде случаев существен­но сокращать длину программ, а, следовательно, уменьшать время решения задачи и емкость памяти. Таким образом, система команд определяет возможности машины.

Теоретически ограничения на число команд микроЭВМ нет; например, при введении команд из нескольких слов можно выделить больше разрядов под код операции. Каждый дополни­тельный разряд в коде операции удваивает число команд. Од­нако, как показывает практика программирования, при реализации обширной системы команд программисты обычно начинают использовать только ее некоторое под­множество. Кроме того, чем сложнее команда, тем более вероятно, что ее действия можно интерпретировать группой команд, а это уменьшает эффективность всей системы ко­манд. Но, с другой стороны, чем сложнее команда, тем бы­стрее выполняется программа из-за сокращения числа об­ращений к памяти.

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

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

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

Сокращение времени выполнения программ и емкости памяти достигается за счет увеличения сложности логики управления.

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

Важнейшим структурным элементом формата любой команды является код операции (КОП), определяющий действие команды. Большое число КОП в процессоре очень важно, так как аппаратная реализация команд экономит память и время. Но при выборе микроЭВМ не­обходимо концентрировать внимание на полноте операций с конкретными типами данных, а не только на числе ко­манд, на доступных режимах адресации. Число разрядов, отво­димое под КОП, является функцией полного набора реали­зуемых команд. При использовании фиксированного числа разрядов под КОП для кодирования всех mкоманд необходимо в поле КОП выделить log2m двоичных разрядов. Однако, учитывая ограниченную длину слова микроЭВМ, различное функциональное назначение команд, источники и приемники результатов операций, а также то, что не все команды содержат адресную часть для обращения к памя­ти и периферийным устройствам, в микроЭВМ для коди­рования команд широко используется принцип кодирова­ния с переменным числом разрядов под поле КОП для различных групп команд.

По своей структуре команды в зависимости от того, ис­пользуются они для обращения к памяти, периферийным устройствам или регистрам процессора, подразделяются на адресные и безадресные. Большинство адресных команд микроЭВМ является одноадресными. При этом адрес ука­зывается в команде явно или косвенно путем адресации регистра процес­сора, в котором хранится испол­нительный адрес памяти. Для ука­зания правила ис­пользования ад­ресной части в командах боль­шинства ЭВМ ис­пользуются 2-3 бита, определяю­щие режим адре­сации. Однако не­которые микроЭВМ, не имеют таких по­лей, и каждая команда исполь­зует только один режим адресации.

РЕЖИМЫ АДРЕСАЦИИ ИНФОРМАЦИИ

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

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

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

Регистровая адресация. В данном режиме адресации операнд содержится в одном из регистров процессора.

Непосредственная адресация позволяет в команде зада­вать операнд, который передается в процессор из памяти вслед за кодом операции для двух- или трехсловных ко­манд.

Регистровая косвенная адресация получила широкое распространение в малых ЭВМ и по быстродействию при­ближается к прямой адресации, так как косвенный адрес извлекается из внутреннего регистра процессора и не требуется дополнительного цикла памяти. В регистровой кос­венной адресации регистр или регистровая пара содержит исполнительный адрес операнда. Загрузка регистров осу­ществляется с использованием команд с непосредственной адресацией. Использование режима регистровой косвен­ной адресации позволяет вычислять адреса памяти во вре­мя выполнения программы, что требуется в процедурах пе­редачи данных, при просмотре элементов массива и т. п.

Автоинкрементная и автодекрементная адресация. Ав­тоинкрементная адресация вычисляет исполнительный ад­рес практически так же, как и при регистровой косвенной адресации, а затем осуществляется увеличение содержи­мого регистра. В ЭВМ с байтовой адресацией содержимое регистра необходимо увеличить на 1 для указания следую­щего байта, на 2 - для указания слова, при этом размер операнда определяется кодом операции.

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

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

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

Относительная адресация. При использовании относи­тельной адресации исполнительный адрес формируется пу­тем сложения базового адреса с адресным полем команды. В качестве базового адреса используется содержимое про­граммного счетчика. Использование относительной адреса­ции позволяет строить программы, свободно перемещаемые в памяти, за счет того, что в команде всегда указано сме­щение по отношению к содержимому программного счетчи­ка. Смещение интерпретируется как знаковое целое, пред­ставленное в дополнительном коде, что обеспечивает пере­ход в любом направлении. Например, для 8-битного кода смещения может выполняться максимальный переход на число адресов в диапазоне от +12710 до −12810 по отно­шению к программному счетчику, при этом содержимое программного счетчика увеличивается для формирования адреса следующей команды до прибавления смещения. При перемещении программ из одной области памяти в другую смещение не изменяется, так как относительные позиции команд и данных сохраняются. Следует отметить, что, так как содержимое программного счетчика постоянно увели­чивается, формируемые исполнительные адреса изменяют­ся для одного и того же смещения, т. е. это динамический способ адресации. Для выполнения операции сложения зна­чений смещения и программного счетчика в малых ЭВМ используется, как правило, арифметико-логическое устрой­ство (АЛУ), а иногда и специальный сумматор.

Ранее рассмотренный режим страничной адресации с конкатенацией (присоединением) адресной части команды и старших разрядов программного счетчика имеет по сравнению с данным режимом существенный недостаток для пользователя, хотя он и проще из-за отсутствия опера­ции сложения. Для примера рассмотрим ситуацию, когда программа выполняется на странице, адресное пространст­во которой находится в диапазоне адресов 40008—41778. Если программный счетчик содержит адрес 41708, то все адреса, превышающие его больше чем на 7, находятся на следующей странице и не могут быть достигнуты с исполь­зованием страничной адресации. Только косвенное обра­щение, например, через нулевую страницу может обеспе­чить такой переход.

В заключение необходимо отметить, что единства в во­просах о важности различных режимов адресации нет. Раз­личие в их выборе, по-видимому, объясняется тем, что раз­работчики ЭВМ ориентируют их на определенные области применения.

 



©2015- 2017 stydopedia.ru Все материалы защищены законодательством РФ.