Шпаргалки (двухсторонние) по курсу «Архитектура эвм»





НазваниеШпаргалки (двухсторонние) по курсу «Архитектура эвм»
страница8/11
Дата публикации21.08.2013
Размер1.25 Mb.
ТипДокументы
100-bal.ru > Информатика > Документы
1   2   3   4   5   6   7   8   9   10   11

35. Форматы команд JVM
Большинство форматов команд машины JVM просты. Это объясняется тем, что JVM разработана сравнительно недавно. Все команды начинаются с кода операции в 1 байт. В некоторых командах за кодом операции следует второй байт (формат 2). Это может быть индекс (как в команде ILOAD), константа (как в команде BIPUSH) или код типа данных (как в команде NEWARRAY, которая создает одномерный массив указанного типа в “куче"). Третий формат отличается от второго тем, что вместо 8-битной константы там содержится 16-битная константа (как, например, у команд WIDE ILOAD или GOTO). Формат 4 используется только для команды IINC. Формат 5 имеет команда MULTINEWARRAY, создающей в “куче” многомер­ный массив. Формат 6 нужен для команды INVOKEINTERFACE, которая вызывает процедуру при определенных обстоятельствах. Формат 7 предназначен для команды WIDE IINC, чтобы обеспечить 16-битный индекс и 16-битную константу, которая прибавляется к заданной переменной. Формат 8 применяется только для команд WIDE GOTO и WIDE JSR, чтобы осуществлять переходы на большие расстояния в памяти и вызовы определенных процедур. Последний формат ис­пользуется только двумя командами, которые нужны для реализации оператора языка Java switch. Таким образом, все команды JVM, за исключением восьми особых команд, используют простые и короткие форматы 1, 2 и 3.

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

Самый короткий вариант обеспечивает наиболее распространенные случаи, а самый длинный - все возможные. JVM содержит команду ILOAD, использу­ющую 8-битный индекс для определения локальной переменной, которую нужно поместить в стек. Префиксная команда WIDE позволяет использовать следом за собой тот же код операции ILOAD для определения 16-битного смещения (т. е. любого из первых 65 536 элементов) во фрейме локальных переменных. Для команды WIDE ILOAD требуется 4 байта: 1 - для WIDE, 1 - для кода ILOAD и 2 - для 16-битного индекса. Такое разделение объясняется тем, что большинство команд загрузки используют одну из первых 256 локальных переменных. Префикс WIDE нужен для универсальности, применимости к любым ситуациям, но используется редко.

Есть еще более короткий способ. Так как параметры проце­дуры передаются в первые несколько слов фрейма локальных переменных, коман­да ILOAD часто использует элементы фрейма локальных переменных с невы­сокими индексами. Разработчики JVM назначили отдельные 1-байтные коды операций для каждого из наиболее употребимых индексов. Команда ILOAD_0 помещает в стек локальную переменную 0. Эта команда полностью эквивалент­на 2-байтной команде ILOAD 0, за исключением того, что занимает один байт вместо двух. Точно так же команды IL0AD_1, IL0AD_2 и IL0AD_3 помещают в стек локальные переменные 1, 2 и 3.

Таким образом, локальную переменную 1, например, можно загрузить одним из трех способов: ILOAD_1, ILOAD 1 и WIDE ILOAD 1. (на обороте…)

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

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

  • непосредственная;

  • прямая;

  • регистровая;

  • косвенно-регистровая;

  • индексная;

  • относительная индексная;

  • стековая.

При непосредственной адресации в команде вместо адреса содержится сам операнд. В этом случае не требуется дополнительного обращения к памяти для выборки операнда. Однако у такого метода есть и недостатки: таким образом можно работать только с константами, количество значений ограничено размером поля.

Прямая адресация подразумевает указание в команде полного адреса операнда. Как и предыдущий метод, прямая адресация имеет ограничение: команда всегда будет иметь доступ к одному адресу памяти. Таким образом, прямая адресация может использоваться лишь для доступа к глобальным переменным, адреса которых известны во время компиляции

Регистровая адресация сходна с прямой, только в данном случае вместо адреса ячейки памяти указывается регистр. Из-за быстрого доступа и коротких адресов этот метод является наиболее распространенным в большинстве компьютеров.

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


Архитектура UltraSPARC II - архитектура загрузки/сохранения. Единственные операции непосредственного обращения к памяти в ней - это команды LOAD (загрузка) и STORE (сохранение). Все операнды арифметических и ло­гических команд берутся из регистров или предоставляются самой ко­мандой, и все результаты сохраняются в регистрах.


Регистр ESP - указатель стека.

Следующая группа регистров – CS (сегмент кода), SS (сегмент стека), DS (сегмент данных), ES, FS, GS (дополнительные сегменты данных). Это 16-разрядные сегментные регистры. Они унаследованы от предыдущих процессоров и содержат адреса сегментов. При использовании линейного 32-битного адресного пространства их можно игнорировать.

Регистр EIP - это счетчик команд (Extended Instruction Pointer). Регистр EFLAGS - регистр флагов.


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

  • N - признак отрицательного результата (Negative);

  • Z - признак нулевого результата (Zero);

  • V - переполнение (oVerFlow);

  • C - перенос бита из старшего разряда (Carry out).

Коды условия используются при сравнениях и условных переходах.

Команды: Системы команд существенно различаются в конкретных архитектурах. Однако практически всегда присутствуют команды LOAD и STORE (или их аналоги) для перемещения данных между регистрами и памятью, а также команда MOVE для копирования данных из одного регистра в другой. Всегда имеются наборы арифметических, логических команд, команд сравнения и условных переходов.






Второй критерий разработки - достаточный объем пространства в формате команды для выражения всех требуемых операндов. Например, машина с 2n операциями, у которой каждая команда занимает менее n битов, невозможна. В этом случае в коде операции недостаточно места для идентификации команд. Исто­рия показывает, что необходимо оставлять большое количе­ство свободных кодов операций для будущих дополнений к набору команд.

Третий критерий связан с длиной адресуемых данных. Например, побайтная адресация дает длинные адреса, но эффективный доступ к отдельным байтам. Если адресуются слова, то сам адрес становится короче, зато усложняется доступ к байтам внутри слов. В истории существовали две крайности - побитовая организация памяти и память, состоящая из длинных слов.

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






Обращение к ячейке памяти по адресу в регистре и константе смещения называется индексной адресацией (пример: в реализации машины JVM). Возможно и обратное применение: указатель ячейки памяти в команде и небольшое смещение в регистре.

В некоторых машинах применяется метод адресации, при котором адрес вычисляется путем суммирования значений двух регистров и смещения (смещение необязательно). Такой подход называется относительной индексной адресацией. Один из регистров обычно играет роль базы, другой - индекса. Этот метод еще более повышает гибкость предыдущего.

Как видно на примере JVM, стековая адресация позволяет существенно упростить систему команд. Кроме того, применение стека эффективно решает целый ряд задач из классической теории алгоритмов.

В заключение отметим, что перечисленные методы адресации охватывают не только команды, оперирующие данными, но и разнообразные команды переходов.


Многие другие команды также имеют подобные варианты. Заметим, что сокращенные вариант команд приносят и некоторые убытки, т. к. занимают коды из небольшого запаса 256 различных команд, которые могут определяться в одном байте. Префикс WIDE сам использует одно из 256 воз­можных значений, но он применяется к различным кодам операций.

Для команд загрузки операндов из набора констант вместо использования WIDE представлены две версии команды: LDC и LDC_W.




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). Унарные и бинарные операции часто объединяют в группы по функциям, а не по числу операндов.

