26_us (1006403)
Текст из файла
26. Способы адресации. Адресность. Оценка адресности. Выбор основания системы счисления.
Способы адресации
Поля адресной части команды предназначены для указания места, где находятся операнды и команды. В соответствии с тем, как это осуществляется, выделяют различные способы адресации. Способы адресации можно подразделить по числу обращений к памяти (непосредственная, прямая, косвенная) и по полноте задания адреса (абсолютная, базовая, индексная, страничная) при получении требуемых операнда или команды.
Непосредственная адресация: в поле адресной части размещается сам операнд. Не требует дополнительного обращения к памяти для извлечения операнда, т.е. команда быстрее выполняется и экономится память, но имеется ограничение максимального значения операнда, определяющееся количеством разрядов адресного поля.
Прямая адресация: в поле адреса увязывается адрес ячейки ОП, где хранится операнд или команда.
Регистровая адресация: в поле адреса указывается номер регистра. Время доступа к регистру меньше времени доступа к ОП, но количество регистров невелико.
Косвенная адресация: в поле адреса содержится адрес ячейки ОП, где находится адрес операнда. Может быть многоуровневая косвенность, тогда используется либо счетчик косвенности, либо признак окончания косвенности в ячейке ОП.
Абсолютная адресация: задается адрес (порядковый номер) ячейки относительно начала ОП.
Относительная адресация: задается адрес ячейки относительно некоторого смещения. Необходимо для обеспечения возможности переносить программу из одного участка памяти в другой, программа будет использовать адреса относительно начала выделенного ей участка памяти.
Базовая адресация: точка, относительно которой указано смещение, содержится в базовом регистре или ячейке. В адресном поле содержится номер базового регистра и величина смещения. Эта адресация позволяет сократить размер адресного поля, длина адресного поля не зависит от различных моделей ВМ одного семейства (с разным объемом памяти, объемом базовых регистров). Недостаток – потеря времени на вычисление адреса (можно сократить за счет опережающей обработки), а также необходимость перезагрузки базовых регистров для больших программ (из-за ограниченного количества базовых регистров).
Страничная адресация: частный случай базовой, когда содержимое базового регистра кратно 2l, где l - длина поля смещения в битах, т.е. содержимое базового регистра имеет l нулевых младших разрядов. Операцию сложения, выполняемую при вычислении исполнительного адреса, можно заменить операцией конкатенации (сцепления). Наименование страничной адресации обусловлено трактовкой содержимого регистра как номера страницы памяти, а смещения - как адреса А ячейки в пределах страницы.
Индексная адресация: в регистре содержится не только база, но и смещение, может использоваться несколько индексных регистров. Удобно при организации циклов. Использование индексных регистров при организации программных циклов приводит к необходимости включения в состав команд ЭВМ специальных команд, задающих операции над содержимым индексных регистров – команды индексной арифметики: пересылки, изменения, проверки и команды управления, связанные с индексными регистрами.
Неявная адресация: адреса ячейки не указывается в адресном поле. Устройство управления в соответствии с кодом операции команды реализует получение (или запись) информации из (в) определенной ячейки (регистра сумматора, стека).
Адресность.
Программа представляет собой упорядоченный набор команд, необходимых для выполнения определенной задачи. Типовая команда машины должна обеспечить выполнения заданной операции над заданными операндами и указать, какая команда будет выполнена следующей.
Команда состоит из операционной и адресной частей. Операционная часть образована одним полем – кодом операций (КОП). В нем выполняемая операция кодируется в виде двоичного числа. Если возможно выполнение N различных операций, то размерность поля КОП не меньше
. Адресная часть в случае двухместных операций (типа сложения) содержит четыре поля: два поля для указания операндов, участвующих в операции, одно поле для указания места, где будет помещен результат операции и одно поле для задания следующей команды (4-х адресная команда). Обычно эти поля предназначены для размещения не самих объектов, а адресов этих объектов, поэтому эту часто команды называют «адресная часть».
Обычно команды идут в том порядке, в котором хранятся в памяти, т. е. последовательно (в естественном порядке). Поэтому номер (адрес) следующей команды определяется адресом текущей команды плюс приращение - число ячеек памяти, занимаемое текущей командой. В этом случае можно отказаться от поля адреса следующей команды, но нужно ввести счетчик адреса команды (программного счетчика или регистра адреса команды), в котором находится адрес следующей команды (3-х адресные команды). Для организации ветвлений программы используются специальные команды, изменяющие содержимое счетчика адреса команды в зависимости от состояния машины или регистров. Также существует другой подход к организации ветвления – введение признаковых триггеров, состояние которых меняется в зависимости от результата выполнения команды (>,< или = 0).
Для одноместных команд (например, для операции «извлечения квадратного корня», пересылки информации) требуется одно операндное поле и одно поле для результата, т.е. для таких операций естественны двухадресные команды. В случае использования двухадресных команд для двухместных операций поле записи результата совмещается с полем указания одного из операндов.
В случае одноадресных команд задание одного из операндов осуществляется неявно, например, считается, что его необходимо взять из регистра сумматора АЛУ. Результат может быть записан на место операнда или в регистр. Можно использовать безадресные команды, все операнды перед вызовом команды нужно записать в стек. Безадресные команды подразумевают использование бесскобочной записи операций.
Выбор адресности.
Рассмотрим двухместную операцию «сложение».
В трехадресной ВМ операция занимает одну команду. Если команды не связаны (результат предыдущей не используется в текущей), в двухадресной ВМ операция потребует две команды (выполнение и запись результата в память), а одноадресная - три команды (запись одного операнда в регистр сумматора, запись второго и выполнение операции, запись результата в память). Если же команды связаны, выполнение операции требует меньшего количества команд. Если результат предыдущей операции используется в текущей, а результат текущей используется в следующей, то операция требует одну команду и для 3-х, и для 2-х, и для одноадресных ВМ.
| Вероятность зависимости операций | Число команд на 1 операцию | ||
| 3-адресная команда | 2-адресная команда | 1-адресная команда | |
| р 2 | 1 | 1 | 1 |
| р (1- р) | 1 | 1 | 2 |
| (1- р) р | 1 | 1 | 2 |
| (1- р) 2 | 1 | 2 | 3 |
Адресность может выбираться исходя из требований наименьшей длины программы или наименьшего времени выполнения. Определим среднюю длину команды для выполнения операции сложения:
Средняя длина команды для выполнения i-адресной операции.
Длина одного адресного поля команды.
вероятность зависимости текущей команды от предыдущей (следующей).
Трехадресная операция требует одну команду, состоящую из трех адресных полей и одного поля КОП.
Двухадресная операция требует одну команду, состоящую из двух адресных полей и одного поля КОП, или двух команд, если нет межкомандной зависимости (вероятность
).
Одноадресная операция требует одну команду, состоящую из одного адресного поля и одного поля КОП, или двух команд, если текущая зависит от предыдущей или следующая зависит от текущей (вероятность
), либо трех команд, если зависимости команд нет вообще (вероятность
).
Чтобы оценить какая команда обеспечивает меньшую длину программы, примем А=2О. Тогда:
. Попарно приравняем полученные величины. В результате чего получим:
При любом р m 2 > m 1 .
Выбор основания СС.
Система счисления оказывает существенное влияние как на сложность различных операций и на время их выполнения. Для представления заданного диапазона чисел в ЦВМ, в зависимости от выбранной системы счисления, требуется разное количество оборудования.
Пусть имеется некоторое множество элементов А, его мощность – количество элементов
, каждому из которых необходимо поставить в соответствие код. Нужно подобрать систему счисления так, чтобы элементы записывались наименьшим количеством цифр и, при этом, число цифр в системе счисления было минимальным. Основание системы счисления (число цифр в ней) –
. Число разрядов –
.
Необходимо минимизировать оборудование – обеспечить минимальную цифроразрядность (
). Искать минимум одновременно по двум критериям неудобно. Будем руководствоваться количеством цифр, возможных в разряде, а не количеством разрядов, т.к. его увеличить проще, чем сделать элемент с большим диапазоном цифр.
Максимальное количество элементов
(полное кодирование (при
- избыточное));
Отсюда
;
- const; Введем функцию
;
Продифференцируем, приравняем к 0:
В итоге получим
(т. к. основанием СС должно быть целое число). Троичная СС сложна в реализации, распространение получила двоичная: ее легко реализовать, арифметические операции просты в реализации.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.















