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




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

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

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

^ Модели памяти: Во всех компьютерах память разделена на ячейки, имеющие последовательные номера (адреса). В настоящее время наиболее распространенной ячейкой является байт. Байты обычно группируются в 2, 4 или 8 - байтные слова, которыми манипулируют команды. Многие архитектуры требуют, чтобы слова были выровнены на их целочисленную границу (быстродействие и экономичность). Например, 4-байтовое слово должно начинаться с адреса, кратного 4. Большинство современных машин имеют единое линейное адресное пространство, от 0 до некоторого максимума. Некоторые компьютеры поддерживают раздельные адресные пространства для команд и данных. Такая система гораздо сложнее, но имеет два преимущества. Во-первых, появляется возможность 32-битной адресации к 232 байтам для программы и такому же количеству данных. Во-вторых, из программы можно делать запись только в область данных, поэтому случайная перезапись программы становится невозможной. Это устраняет один из распространенных источников программных сбоев. Еще один аспект модели памяти - ее семантика. При разработке моделей памяти возникает ряд проблем, связанных с современной компьютерной архитектурой. Во-первых, это вызвано переупорядочиванием микрокоманд. Возможны два кардинальных решения подобных проблем. Все запросы к памяти могут быть синхронизированы в последовательности так, чтобы каждый завершался до того как начнется следующий. Такая стратегия очень вредит производительности, но дает простейшую семантику памяти - все операции выполняются в строгом программном порядке. Вторая крайность - вообще не давать никаких гарантий последовательности выполнения запросов к памяти. Чтобы упорядочивать обращения к памяти, программа сама должна выполнять команду SYNC, блокирующую запуск новых операций памяти, пока предыдущие не будут завершены. Эта идея существенно затрудняет разработку компиляторов, зато дает свободу разработчикам аппаратуры в плане оптимизации памяти. (на обороте…)

^ 29. Особенности уровня команд Pentium II
Архитектура Pentium II обеспечивает обратную совместимость вплоть до 16-битных процессоров Intel 8086/8088. Их последователь 80286 также был 16-разрядным, но имел 20-разрядную адресную шину и соответственно большее адресное пространство - 210. Оно не было линейным. Адрес состоял из 16-разрядного номера сегмента и 16-разрядного смещения. Для нахождения абсолютного адреса номер сегмента сдвигается влево на 4 разряда и складывается со смещением.

Процессор 80386 - первая 32-разрядная машина фирмы Intel.

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

Наконец, защищенный режим предоставляет программам все возможности системы команд. В этом режиме доступны 4 уровня привилегий, которые управляются битами в регистре флагов. Уровень 0 соответствует привилегированному режиму на других компьютерах и имеет полный доступ к машине. Он используется лишь операционной системой. Уровень 3 предназначен для пользовательских программ. Уровни 1,2 используются редко. Pentium II имеет огромное адресное пространство. Память разделена на 16384 сегмента, каждый из которых содержит адреса от 0 до 265-1. Однако большинство операционных систем (включая UNIX и все Windows) поддерживают только один сегмент, поэтому большинство прикладных программ видят линейное пространство в 232 байтов, часть которого занимает сама ОС. Слова состоят из 4-х байтов (не путать с типом WORD), байты в слове нумеруются справа налево.

Pentium II имеет ряд регистров. В компьютерах 8088 и 80286 были только 8- и 16-битные регистры, в 80386 появились 32-разрядные. Для поддержки совместимости каждый пользовательский 32-битный регистр содержит в своей младшей части свою 16-битную версию. Имя 32-битного регистра получается добавлением префикса E (Extended) к имени соответствующего 16-битного.

К ним в первую очередь относятся четыре 32-битных регистра EAX, EBX, ECX, EDX. Они являются РОН, но каждый имеет особенности: например, EAX - основной арифметический регистр; EBX предназначен для хранения указателей (адресов памяти); ECX связан с организацией циклов; EDX используется при умножении и делении - он совместно с EAX содержит 64-битные произведения и делимые.

Следующие три регистра также являются РОН, но имеют еще большую специализацию. Регистры ESI и EDI хранят указатели, особенно для команд манипулирования символьными цепочками. ESI указывает на входную цепочку, EDI - на выходную. Регистр EBP также содержит указатели. Обычно он используется для ссылки на текущий фрейм локальных переменных в стеке. (на обороте…)

^ 30. Особенности уровня команд UltraSPARC II
Изначально система SPARC имела 32-разрядную архитектуру, но UltraSPARC - 64-разрядные машины. Структура памяти UltraSPARC II представляет собой линейный массив 264 байтов. Это настолько большое число, что в настоящее время реализовать такой объем памяти невозможно. Современные реализации имеют ограничения на объем памяти, к которой они могут обращаться (244 байтов у UltraSPARC II). Байты в слове нумеруются слева направо, но этот порядок можно изменить на противоположный, установив соответствующий бит в регистре флагов.

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

R0 (другое название - G0) всегда содержит значение 0;

R1-R7 (G1-G7) содержат глобальные переменные;

R8-R13 (O0-O5) содержат выходные параметры вызываемой процедуры;

R14 (SP) - указатель стека;

R15 (O7) - временный регистр;

И другие регистры.

