Файл: Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.04.2024
Просмотров: 211
Скачиваний: 0
2-9. С И С Т Е М А |
А Д Р Е С А Ц И И |
Память вычислительной |
машины является адресуе |
мой. Это значит, что каждой единице информации (сло ву, байту) ставится в соответствие специальное число — адрес, определяющий место хранения информации в па мяти. Обычно адрес обозначает номер ячейки памяти.
Адрес или его составные части содержатся в коман де; пользуясь этой информацией, машина производит выборку из памяти требуемых программой данных. В свою очередь сами адреса могут рассматриваться как данные, подвергаться в машине обработке и образовы ваться в результате вычислений.
Следует различать два понятия: код адреса и испол
нительный адрес. Код адреса — это |
информация об ад |
ресе, содержащаяся в команде или |
специально предна |
значенных для адресации регистрах или ячейках памяти. Исполнительный адрес — это номер ячейки памяти, к ко торой производится фактическое обращение. Код адре са и исполнительный адрес необязательно совпадают друг с другом, напротив, в современных вычислительных машинах для уменьшения длины кода команды и созда ния удобств при программировании код адреса, как правило, не равен исполнительному адресу.
Выбор способа кодирования адреса, формирования исполнительного адреса из хранящихся в машине кодов и преобразования адресов является одним из важней ших вопросов разработки вычислительной системы, влияющих на ее логическую структуру, вычислительные возможности, объем оборудования и другие характери стики.
Рассмотрим способы кодирования адресов, исполь зуемые в современных вычислительных машинах с хра нимой программой.
Подразумеваемый операнд. В команде не содержит ся явных указаний об адресе операнда; операнд подра зумевается и фактически задается кодом операции команды. Данный способ используется не часто, однако имеется несколько важных случаев его применения.
Вкачестве примера можно привести команды подсчета,
вкоторых к некоторому числу (содержимому счетчика) прибавляется фиксированное приращение, часто едини
ца младшего разряда. Один из операндов — число в1
1 Например, указанием номера счетчика.
7—333 |
Д97 |
счетчике — обычно адресуется явным способом1, второй операнд — приращение — не адресуется, в памяти маши ны не содержится и является подразумеваемым.
Операция сдвига двоичного числа на один разряд мо жет рассматриваться как умножение (или деление) на два. В этом случае операнд 2 также является подра зумеваемым.
Подразумеваемый адрес. В команде не содержится явных указаний об адресе участвующего в операции операнда или адреса, по которому помещается результат операции. Адрес операнда подразумевается в коде опе рации команды. Данный способ широко используется в машинах, поскольку обычно число адресов в команде меньше количества операндов, требуемых для выполне ния операции. При использовании одноадресной коман ды адрес одного из операндов, хранящегося в памяти, указывается явно; адрес второго операнда, которым яв ляется содержимое специального регистра (называемого аккумулятором, регистром результата и т. д.), подразу мевается. При использовании двухадресных команд, яв но адресующих оба операнда, подразумевается, что ре зультат помещается по адресу одного из операндов.
Непосредственный операнд (или непосредственная адресация). В команде содержится не адрес операнда, а непосредственно сам операнд. Данный способ получил распространение в современных вычислительных маши нах, поскольку он позволяет во многих случаях повы сить быстродействие машины и снизить требование к объему памяти. При непосредственной адресации не тре буется дополнительного обращения к памяти для поиска операнда и дополнительной ячейки памяти для его хра нения. Непосредственная адресация удобна для хране ния различного рода констант; основное ограничение со стоит в том, что в этом случае длина операнда должна быть короче кода команды, поскольку часть разрядов команды занята под код операции.
Прямая адресация. Исполнительный адрес совпада ет с адресной частью команды. Этот способ адресации был общепринятым в первых вычислительных машинах и продолжает применяться в настоящее время.
Относительная адресация. Исполнительный адрес / Л определяется суммой адресной части команды А и неко торого числа В, называемого базовым адресом:
/ = А + В .
•98
Для хранения базовых адресов в машине могут быть предусмотрены регистры или специально выделен ные для этой цели ячейки памяти. Посредством относи тельной адресации обеспечивается так называемая «пе ремещаемость» программ, т. е. возможность передвиже ния программ в памяти без проведения изменений внутри самой программы. При прямой адресации в случае перемещения в памяти программы и (или) обрабатыва емого программой массива данных требуется переписать адресные части всех команд (или почти всех команд).
Относительная адресация облегчает распределение памяти при составлении сложных программ. Если одно временно программируются части одной и той же зада чи, то не требуется предварительного разделения памяти между ними; каждый программист может распола гать свою часть программы в памяти, начиная с нулево го адреса. При компоновке частей программы достаточ но только задать соответствующие значения базовых адресов.
Относительная адресация используется при автома тическом распределении памяти в мультипрограммных режимах работы (см. гл. 11).
Возможности, предоставляемые относительной адре сацией могут быть расширены, если в системе команд машины предусмотрены определенные арифметические и логические операции над базовыми адресами. В этом случае принято использовать для наименования данного способа адресации термин «индексация»; более подроб но индексация рассматривается в гл. 5.
Косвенная адресация. Адресная часть команды ука зывает адрес ячейки памяти, в которой содержится ис полнительный адрес операнда; таким образом, косвенная адресация может быть иначе определена как «адресация адреса». По сравнению с прямой адресацией косвенная адресация требует при каждом обращении к памяти до полнительного цикла для чтения адреса операнда. Обычно для указания косвенной адресации в команде отводится специальный разряд, и цифра 0 или 1 в нем указывает, является ли адресная часть команды прямым или косвенным адресом.
В некоторых машинах используется так называемая многоступенчатая косвенная адресация. В этом случае ячейка, содержащая адрес операнда, содержит также и разряд-указатель косвенной адресации. Если этот раз-
7* |
99 |
ряд указывает на продолжение косвенной адресации, то машина последовательно выбирает из памяти адреса до тех пор, пока не будет найдена ячейка, в которой разрядуказатель определит прямую адресацию. Адрес из этой последней ячейки и является искомым исполнительным адресом операнда.
Косвенная адресация полезна особенно в больших и сложных программах. Например, несколько различных команд могут использовать один и тот же операнд, рас положение которого в памяти меняется в результате вычислений. Если адрес операнда помещается в ячейку А и все команды обращаются к данному операнду с по мощью косвенной адресации через ячейку А, то при из менениях расположения операнда достаточно поменять только содержимое ячейки А, не меняя коды команд. Косвенная адресация облегчает программирование воз врата от подпрограмм к основной программе. В малых машинах косвенная адресация часто используется вмес то индексации для организации циклов в программе.
Адресация слов переменной длины. Эффективность вычислительных систем, предназначенных для обработ ки данных (экономических, плановых и др.), повышает ся, если имеется возможность выполнять операции со словами переменной длины. В этом случае в машине должна быть предусмотрена адресация слов переменной длины. Адресация слов переменной длины требует ука зания местоположения в памяти начала слова и его дли ны. Применяют два способа указания длины слова:
1)слово включает специальный разряд или символ, указывающий конец слова;
2)длина слова указывается в команде.
Впервом методе в самом слове содержится раздели тель, определяющий границу между словами. В качестве такого разделителя может быть использован слог, со держащий специальную комбинацию разрядов, неис пользуемую для представления информации, или специ альный разряд в слоге, неиспользуемый для хранения полезной информации. Слово переменной длины при та ком способе адресации простирается от адресованного в команде крайнего слога вправо (или влево) до раздели тельного слога или слога, отмеченного единицей в раз делительном разряде. Недостатком первого способа ад ресации является плохое использование емкости памяти,
вкоторой значительное место занимают разделительные
100
слоги или разряды. Поэтому в современных вычисли тельных системах более распространен второй способ адресации, при котором длина слова указывается в самой команде. При адресации слова переменной длины в команде обычно указывается адрес крайнего левого бай та слова и число байтов в слове.
2-10. П Р Е Д С Т А В Л Е Н И Е Ч И С Л О В О Й И А Л Ф А В И Т Н О -Ц И Ф Р О В О Й И Н Ф О Р М А Ц И И
Н А П Е Р Ф О Л Е Н Т А Х И П Е Р Ф О К А Р Т А Х
Перфоленты и перфокарты используются в вычислительной тех нике в качестве носителя информации. Информация, представляе мая в двоичном алфавите, наносится на перфоленты и перфокарты путем пробивки отверстий. Наличие отверстия в определенной по зиции означает 1, отсутствие — 0.
Перфолента. В зависимости от ширины ленты на ней имеются от пяти до восьми кодовых дорожек (позиций) для записи инфор мации. Информация записывается строками, расположенными по перек ленты. В строке записывается один «слог», соответствующий
коду символа (цифры, буквы, знаки препинания и |
т. |
д.). |
1 2 |
3 |
Ц 5 6 7 8 |
Рис. 2-9. Размеры перфолент и расположение на них отверстий в со ответствии с ГОСТ 10860-68.
а _ пятидорожечная перфолента; б — семидорожечная перфолента; в — восьми дорожечная перфолента.
Современная система телеграфии, использующая пятипозици онную бумажную ленту, применяет пятизначный код. В вычисли тельной технике используют обычно пяти-, семиили восьмипозици-
101
Регистры
Латинс Цифры, кий знаки
А
В?
С1
D Кто там?
Е3
F Э
Gш
Нщ
Iв
JЮ(зв)
К(
L |
) |
М |
NДзпт)
О9
Р0
Q |
1 |
R |
4 |
S
т5
и7
V =
W2
X/
Y6
Z+
Возврат каретки Перевод строки Буквы латинские Цифры Пробел Буквы русские
Русский |
|
Кодовые дорожки |
|
|
||
1 |
2 |
3 |
4 |
5 |
||
А |
1 |
0 |
0 |
0 |
||
Б |
1 |
0 |
0 |
1 |
1 |
|
Ц |
0 |
1 |
1 |
1 |
0 |
|
д |
1 |
0 |
0 |
1 |
0 |
|
Е |
1 |
0 |
0 |
0 |
0 |
|
Ф |
1 |
0 |
1 |
1 |
0 |
|
Г |
0 |
1 |
0 |
1 |
1 |
|
X |
0 |
0 |
1 |
0 |
1 |
|
И |
0 |
1 |
1 |
0 |
0 |
|
Й |
1 |
1 |
0 |
1 |
0 |
|
к |
1 |
1 |
1 |
1 |
0 |
|
л |
||||||
0 |
1 |
0 |
0 |
1 |
||
м |
0 |
0 |
1 |
1 |
1 |
|
н |
0 |
0 |
1 |
1 |
0 |
|
о |
0 |
0 |
0 |
1 |
1 |
|
п |
0 |
1 |
1 |
0 |
1 |
|
я |
1 |
1 |
1 |
0 |
1 |
|
Р |
||||||
0 |
1 |
0 |
1 |
0 |
||
с |
1 |
0 |
1 |
0 |
0 |
|
т |
||||||
0 |
0 |
0 |
0 |
1 |
||
У |
1 |
1 |
1 |
0 |
0 |
|
ж |
0 |
1 |
1 |
1 |
1 |
|
в |
||||||
1 |
1 |
0 |
0 |
1 |
||
ыь |
1 |
0 |
1 |
1 |
1 |
|
3 |
1 |
0 |
1 |
0 |
1 |
|
1 |
0 |
0 |
0 |
1 |
||
< |
0 |
0 |
0 |
1 |
0 |
|
= |
0 |
1 |
0 |
0 |
0 |
|
|
1 |
1 |
1 |
11 |
11 |
|
|
01 |
01 |
01 |
0 |
0 |
|
|
0 |
0 |
0 |
0 |
0 |
Рис. 2-10. Второй международный телеграфный код.
1 — отверстие; 0 — отсутствие отверстия.
онную перфоленту. Ранее была широко распространена пятипози ционная перфолента, так как она могла применяться для передачи данных по линиям связи со стандартным телеграфным оборудова нием. В последнее время в связи с необходимостью представлять в машине большее число различных символов семи- и восьмипозици онная перфолента стала использоваться значительно чаще.
102