М. В. Ломоносова Факультет вычислительной математики и кибернетики В. Г. Баула Введение в архитектуру ЭВМ и системы программирования Москва 2003 Предисловие Данная книга
Вид материала | Книга |
Содержание4.3. Дробно-адресная архитектура |
- М. В. Ломоносова Факультет вычислительной математики и кибернетики Кафедра математической, 6.81kb.
- Н. И. Лобачевского Факультет Вычислительной математики и кибернетики Кафедра Математического, 172.6kb.
- Н. И. Лобачевского Факультет Вычислительной Математики и Кибернетики Кафедра иисгео, 4000.54kb.
- М. В. Ломоносова факультет Вычислительной Математики и Кибернетики Диплом, 49.56kb.
- Методы интеллектуального анализа данных и некоторые их приложения, 29.22kb.
- М. В. Ломоносова Факультет Вычислительной Математики и Кибернетики Кафедра Системного, 124.67kb.
- Н. И. Лобачевского Факультет Вычислительной математики и кибернетики Кафедра Математического, 169.45kb.
- Московский Государственный Университет им. М. В. Ломоносова. Факультет Вычислительной, 104.35kb.
- М. В. Ломоносова Факультет Вычислительной Математики и Кибернетики Реферат, 170.54kb.
- М. В. Ломоносова Факультет вычислительной математики и кибернетики Руденко Т. В. Сборник, 1411.4kb.
4.3. Дробно-адресная архитектура
Далее мы рассмотрим архитектуру ЭВМ, которые называются компьютерами с адресуемыми регистрами, в русскоязычной литературе они часто называются дробно-адресными [3,4] (смысл этого названия мы скоро выясним). Эти компьютеры должны давать возможность писать такие же компактные программы, как и компьютеры с безадресной системой команд, но при этом они обладают рядом дополнительных достоинств.
Компьютеры дробно-адресной архитектуры нарушают один из принципов фон Неймана – принцип однородности памяти. Будем считать, что память, к которой может непосредственно обращаться центральный процессор, состоит из двух частей, каждая со своей независимой нумерацией ячеек. Одна из этих частей называется адресуемой регистровой памятью и имеет небольшой объём (порядка десятков ячеек), а другая называется основной (оперативной) памятью большого объёма. Ячейка каждого из видов памяти имеет свой адрес, но в случае с маленькой регистровой памятью этот адрес имеет размер в несколько раз меньший, чем адрес ячейки основной памяти.
Например, рассмотрим двухадресную ЭВМ, в которой регистровая память состоит из 16 ячеек. В этом случае адрес каждого регистра лежит в диапазоне 015, и будет помещаться в 4 бита, а основная память содержит 220 ячеек и адрес каждой ячейки занимает 20 двоичных разрядов. В такой ЭВМ в качестве адресов операндов каждой команды могут быть или адреса двух регистров, или адрес регистра и адрес ячейки основной памяти. Адреса регистров на схемах команд будем обозначать R1 и R2, а адрес основной памяти A1 или A2. Первый вид команд будем называть командами формата регистр-регистр (обозначается RR), а вторые – формата регистр-память (обозначается RX). В этом случае для одного кода операции (например, сложения) мы получим команды двух форматов длины 2 и 4 байта соответственно:
-
КОП
R1
R2
= 2 байта
1 байт
1 байт
-
КОП
R1
A2
= 4 байта
8 бит
4 бита
20 бит
В качестве преимущества этой архитектуры нужно отметить, что ячейки регистровой памяти размещаются внутри центрального процессора, и, имея статус регистров, позволяют производить на них арифметические и логические операции (что, как мы помним, в основной памяти невозможно). Кроме того, это обеспечивает быстрый доступ к хранимым на регистрах данным (не требуется делать обмен с расположенной отдельно от центрального процессора основной памятью).
Скажем теперь, что такая архитектура получила название дробно-адресной потому, что адрес ячейки регистровой памяти составляет какую-то часть адреса ячейки большой основной памяти. В нашем примере соответствующее отношение равно правильной дроби 1/5.
Из рассмотренного выше можно сделать вывод, что при программировании на ЭВМ с такой архитектурой желательно как можно чаще оперировать с регистровой памятью и как можно реже обращаться к большой основной памяти, такого принципа мы и будем придерживаться. Теперь для нашей дробно-адресной машины составим фрагмент программы, который реализует, как и в предыдущих примерах, арифметический оператор присваивания x:=a/(a+b)2 . Мнемонические коды операций задают арифметические операции с обычным смыслом. Точка с запятой, как это принято в языке Ассемблера, задаёт комментарий к команде:
...
СЧ R1,a; R1 := a
СЧ R2,b; R2 := b
СЛ R2,R1; R2 := b+a=a+b
УМН R2,R2; R2 := (a+b)2
ДЕЛ R1,R2; R1 := a/(a+b)2
ЗП x,R1; x := R1= a/(a+b)2
...
Длина этого фрагмента программы равна 3*4+3*2 = 18 байт. Как видим, данная архитектура не уступает стековой (безадресной) архитектуре по длине получаемых программ.
Рассмотрим теперь недостатки дробно-адресной архитектуры ЭВМ. Если ранее для каждой арифметической операции было необходимо реализовать по одной команде для целых и вещественных чисел, то теперь число этих команд возросло вдвое из-за необходимости реализовывать эти команды как в формате RR, так и в формате RX. Это приводит к существенному усложнению устройства управления, которое отныне должно поддерживать бόльшее количество операций.
Однако преимущества дробно-адресной архитектуры настолько очевидны, что её имеют большинство современных машин. Разумеется, в них есть и много новых особенностей, некоторые из которых мы рассмотрим далее в нашем курсе.
При работе с дробно-адресной архитектурой мы встречаемся с командами разного формата (и, соответственно, разной длины). Как говорится, современные ЭВМ обладают многообразием форматов команд. Например, на тех компьютерах, на которых Вы сейчас выполняете свои практические работы, реализованы около десяти форматов, а длина команд составляет от 1 до 6 байт.