1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ




Название1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ
страница10/13
Дата публикации21.03.2013
Размер1.25 Mb.
ТипДокументы
vbibl.ru > Информатика > Документы
1   ...   5   6   7   8   9   10   11   12   13

^ 37. Методы адресации Pentium II, UltraSPARC II и JVM
Методы адресации процессора Pentium II нерегулярны и зависят от того, в каком формате используется конкретная команда - 16- или 32-бит­ном. В данном разделе мы кратко рассмотрим в этом плане лишь 32-битные команды. Поддерживаемые здесь методы включают непосредственную, прямую, регистровую, косвенно-регистровую, индексную и специальную адресацию для обращения к элементам массива. Неортогональность методов адресации кодам операций существенно усложняет труд разработчиков компиляторов.

Как было видно ранее из обзора форматов команд, методами адресации управляет байт MODE (“состояние”). Один из операндов всегда является регистром и определяется по значению поля REG. Другой операнд команды задается комбинацией полей MOD и R/M. В следующей таблице приведен список 32 комбинаций значений 2-битного поля MOD и 3-битного поля R/M. Например, если оба поля равны 0, операнд считывается из ячейки памяти с адресом, который содержится в регистре ЕАХ.

Иногда за байтом MODE следует дополнительный байт SIB (только при 32-битной адресации), который определяет масштабный коэффициент и два регистра. При наличии байта SIB адрес операнда вычис­ляется путем умножения индексного регистра на 1, 2, 4 или 8 (в зависимости от SCALE), добавлением его к базовому регистру и, наконец, возможным добавле­нием 8- или 32-битного смещения, в зависимости от значения поля MOD. Практи­чески все регистры могут использоваться как в качестве индекса, так и в качестве базы.

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

К памяти обращаются команды трех типов: загрузка (LOAD), сохранение (STORE) и одна команда синхронизации мультипроцессора. Для команд LOAD и STORE есть два способа обращения к памяти. При первом способе вычисляется сумма двух регистров, которая затем используется как адрес (можно считать это относительной индексной адресацией без смещения). Второй способ представляет собой индексный метод с 13-бит­ным смещением со знаком.

У машины JVM нет общих методов адресации в обычном смысле. Коман­ды не содержат поля, сообщающего способ вычисления адреса. Вместо этого здесь с каждой командой связан собственный метод адресации. Поскольку в JVM нет видимых регистров, то регистровая и косвенно-регистровая адресация здесь невозможна. Несколько команд, напри­мер BIPUSH, используют непосредственную адресацию. Единственный метод адресации через регистры - индексный. Он используется командами LOAD, ISTORE, LDCW и другими командами, которые неявно определяют переменную через регистр, обычно LV или СРР. Команды перехода тоже используют индексную адресацию, при этом в качестве регистра рассматривается PC.

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

^ Команды перемещения данных: Эти команды правильнее было бы назвать дублированием данных, но термин “перемещение данных” уже устоялся. Копирование данных из одного места в другое является одной из самых распространенных операций в программах. Есть две цели, ради которых данные могут копироваться из одного места в другое. Одна из них - присваивание переменным значений, вторая - предоставить возможность быстрого обращения к ним. Многие команды могут обращаться к переменным только в том случае, если они имеются в регистре. Поскольку существуют два возможных источника и два возможных приемника элемента данных (память и регистр), то имеются 4 различных случая копирования. В одних компьютерах имеются 4 команды для 4 случаев, в других - одна команда на все 4 случая. Существуют команды для перемещения различного количества данных - от одного бита до всей памяти. Во многих машинах с фиксирован­ной длиной слова одной командой перемещается ровно одно слово. Копирование другого количества данных может выполняться программным обеспечением с помощью сдвигов и слияний.

^ Бинарные операции: Это такие операции, которые берут два операнда и получа­ют из них результат. Все архитектуры команд содержат команды для сложения и вычитания целых чисел. Команды умножения и деления целых чисел также име­ются практически во всех случаях. Следующая группа бинарных операций содержит булевы команды (И, ИЛИ и НЕ, иногда ИСКЛЮЧАЮЩЕЕ ИЛИ, НЕ-ИЛИ и НЕ-И). Большинство компьютеров имеет команды с плавающей точкой, которые соответствуют арифметическим операциям с вещественными числами.