В действительности процессор UltraSPARC II имеет более чем 32 РОН, но в каждый момент времени программе видны только 32 из них. Эта система регистровых окон предназначена для повышения эффективности вызова процедур. Основная ее идея - имитировать работу стека с помощью регистров. Существует несколько наборов регистров подобно нескольким фреймам в стеке. Специальный регистр CWP (Current Window Pointer) указывает на текущий набор РОН. Команда вызова процедуры скрывает старый набор регистров и путем изменения CWP предоставляет новый набор, который может использовать вызываемая процедура. Некоторые регистры переносятся из старого набора, меняя свои имена. Например, регистры R8-R15 старого набора становятся регистрами R24-R31 нового набора. Восемь глобальных регистров не меняются.

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

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

^ 31. Особенности уровня команд JVM
Это 32-разрядная машина, ее память можно рассматривать как массив 4 294 967 296 байтов. Память содержит 4 основные области: набор констант, фрейм локальных переменных, стек операндов и область процедур. На эти области указывают соответственно регистры СРР (Constant Pool Pointer), LV (Local Variable), SP (Stack Pointer) и PC (Program Counter) или их аналоги. Доступ к памяти осуществляется только по смещению от одного из этих регистров; указатели (связано с безопасностью). Область набор констант загружается один раз при загрузке программы (или объекта) и после этого не меняется. Фрейм локальных переменных предназначен для хранения переменных во время выполнения процедуры. В его начале располагаются параметры процедуры. Очевидно, содержимое LV меняется при вызове процедур. Стек операндов содержит операнды и результаты выполняемых команд. Его размер не должен превышать определенного предела, который заранее вычисляется компилятором Java. В отличие от регистров СРР и LV, указатель стека операндов меняется во время выполнения процедуры, поскольку операнды команд помещаются в стек и выталкиваются из него. Область процедур содержит выполняющуюся программу. Ее указатель называется счетчиком команд. Область процедур представляет собой массив байтов, в то время как предыдущие участки памяти считаются массивами слов. Область локальных переменных меняется с каждой процедурой, поэтому каждая вызываемая процедура имеет собственные 64 Кбайт для своих локальных переменных. Точно так же набор констант распространяется только на определенный Java-класс, поэтому каждый из них имеет собственные 64 Кбайт. В JVM не предусмотрено статического места для больших массивов и других структур данных, например списков и деревьев. Именно поэтому в JVM имеется дополнительная область памяти – “куча” (Heep), специально предназначенная для хранения динамических объектов. Когда специальная система определяет, что “куча” почти заполнилась, она вызывает программу чистки памяти (сборщик мусора), которая ищет и освобождает ненужные объекты. JVM не содержит регистров общего назначения, которые могут загружаться или сохраняться пользовательской программой. В машине picoJava II имеются 25 32-битных регистров. Четыре из них по функциям соответствуют вышеупомянутым PC, LV, SP и СРР. Регистр OPLIM содержит определенное предельное значение для SP. Если значение SP вы­ходит за пределы OPLIM, то происходит прерывание. Регистр FRAME отмечает конец фрейма локальных переменных и указывает на слово, которое содержит счетчик команд вызывающей процедуры. Среди других регистров можно упомянуть слово состояния программы - это регистр, который следит, насколько заполнен 64-регистровый стековый кэш, и четыре регистра, которые используются для управления потоком выполнения. Кроме того, существуют 4 регистра для ловушек и прерываний и 4 регистра для вызова процедур и возвращения значений в командах, полученных трасляцией с С и C++ (они поддерживаются picoJava, но не JVM). PicoJava II не имеет виртуальной памяти. Поэтому для ограничения памяти, к которой может иметь доступ текущая программа на С или C++, используются два специальных регистра. JVM - машина со стековой организацией. Такая машина дает простую и легко компилируемую архитектуру команд. У машины со стековой организацией есть недостаток - потре­бность в большом количестве обращений к памяти. Как говорилось в разделе 4.4.3, эта проблема решается специальными средствами микроархитектурного уровня. Хороший эффект в этом плане дает также применение кэш-памяти.

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

Среди числовых типов данных наиболее популярны целые числа. Они бывают различной длины - обычно 8, 16, 32 и 64 бита. В большинстве современных компьютеров целые числа хранят­ся в двоичной системе. Многие компьютеры поддерживают целые числа со знаком и без знака. В целом числе без знака все биты содержат данные. Например, 32-битное слово может содержать целое число от 0 до 232-1 включительно. Двоич­ное целое число со знаком может содержать числа только до 231-1, но зато включает и отрицательные числа.

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

Кроме того, важными являются значения булевой алгебры (истина и ложь). Теоретически эти значения может представлять один бит. Однако, поскольку отдельные биты не имеют собственных адресов, на практике используется байт или даже слово. Часто применяется следующее соглашение: 0 означает ложь, а все остальное - истину. Бывают ситуации, когда булево значение представляется 1 битом, - это когда имеется массив значений. Такая структура данных называется битовой картой.

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

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

Еще одна важная причина минимизации длины команд, которая стано­вится актуальнее с увеличением быстродействия процессоров - пропускная спо­собность памяти. Система памяти неспособна передавать команды и операнды с той скоростью, с которой процессор может их обрабатывать. Подобные проблемы имеют отношение не только к основной памяти, но и ко всем видам кэш-памяти. Отсюда чем короче команды, тем быстрее работает процессор. (на обороте…)
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
Главная страница