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





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

45. Страничная организация памяти
В основе механизма виртуальной памяти лежит разделение понятий адресного пространства и адресов памяти. Рассмотрим в качестве иллюстрации старый компью­тер с 16-битным полем адреса в командах и 4096 словами памяти. Программа на нем теоретически могла обращаться к 65536 словам памяти (адреса 16-битные, 216=65536). Это зависит только от количества разрядов адреса и не связа­но с числом реально доступных слов. Логическое адресное пространство такого компьютера состоит из чисел 0, 1, 2,..., 65535, однако в действительности (физически) компьютер имеет слов памяти гораздо меньше.

До изобретения виртуальной памяти проводилось жесткое разли­чие между адресами < 4096, и адресами >= 4096. Эти две части рассматривались соответственно как полезное и бесполезное адресные пространства. Ника­кого различия между адресным пространством и адресами памяти не проводилось, между ними подразумевалось взаимнооднозначное соответствие.

Идея разделения понятий адресного пространства и адресов памяти состоит в неоднозначности этого соответствия. Если всегда можно получить прямой доступ к 4096 физическим словам памяти, то это не значит, что они обязаны соответствовать логическим адресам памяти от 0 до 4095. Например, можно сообщить системе, что при обра­щении к логическому (виртуальному) адресу 4096 должно использоваться слово из памяти с адресом 0, при обра­щении к адресу 4097 - слово из памяти с адресом 1 и т. д. Другими словами, определяется отобра­жение адресного пространства в физические адреса памяти. При обращении к адресу из другой группы текущее содержимое физической памяти сохраняется на диске, и в память загружается нужная часть виртуальной памяти (действует другое отображение).

Такая технология автоматического наложения называется страничной органи­зацией памяти, а перемещаемые участки памяти называются стра­ницами.

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

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


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



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

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





Команды typeSTORE обратны командам typeLOAD. Каждая команда выталкивает элемент из стека и сохраняет его в локальной переменной. Здесь также имеют­ся команды для работы с элементами массива - typeASTORE. Команды PUSH помещают значение в стек. Команда LDC записывает в стек значение из таблицы констант. Следующая команда представляет целую группу команд всех четырех основных типов (int, long, float и double). Каждая команда содержит только код операции, и каждый из них помещает в стек определенное значение. Например, ICONST_0 вталкивает в стек 32-битное слово 0. То же самое действие можно произвести с помощью команды BIPUSH, но это займет два байта. Благодаря опти­мизации самых распространенных команд программы JVM получаются небольшими по размеру. Поддерживаются следующие значения: int (-1, 0, 1, 2, 3, 4, 5); long (0, 1); float (0.0, 1.0, 2.0) и double (0.0, 1.0). Команда CONST_NULL помещает в стек нулевой указатель.

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

Машина picoJava II была разработана не только для программ на Java, но и для С/C++. Чтобы запускать программы на С и C++, нужен соответствующий компилятор. Кроме того, для поддержки этих возможностей к уровню архитектуры команд было добавлено 115 команд. Большинство из них занимает два или более байтов и начинается с одного из двух зарезервированных кодов JVM (0xFE и 0xFF). Программы, использующие эти дополнительные коман­ды, не переносимы на другие машины JVM.




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

Предусмотрено два способа вызова процедур. Для команды CALL используется формат 4 (см. выше) с 30-битным смещением. Этого значения достаточно для того, чтобы достичь любой команды в пределах 2 Гбайт от вызывающего опе­ратора в любом направлении. Команда CALL копирует адрес возврата в регистр R15, который после вызова превращается в регистр R31.

Второй способ вызова процедуры - команда JMPL (формат 1а или 1b), позволяющая помещать адрес возврата в произвольный регистр. Такая форма может быть полезной в случае, если адрес возврата вычисляется во время выполнения.

Команды SAVE и RESTORE манипулируют регистровым окном и указателем сте­ка. Обе команды совершают прерывание, если следующее (предыдущее) окно не­доступно.

В последней группе содержатся команды, которые не попали ни в одну из групп. Команда SETHI необходима при записи 32-битного непосред­ственного операнда в регистр. Для этого команда SETHI устанавливает биты с 10 по 31, а затем следующая команда должна передать оставшиеся биты, используя непосред­ственный формат.

Команда РОРС подсчитывает число установленных битов в слове. Последние три команды предназначены для чтения и записи специальных регистров.

