Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Команды. Во всех компьютерах имеется несколько регистров, которые видны на уровне команд




Регистры

 

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

В некоторых машинах регистры общего назначения полностью симметричны и взаимозаменяемы. В других машинах некоторые регистры общего назначения могут быть специализированы. Например, в процессоре Pentium II существует регистр EDX, который может использоваться в качестве регистра общего назначения, но который также получает половину произведения и содержит половину делимого при делении.

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

Есть один регистр управления, который представляет собой привилегированно-пользовательский гибрид. Это флаговый регистр, или PSW (Program State Word — слово состояния программы. Этот регистр содержит различные биты, которые нужны центральному процессору. Самые важные биты — это коды условия. Они устанавливаются в каждом цикле АЛ У и отражают состояние результата предыдущей операции. Коды условия очень важны, поскольку они используются при сравнениях и условных переходах. Флаговый регистр содержит не только коды условия. Его содержимое меняется от машины к машине. Дополнительные поля указывают режим машины (например, пользовательский или привилегированный), трассовый бит (который используется для отладки), уровень приоритета процессора, а также статус разрешения прерываний.

 

 

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

 

Общий обзор уровня команд машины Pentium II

 

Процессор Pentium II развивался на протяжении многих лет. Его история восходит к самым первым микропроцессорам. Основная архитектура команд обеспечивает выполнение программ, написанных для процессоров 8086 и 8088

С точки зрения программного обеспечения, компьютеры 8086 и 8088 были 16-разрядными машинами. Процессор 80386 был первой 32-разрядной машиной, выпущенной компанией Intel. Все последующие процессоры (80486, Pentium, Pentium Pro, Pentium II, Celeron и Хеоп) имеют точно такую же 32-разрядную архитектуру, которая называется IA-32.

Pentium II имеет 3 операционных режима, в двух из которых он работает как 8086. В реальном режиме все особенности, которые были добавлены к процессору со времен системы 8088, отключаются, и Pentium II работает как простой компьютер 8088. Если программа совершает ошибку, то происходит полный отказ системы.

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

Последний режим — это защищенный режим, в котором Pentium II работает как Pentium II, а не как 8088. В этом режиме доступны 4 уровня привилегий, которые управляются битами во флаговом регистре. Уровень 0 соответствует привилегированному режиму на других компьютерах и имеет полный доступ к машине. Этот уровень используется операционной системой. Уровень 3 предназначен для пользовательских программ. Он блокирует доступ к определенным командам и регистрам управления, чтобы ошибки какой-нибудь пользовательской программы не привели к поломке всей машины. Уровни 1 и 2 используются редко. Pentium II имеет огромное адресное пространство. Память разделена на 16 384 сегмента, каждый из которых идет от адреса 0 до адреса 232-1.

Регистры процессора Pentium II показаны на рис. 5.3.

 

Рис. 5.3. основные регистры процессора Pentium II

 

Первые четыре регистра - Это регистры общего назначения, хотя у каждого из них есть определенные особенности.

Следующие три регистра также являются регистрами общего назначения, но с большей степенью специализации. Регистры ESI и EDI предназначены для хранения указателей, особенно для команд манипулирования цепочками, где ESI указывает на входную цепочку, a EDI — на выходную цепочку. Регистр ЕВР тоже предназначен для хранения указателей. Обычно он используется для указания на основу текущего фрейма локальных переменных, как и регистр LV в машине IJVM. Такой регистр обычно называют указателем фрейма. Наконец, регистр ESP — это указатель стека.

Следующая группа регистров от CS до GS — сегментные регистры.

Регистр EIP — это счетчик программ (Extended Instruction Pointer — расширенный указатель команд). Регистр EFLAGS — это флаговый регистр.

 

Общий обзор уровня команд системы UltraSPARC II

 

Архитектура SPARC была впервые введена в 1987 году компанией Sun Microsystems. Эта архитектура была одной из первых архитектур промышленного назначения типа RISC.

Структура памяти машины UltraSPARC II очень проста: память представляет собой линейный массив из 2м байтов. К сожалению, память настолько велика, что в настоящее время ее невозможно реализовать.

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

В системе UltraSPARC II имеется две группы регистров: 32 64-битных регистра общего назначения и 32 регистра с плавающей точкой. Регистры общего назначения называются R0-R31.

Все регистры общего назначения 64-битные. Все они, кроме R0, значение которого всегда равно 0, могут считываться и записываться при помощи различных команд загрузки и сохранения.

Специальные регистры используются для особых целей. Регистры R30 и R14 ограничивают текущий фрейм. Первый указывает на основу текущего фрейма и используется для обращения к локальным переменным. Второй указывает на текущую вершину стека и изменяется, когда слова помещаются в стек или выталкиваются оттуда. Третий специальный регистр — R31. Он содержит адрес возврата для текущей процедуры.

В действительности процессор UltraSPARC II имеет более 32 регистров общего назначения, но только 32 из них видны для программы в любой момент времени. Эта особенность, называемая регистровыми окнами, предназначена для повышения эффективности вызова процедур.

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

В системе UltraSPARC II есть также 32 регистра с плавающей точкой, которые могут содержать либо 32-битные (одинарная точность), либо 64-битные (двойная точность) значения. Возможно также использовать пары этих регистров, чтобы поддерживать 128-битные значения.

 

Общий обзор виртуальной машины Java

 

Уровень команд машины JVM необычен, но достаточно прост.

Память содержит 4 основные области: фрейм локальных переменных, стек операндов, область процедур и набор констант.

В реализации машины IJVM на эти области указывают регистры LV, SP, PC и СРР. Доступы к памяти должны осуществляться только по смещению от одного из этих регистров; указатели и абсолютные адреса памяти не используются.

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

Ни одна из областей памяти, определенных в машине IJVM, не может быть очень большой. Объем области процедур может быть всего лишь 64 Кбайт. Пространство, занимаемое локальными переменными, не должно превышать 64 Кбайт. Набор констант также ограничивается 64 Кбайт.

Область локальных переменных меняется с каждой процедурой, поэтому каждая вызываемая процедура имеет собственные 64 Кбайт для своих локальных переменных. Точно так же определенный набор констант распространяется только на определенный класс, поэтому каждый из них имеет собственные 64 Кбайт. Здесь нет места для хранения больших массивов и динамических структур данных, например списков и деревьев. Именно поэтому в JVM включается дополнительная область памяти, так называемая «куча», которая предназначена для хранения динамических объектов, а также очень крупных объектов.

Если в «куче» создаются все новые и новые структуры данных, она в конце концов переполнится. Когда специальная система определяет, что «куча» почти заполнилась, она вызывает программу чистки памяти (сборщик мусора), которая ищет ненужные объекты в «куче».

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

 




Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 483; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.