^ Унарные операции: Такие операции используют один операнд и производят один результат. Полезными являются команды сдвига (простого или циклического). Операция сдвига часто используется для умножения и деления целых чисел на 2. Если положительное целое число сдвинуть влево на к битов, результатом будет исходное число, умноженное на 2к. Если положительное целое число сдвигается вправо на к разрядов, то результатом будет исходное число, деленное на 2к. Операции циклического сдвига нужны для манипулирования последовательностями битов в словах. Если требуется проверить все биты в слове, можно последовательно использовать циклический сдвиг и проверять один и тот же разряд. В некоторых бинарных операциях часто используются опре­деленные операнды, поэтому в архитектуры команд включаются унарные операции для их быстрого выполнения (dec и inc). Унарные и бинарные операции часто объединяют в группы по функциям, а не по числу операндов.

^ Сравнения и условные переходы: Эти команды обеспечивают возможности кодирования разветвляющихся алгоритмов. Они проверяют какое-либо условие и совершают переход по определенному адресу памяти, если условие выполнено. Наиболее распространенное условие для проверки - равен ли некоторый бит нулю. (на обороте…)

^ 39. Ввод-вывод на уровне команд
В современных персональных компьютерах используются три различные схемы ввода-вывода:

  • программируемый ввод-вывод с активным ожиданием;

  • ввод-вывод с управлением по прерываниям;

  • ввод-вывод с прямым доступом к памяти.

Наиболее простым является программируемый ввод-вывод, который часто применяется в дешевых микропроцессорах Между фиксированным регистром в процессоре и выбранным устройством ввода-вывода передается один символ. Процессор должен выполнять определенную последовательность команд при каждом считывании или записи символа. Для каждого устройства (ввода и вывода) используется пара регистров: регистр состояния (РС) и регистр данных (РД). процессор анализирует готовность устройства (проверяя некоторые разряды РС) и при готовности считывает (при вводе) или записывает (при выводе) очередной байт или слово регистра данных. Основной недостаток программируемого ввода-вывода заключается в том, что центральный процессор проводит большую часть времени в цикле ожидания готовности устройства. Такой процесс называется активным ожиданием.

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

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

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

^ 40. Команды процессора Pentium II
Многие команды Pentium II обращаются к одному или к двум операндам, кото­рые находятся в регистрах или в памяти. Большинство команд имеют несколько различных кодировок в зависимости от природы операндов. В таблице для операндов используются обозначения SRC - источник информации (SOURCE, не меняется данной командой), и DST - приемник (DESTINATION, изменяется командой). Существуют правила относительно того, что может быть источником, а что приемником, но мы здесь о них не говорим. Многие команды имеют три варианта: для 8-, 16- и 32-битных операндов соответственно. Они разли­чаются по коду операции и/или по одному биту в команде. Здесь приведе­ны в основном 32-битные команды.

Команды в таблице разделены на несколько групп. Первая со­держит команды, перемещения данных. Ко второй относятся арифметические операции со зна­ком и без него. Для умножения и деления 64-битное произведение или делимое хранится в двух регистрах: ЕАХ (младшие биты) и EDX (старшие биты).

Третья группа включает двоично-десятичную арифметику. Здесь каждый байт рассматривается как две 4-битные десятичные цифры. Комбинации битов от 1010 до 1111 не используются. Такая форма хранения неэффективна, но она устраняет необходимость преобразовывать десятичные входные данные в двоичные и обратно. Эти команды широко используются в про­граммах на языке COBOL.

Логические команды и команды сдвига манипулируют битами в слове или байте.

Следующие две группы связаны с проверкой, сравнением и осуществлением перехода в зависимости от полученного результата. Результаты проверки и срав­нения хранятся в различных битах регистра EFLAGS. Значок Jxx заменяет набор команд, которые совершают условный переход в зависимости от результа­тов предыдущего сравнения (то есть в зависимости от битов в регистре EFLAGS).

В Pentium II есть несколько команд для загрузки, сохранения, перемещения, сравнения и сканирования цепочек символов или слов. Перед этими командами может стоять специальный префиксный байт REP (повторение), ко­торый заставляет команду повторяться до тех пор, пока не будет выполнено опре­деленное условие (например, пока регистр ЕСХ, значение которого уменьшается на 1 после каждого повторения, не будет равен 0). Таким образом, различные дей­ствия (перемещение, сравнение и т. д.) могут производиться над произвольными блоками данных.

Последняя группа содержит команды, которые не вошли ни в одну из предыду­щих групп. Это команды перекодирования, управления, ввода-вывода и остановки процессора.

