Файл: Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие.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