Ряд распространенных CISC-команд, которых нет в этом спис­ке, можно смоделировать RISC-командами. Для этого используются регистр G0 (=R0) либо операнд-константа (формат lb). Некоторые из них даны в следующей таблице. Эти команды распознаются ассембле­ром UltraSPARC II и часто порождаются компиляторами. Многие из них исполь­зуют тот факт, что регистр G0 связан с 0, и запись в этот регистр не производит никакого результата.

CISC-команда RISC-реализация

MOV SRC, DST Выполнить OR над SRC и GO и сохранить результат в DST

CMP SRC1, SRC2 Вычесть SRC2 из SRC1 (SUBCC) и сохранить результат в G0

TST SRC Выполнить ORCC над SRC и GO и сохранить результат в G0

NOT DST Выполнить XNOR над DST и G0

NEG DST Вычесть SRC2 из SRC1 (SUBCC) и сохранить результат в G0

INC DST Прибавить 1 к DST (непосредственный операнд) - команда ADD

DEC DST Вычесть 1 из DST (непосредственный операнд) - команда SUB

CLR DST Выполнить OR над G0 и G0 и сохранить результат в DST

NOP SETHI G0 с 0

RET JMPL %I7+8, %G0 (% - обозн. регистра)





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

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

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

Для освобождения места нужно отправить на диск некоторую дру­гую страницу.

2 алгоритма : По одному из алгоритмов удаляется та страница, которая использовалась наи­более давно. LRU и алгоритм FIFO Он удаляет ту страницу, которая раньше всех загружалась, в независимости от давности использования. Если программа часто вызывает страницы –пробуксовка

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



Предикация

Еще одна особенность архитектуры IA-64 - новый способ обработки условных переходов. На пер­вый взгляд устранить условные переходы невозможно, по­скольку в программах всегда много операторов if. Однако в архитектуре IA-64 используется специальная технология, названная предикацией, которая позво­ляет существенно сократить их число.

Для понимания этой идеи рассмотрим пример, в котором показано условное выполнение команд. Оператор if:

if (Rl == 0) R2 = R3;соответствующий код на ассемблере:

CMP R1, 0

BNE L1

MOV R2, R3

L1:

Использование условной команды: CMOVZ R2, R3, R1 (<>0 CMOVN)

Таким образом можно транслировать полный оператор if без использования условных переходов. Таким образом, любой оператор if может быть скомпилирован в код, который устанавливает один из предикатных регистров в 1, если условие истинно, и в 0, если условие ложно. Одновременно с этим автоматически устанавливается другой предикатный регистр в обратное значение. При использовании предикации машинные команды, реализующие ветки then и else, будут помещаться в единый поток команд, часть из них - с использованием самого предиката, остальная часть - с использованием его обратного значения.

Еще ряд особенностей IA-64 присутствует в использовании спекулятивной загрузки. Если команда LOAD спекулятивна и оказывается ложной (зря выполнена), то вместо выдачи исключе­ния (exception), она сообщает, что ее выходной регистр недействителен и этим самым он ее отменяет. Компилятор по возможности должен перемещать команды LOAD в более ранние позиции относи­тельно других команд, Он также встав­ляет команду CHECK в том месте, где требуется использовать значение определенного регистра. Если это значение уже есть, команда CHECK работает как NOP, и выполне­ние программы сразу продолжается дальше. Если значения в регистре еще нет, следующая команда простаивает.

Резюме: Если все перечисленные нововведения работают нормально, то процессоры типа Merced действительно бу­дут чрезвычайно мощными. Однако здесь можно высказать несколько предостере­жжений (очень сложно состав такой компил, отсутвие 64 разрядной сист и др)



Ловушку можно реализовать путем регулярной проверки, выполняемой микро­программой (или аппаратным обеспечением). Если обнаружено переполнение, адрес ловушки загружается в счетчик команд. Таким образом, то, что является ловушкой на од­ном уровне, может находиться под контролем программы на более низком уровне. Проверка на уровне микропрограммы требует меньше времени, чем проверка под контролем пользовательской программы, Наиболее распространенные события, которые могут вызывать ловушки, - это переполнение и исчезновение значащих разрядов при операциях с плавающей точ­кой; переполнение при операциях с целыми числами; нарушения защиты; неопре­деляемый код операции; переполнение стека; попытка запустить несуществующее устройство ввода-вывода; попытка вызвать слово из ячейки с нечетным адресом и деление на 0.

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

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

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

Несколько независимых виртуальных адресных пространств называются сегментами. Каждый сегмент состоит из линейной последо­вательности адресов. Таким образом, память становится двумерной. Чтобы определить адрес, программа должна вы­давать номер сегмента и адрес внутри сегмента.

Сегментацию можно реализовать одним из двух способов - подкачка и разби­ение на страницы.

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

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

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
Поиск