Сравнения и условные переходы: Эти команды обеспечивают возможности кодирования разветвляющихся алгоритмов. Они проверяют какое-либо условие и совершают переход по определенному адресу памяти, если условие выполнено. Наиболее распространенное условие для проверки - равен ли некоторый бит нулю. (на обороте…)
1   2   3   4   5   6   7   8   9   10   11

Похожие:

Шпаргалки (двухсторонние) по курсу «Архитектура эвм» iconУчебной дисциплины «Архитектура ЭВМ и вычислительных систем» предназначена...
Учебная дисциплина «Архитектура ЭВМ и вычислительных систем» является общепрофессиональной дисциплиной, формирующей базовый уровень...
Шпаргалки (двухсторонние) по курсу «Архитектура эвм» iconПеречень тем для реферата
Архитектура ЭВМ. Принцип Неймана. Основные устройства эвм, их назначение и характеристики
Шпаргалки (двухсторонние) по курсу «Архитектура эвм» icon«архитектура ЭВМ и систем» Новосибирск сгга содержание
Эвм различных классов; параллельные системы понятие о многомашинных и многопроцессорных вычислительных системах; матричные и ассоциативные...
Шпаргалки (двухсторонние) по курсу «Архитектура эвм» iconУчебно-методический комплекс дисциплины архитектура компьютера (Архитектура...
Рындина Татьяна Николаевна, ст преподаватель кафедры Физики, информатики и информационных технологий
Шпаргалки (двухсторонние) по курсу «Архитектура эвм» iconТемы рефератов по дисциплине: “Архитектура эвм”

Шпаргалки (двухсторонние) по курсу «Архитектура эвм» iconРеферат по курсу: Архитектура вс на тему: Архитектура квантовых компьютеров
Квантовые компьютеры на основе молекул органических жидкостей с косвенным скалярным взаимодействием между ними и методов ядерного...
Шпаргалки (двухсторонние) по курсу «Архитектура эвм» iconРеферат по курсу: Архитектура вс на тему: Архитектура квантовых компьютеров
Квантовые компьютеры на основе молекул органических жидкостей с косвенным скалярным взаимодействием между ними и методов ядерного...
Шпаргалки (двухсторонние) по курсу «Архитектура эвм» iconАрхитектура эвм, ос, вирусы
В программа, выполняющая тестирование компьютерной системы после включения компьютера
Шпаргалки (двухсторонние) по курсу «Архитектура эвм» iconКонспект лекций по курсу "Микропроцессоры и микро-эвм в Персональной...
Целью настоящего курса является дать понятие о микропроцессорах и однокристальных микро-эвм, области их применения, дать основы функционирования...
Шпаргалки (двухсторонние) по курсу «Архитектура эвм» icon«Архитектура эвм»
Цель дисциплины: формирование систематизированных знаний в области архитектуры компьютера, организации компьютерных систем, программирования...
Шпаргалки (двухсторонние) по курсу «Архитектура эвм» iconТехническое обеспечение кит реферат
Сша и предназначалась для баллистических расчётов при стрельбе. Первая отечественная цифровая ЭВМ «мэсм» создана в 1950 г. Ход развития...
Шпаргалки (двухсторонние) по курсу «Архитектура эвм» iconАрхитектура ЭВМ и систем конспект лекций
Обучающие: Учить детей понимать эмоциональное состояние героев постановки, придавать физическим действиям куклы максимум выразительности...
Шпаргалки (двухсторонние) по курсу «Архитектура эвм» iconРеферата. Список элементов библиографической записи
Максимов, Н. В. Архитектура ЭВМ и вычислительных систем [Текст]: учеб для вузов / Н. В. Максимов, Т. Л. Партыка, И. И. Попов. — М.:...
Шпаргалки (двухсторонние) по курсу «Архитектура эвм» iconРабочая программа дисциплины «архитектура ЭВМ и вычислительных систем» (наименование дисциплины)
Составлена в соответствии с государственными требованиями к минимуму содержания и уровню подготовки выпускников по специальности...
Шпаргалки (двухсторонние) по курсу «Архитектура эвм» iconПрограмма по формированию навыков безопасного поведения на дорогах...
При этом на первый план выдвинулась концепция их взаимодействия. Так возникло принципиально новое понятие архитектура ЭВМ
Шпаргалки (двухсторонние) по курсу «Архитектура эвм» icon“Внешние устройства персонального компьютера.”
Пу обеспечить поступление в ЭВМ из окружающей среды программ и данных для обработки, а также выдачу результатов работы ЭВМ в виде,...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск