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




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

Предикация

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

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

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

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

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


^ 47. Виртуальная память в процессоре Pentium II
Режим работы этого процессора. Pentium II имеет сложную систему виртуальной памяти, которая использует вызов страниц по требованию, чистую сегментацию и сегментацию с разбиением на страницы. Виртуальная память поддерживается двумя видами таблиц: LDT (Local Descriptor Table - локальная таблица дескрипторов) и GDT (Global Descriptor Table - глобальная таблица дескрипторов). Каждая программа имеет свою собственную LDT, а единственная GDT разделяется всеми выполняющимися программами. Таблица LDT описывает локальные сегменты каждой программы (ее код, данные, стек и т. д.), а таблица GDT описывает системные сегменты, в том числе саму операционную систему.

Чтобы получить доступ к сегменту, Pentium II вначале загружает селектор сегмента в один из сегментных регистров. Во вре­мя выполнения программы регистр CS содержит селектор сегмента кода, DS - селектор сегмента данных, SS – селектор сегмента стека и т. д. Каждый селектор представляет со­бой 16-битное число.

Биты 0-1 связаны с защитой (уровень привилегий). Бит 2 селектора показывает, является сегмент локальным или глобаль­ным (то есть к какой из двух таблиц он относится: 1~LDT, 0~GDT). Оставшиеся 13 битов определяют номер соответствующего эле­мента в таблице дескрипторов, поэтому объем каждой из двух таблиц ограничен величиной 213 = 8К сегментных дескрипторов.

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

Когда селектор загружается в сегментный регистр, соответствующий дескрип­тор автоматически выбирается из LDT или GDT и сохраняется во внутренних регистрах контроллера управления памятью, поэтому к нему можно быстро получить доступ. Дескриптор состоит из 8 байтов. Здесь содержится базовый адрес сегмента, его размер и другая информация. Формат селектора подобран с целью упростить нахождение дескриптора в таблице. Сначала на основе бита 2 в селекторе выбирается локальная таблица дескрипторов LDT или глобальная таблица дескрипторов GDT. Затем селектор копируется во временный регистр контроллера управления памятью (MMU), а три млад­ших бита принимают значение 0, в результате 13-битный индекс селектора умножа­ется на 8 (это и есть длина дескриптора). Наконец, к нему прибавляется адрес LDT или GDT (он хранится в одноименных внутренних регистрах MMU), и в результате получается указатель на дескриптор. Например, селектор 72 = 0x48 обращается к элементу 9 в глобальной таб­лице дескрипторов, который находится в ячейке с адресом GDT+72.

Бит S содержит признак системного объекта. Дело в том, что подобный механизм (таблица дескрипторов) используется не только для поддержки LDT и GDT. Аналогичную структуру имеет, например, таблица дескрипторов прерываний (IDT). Ее элементы определяют адреса обработчиков системных прерываний.

“Разбросанность” полей Base и Lim (их части – в двух словах) объясняется тем, что в ранних версиях процессоров (80286) эти поля были короче и затем расширялись с сохранением обратной совместимости. Во время работы процессора части полей объединяются. (на обороте…)

^ 48. Виртуальная память в компьютере UltraSPARC II
Из-за огромного виртуального адресного пространства использование обычных таблиц стра­ниц (подобно Pentium II) было бы непрактичным. В UltraSPARC II применяется другой подход. Устройство управления памятью содержит таблицу - TLB (Translation Lookaside Buffer - буфер быстрого преобразова­ния адреса). Эта таблица отображает номера виртуальных страниц в номера фи­зических страничных кадров. Для страниц размером в 8К существует 231 номеров виртуальных страниц, то есть более двух миллиардов. Поскольку все они не мо­гут быть отображены, TLB содержит лишь номера самых последних использованных вирту­альных страниц. Страницы команд и данных обрабатываются отдельно. Для каждой из двух категорий в TLB хранятся номера 64-х последних виртуальных страниц. Элемент TLB содержит номер виртуальной страницы и соответствующий ему номер физического страничного кадра.

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

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

Операционная система может также сохранять наиболее часто используемые эле­менты буфера TLB в таблице под названием ^ TSB (Translation Storage Buffer - буфер хранения преобразований). Эта таблица работает для виртуальных страниц подобно кэш-памяти прямого отображения (см. п. 4.3.1). Каждый 16-байтный элемент данной таблицы указывает на одну виртуальную страницу и содержит определенную информацию о ней (бит достоверности, номер контекста, тег виртуального адреса, номер физической страницы и несколько флаговых битов). Пусть, например, размер TSB составляет 8192 элемента (213). Тогда все виртуальные страницы, у которых младшие 13 битов виртуального адреса равны 0000000000000, будут претендовать в TSB на элемент 0. Аналогично страницы с последними цифрами адреса 0000000000001 соответствуют элементу 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
Главная страница