+ТАБЛ(Р2)


^ 41. Команды процессора UltraSPARC II
Ниже приведены целочисленные команды пользовательского режима UltraSPARC II. Отсутствуют команды с плавающей точкой, управле­ния Нет также команд, манипулирующих непользовательскими адресными пространствами, а также устаревших. Набор команд достаточно мал: UltraSPARC II - это процессор типа RISC.

Команды типа LOAD и STORE имеют варианты для 1, 2, 4 и 8 байтов. Если в 64-разрядный регистр загружается меньшее число, оно может быть расширено по знаку либо дополнено ну­лями. Существуют команды для обоих вариантов.

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

Кроме этого, поддерживается специальный формат 30-битных чисел с автома­тическим опознаванием типа данных за счет поля тега. Он используется для таких языков, как Smalltalk и Prolog, в которых тип переменных может меняться во время выполнения программы. При наличии таких чисел компилятор может породить команду ADD, а во время выполнения программы машина определяет, нужна ли в данном случае целочисленная команда ADD или команда ADD с плавающей точкой.

Группа команд сдвига включает одну команду сдвига влево и две команды сдвига вправо. Каждая из них имеет два варианта: 32-битный и 64-битный.

Далее см таблицу
Обозначения:

SRC - входной регистр; DST - выходной регистр; R1 - входной регистр; S2 - регистр-источник или непосредственный операнд; ADDR - адрес памяти; R - выходной регистр;

TRAP# - номер системного прерывания; FCN - код функции; MASK - тип операции; CON - константа; V - указатель регистра;

СС - набор кодов условия;

cc - условие; r – условие.
Группа логических команд включает ко­манды AND (И), OR (ИЛИ), XOR (ИСКЛЮЧАЮЩЕЕ ИЛИ), ANDN (НЕ-И), ORN (НЕ-ИЛИ) и XNOR (ИСКЛЮЧАЮЩЕЕ НЕ-ИЛИ). Полезность последних трех команд спорна, но они могут выполняться за один цикл и не требуют дополнительного аппаратного обеспечения, поэтому часто вклю­чаются в набор команд. (на обороте…)
1   ...   5   6   7   8   9   10   11   12   13

Похожие:

1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ iconПараллельная обработка данных
Машины (эвм) разделяются на аналоговые(непрерывные) и дискретные машины, реализующие цифровые вычисления. Так как для обозначения...

1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ iconФизические основы элементной базы современных ЭВМ
Поколения ЭВМ и их элементная база. Роль полупроводниковых материалов в современных ЭВМ. Преимущества интегральных схем перед дискретными...

1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ iconАрхитектура ЭВМ связана с качествами машины, к-е влияют на ее взаимодействие...
Это обусловлено развитием техники. Зу ЭВМ имеет несколько уровней: 1 внутреннее зу – содержит информацию, обрабатываемую в нем в...

1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ iconМетодические указания по прохождению преддипломной практики и дипломному...
Методические указания к дипломному проектированию составлены и доц каф ЭВМ лебеденко Ю. И. и обсуждены на заседании кафедры ЭВМ факультета...

1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ iconКафедра «Электронных вычислительных машин» методические указания...
Методические указания к дипломному проектированию составлены и доц каф ЭВМ лебеденко Ю. И. и обсуждены на заседании кафедры ЭВМ факультета...

1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ iconПлан лекции: Виды и операции технического обслуживания Организация эксплуатации ЭВМ
Эвм силами и средствами персонала ЭВМ. При этом виде обслуживания предполагается проведение регламентных работ, контроль технического...

1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ iconПлан лекции: Задачи, решаемые вычислительными центрами Структура...
Создание вычислительных центров является способом повышения эффективности работы ЭВМ. Вычислительный центр объединяет технику различных...

1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ iconЛабораторная работа №1 по дисциплине «эксплуатацияэвми систем»
...

1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ iconКонтроль работы ЭВМ
Процесс определения технического состояния и поддержания работы ЭВМ включает 4 этапа

1. Понятие архитектуры ЭВМ. Языки, уровни и виртуальные машины ЭВМ iconУрокам тема №1: этапы решения задач на ЭВМ. Алгоритмизация. Основные понятия. Блок-схемы
Программно дидактическое обеспечение: ЭВМ типа ibm. Turbo-Pascal Обучающие программы. Тесты

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
vbibl.ru
Главная страница