Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
на печать11.doc
Скачиваний:
41
Добавлен:
11.06.2015
Размер:
1.04 Mб
Скачать

36. Кэш память и массовая оперативная память; способы организации кэш памяти.

Организация КЭШ-памяти зависит от того, как адрес, формируемый процессором отображается на некоторую ячейку КЭШ-памяти. Самый простой способ организации –КЭШ с прямым отображением. Пусти КЭШ память, каждая строка которой содержит 8 байт, к КЭШ строке 16 строк

Каждой строке соответствует поле тэг(пометка). Каждой ячейке КЭШа однозначно соответствует группа ячеек. Оперативной памяти и наоборот. Любой адрес ОП отображается только на 1-ну ячейку КЭШа. Адрес, формируемый процессором делится на 3 части. Младшие биты(3) определяет номер байта в строке, средние(4) определяют строку. Оставшиеся используются в качестве тэга.

Полностью ассоциативная кэш-память. Байт оп может быть помещен в любую строку КЭШа. Адрес состоит из 2-х полей. Младшие биты определяют столбец, а старшие - в качестве тэга. При поиске нужного байта старшие биты адреса сравниваются одновременно со всеми тэгами для всех строк. Основная сложность – сложное устройство ассоциативного сравнения со всеми тэгами.

Наборно-ассоциативная кэш-память. Строки объединяются с наборы по 2, 4 или 8. Адрес состоит из 3-х частей: младшие биты определяют номер столбца, средние часть номер набора. Внутри набора строка выбирается ассоциативно.

  1. Виртуальная память; страничная и сегментная организация памяти.

ВМ может иметь сегментную или страничную организацию, в зависимости от того, каким образом производиться разбиение памяти на блоки. Страница – обл. памяти фиксированного размера, в 80х86 212 байт.

Разбиение памяти на страницы производятся аппаратно организация обслуживания страниц – на уровне. Сегмент не имеет фиксированного размера. Размер определяется разработчиком программы.

Страница имеет 1 атрибут – базовый адрес. Сегмент имеет несколько атрибутов – базовый адрес, длина сегмента, способ использования, способ доступа к сегменту.

Для сегментной памяти характерно явление фрагментации памяти: Имеется ОП размером в 10 единиц чего-то. Пусть замещение сегментов в оп – по принципу FIFO/ Пусть программа включает 4 сегмента А длиной 3 ед. В длиной 3 ед. С длиной 2 ед. Д длиной 4 ед. В некоторый момент времени обращение к Д. Первый был помещен А => его мы выкидываем из памяти. Суммарный объем свободной памяти – 5 ед. Свободная память фрагментирована – разбита на куски, сегмент Д нельзя помесить в память, несмотря на то, что место есть. Это явление и есть внешней фрагментацией. Необходимо дополнительный механизм – сборка мусора.

Для страничной памяти возможна внутренняя фрагментация. Память занятая программой автоматически разбивается на куски длиной 4 кб. Длина программы не обязательно кратна 4 кб, часть страниц не полностью заполнены. Однако размер страницы небольшой, потери от внутренней фрагментации не существенны.

  1. Защищенный режим процессоров 80x86; Сегментное преобразование адреса памяти в защищенном режиме. Дескрипторные таблицы; дескрипторы.

Адрес в виде дальнего указателя. Виртуальный адрес состоит из 16битного селектора сегмента и 32-х битного смещения внутри сегмента. Селектор – для поиска нужного сегмента по таблице. Селектор хранится в сегментном регистре. Состоит из 3-х полей 1- RPL – запрашивает требуемый уровень привилегий; защита. 2-ое Индикатор таблицы: для выбора одной из 2-х дескрипторных таблиц. Таблица глобальная (GTD – одна на всю систему) и локальная (LTD для каждой задачи) 3-е индекс(13 б) номер элемента дескрипторной таблицы. По номеру индекса из дескр. Таблицы извлекается дескриптор сегмента. Дескрипторные структуры данных длиной 8 байт содержащий атрибуты объекта (базовый адрес, предел, доступ). Получается линейный адрес. Объект в памяти складывая смещение и базовый адрес, извлекает дескриптор.

Регистры для описания таблиц: Для указания адресов системных таблиц, в процессоре имеется несколько регистров.

GDTR- регистр глобальной дескрипторной таблицы длина 48 бит 32 бита – база таблицы в памяти 16 бит – длина таблицы

LDTR – регистр локальной дескрипторной таблицы длина – 16 бит. Содержит селектор, который ссылается на GTD информация о длине и базе LTD извлекается из глобальной. Чтобы обеспечить высокую скорость доступа, информация о длине и базе LTD находиться в теневом регистре.

IDTR – дескрипторная таблица прерываний длине – 48 бит

Дескрипторный таблицы состоят из дескрипторов – структур данных длиной 8 байт. Дескриптор описывает сегменты кода данных.

286 процессоры 16 битный, адрес памяти – 24 бита. В дескрипторе старшие 2 байта заполнены 0

В 386 адрес длиной 32 бита. Базовый адрес 32 бита, линейный адрес, начиная с которого загружается в память. Поле границы сегмента – 20 бит определяет макс возможную длину сегмента.

  1. Защищенный режим процессоров 80x86; Защита памяти; шлюзы вызова.

В вычислительной систем процессоры делятся на классы в зависимости от уровня защищенности: пользовательский и системный. Механизм защиты предполагает выполнение 3-х правил

  1. Обычным программ запрещается выполнение некоторых команд

  2. Обычным программам запрещается доступ к данным, используемыми защищенными программами

  3. Обычные программы могут получить доступ к сервисам ос только в ограниченном кол-ве мест по определенным правилам.

Каждый селектор сегмента имеет поле 2-бита – запрашиваемый уровень привилегий. Селектор загруженный в сегментный регистр CS имеет CPL текущий уровень привилегий, на котором работает процессор в данный момент. У каждого сегмента есть dpl уровень привилегий дескриптора. У dpl есть гриф секретности. iopl (2 бита) поле во флаговом регистре. Задает уровень привилегий, на который можно выполнять операции ввода/вывода. Все эти поля 2-битные возможно организовать 4 уровня или кольца защиты.

1 – ядро ОС

2 – ввод/вывод

3 – СУБД

4 – пользователь

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

Формат дескриптора шлюза:

Селектор и смещение: адрес, который мы желаем вызвать

Байт доступа 0

TYPE – тип селектора.

5 бит – поле счетчика описывает кол-во параметров передаваемых процедуре через стек

Правило доступа к шлюзу. Обращение с помощью CALL вызов дальний.

CALL FAR <селектор смещение> смещение игнорируется, селектор используется для доступа к дескриптору шлюза.

Обращение к шлюзу возможно в 3-х случаях.

1 вызов подпрограммы в том же кольце. Вызов такой же для обычной подпрограммы.

2 обращение к подпрограмме в менее защищенном кольце – нарушение защиты

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

40. Многозадачность, сегмент состояния задачи, переключение задач, взаимозащита и взаимодействие задач

Под многозадачностью принято понимать способность выч. системы принимать на обработку и выполнять несколько задач одновременно. Для того чтобы задача была выполнена ее необходимо снабдить неким набором ресурсов. Система с одной фон-неймановским процессором физически не способна выполнять несколько потоков команд, поэтому многозадачность на одном процессоре реализуется за счет за счет того, что каждой задаче предоставляется право последовательно владеть процессором. Под задачей в рассмотренном процессе понимается некоторая информационная программная сущность, которая может находиться либо в состоянии выполнения, либо в состоянии ожидания некоторого ресурса. Проще всего представить себе многозадачность след. образом. Существует система, к которой одновременно имею доступ несколько пользователей. Каждый пользователь запускает свою задачу. Система для каждого пользователя предоставляет квант времени, в течение которого его задача обрабатывается, процессором. У каждого пользователя создается иллюзия, что он монопольно владеет неким виртуальным процессором, который обслуживает только его задачу. Когда квант времени заканчивается, процессор прекращает выполнение задачи одного пользователя и переключается на выполнение задачи другого пользователя. Для этого необходимо аппаратно-программные средства, которые дают возможность быстрого сохранить информацию о состоянии некоторой задачи и связанных с нею ресурсов и быстро восстановить информацию о состоянии другой задачи. Совокупность данных о состоянии выч системы и ресурсов, связанных с выполняемой задачей называется контекстной задачей. Процесс сохранения контекста одной задачи и восстановление контекста другой – контекстное переключение. Оно должно быть максимально быстрым и так, чтобы задача не подозревала о переключении. Обычно в контексте задачи должно входить состояние регистров процессора, возможно состояние некоторых из системных таблиц и состояние переменных системы, описывающих ресурсы задачи, и адрес команды. Чтобы переключение было макс. Быстро, для сохранения предпочтительнее отводить место в памяти, а не на диске. В рассмотренных нами процессорах для контекста каждой задачи выделяется спец сегмент – сегмент состояния задач TSS Переключение задачи состоит в записи 1 TSS и считывании другого TSS. Сама задача – совокупность кода, данных и TSS. Каждый TSS имеет дескриптор в GTD. По структуре дескриптор TSS похож на дескриптор для обычного сегмента. Поле DPL так же как у шлюзов, показывает какие задачи могут обращаться к данному TSS Шлюз задачи – еще одна структура данных. Шлюз используется аналогично шлюза для защиты на уровне сегментов памяти. Переключение задач производится с помощью команды дальнего перехода или дальнего вызова.

CALL <селектор><смещение> JMP <селектор><смещение>

Смещение в команде игнорируется. Селектор должен указывать на шлюз задачи. После переключения селектор TSS задачи загружается в регистр задачи. При вызове защищенной подпрограммы производиться переключение стека. Новый указатель стека при этом берется из TSS Более защищенных может быть макс 3. В конце TSS хранится карта ввода/вывода. В ней каждому порту соответствует 1 бит, который описывает разрешенный или запрещенный доступ, этой задачи к данному порту – дополнительная защита.

  1. Страничное преобразование адреса.

Помимо сегментного преобразования адресов устройство ЦП допускает страничное преобразование адресов, основное назначение страничного преобразование: поддержка виртуальной памяти. В отличие от сегментов, которые могут иметь любой размер, размер страниц фиксированный 4кб. Страничное преобразование может быть включено или выключено по отношению к этой задаче. Макс размер одного сегмента 4 Гб, если страничное преобразование включено, то эти 4 Гб есть 1 миллион страниц по 4 кб каждая.

4 Гб превосходят разумный предел физической памяти персонального компьютера. Иллюзия виртуальной памяти реализуется за счет того, что в физической оперативной памяти присутствует далеко не все страницы, относящиеся к данной задачи. Страницы, содержащие код программы, хранятся в исполняемых файлах, библиотечных файлах, при необходимости подпитываются из них. Страницы, содержащие данные, сохраняются и при необходимости подгружаются из спец. Файла подкачки. Страничное преобразование. Лин адрес размером в 32 бита: 20 бит – номер страницы, которой обращаются, 12 бит – смещение. Параметры страницы должны быть определены по таблице страниц. Каждый элемент страницы содержит базовый адрес страницы + некоторые дополнительные атрибуты страницы. Длина одного элемента страницы должна быть не менее 4б. Если выполняется страничное преобразование за 1 этап. Необходимо таблица страниц размером 1М элементов по 4 байта => 4 Мб должен составлять размер таблицы страниц, что бы избежать непроизводительных потерь в памяти, стр. преобразуются в 2 этапа. Номер сто длиной в 20 бит состоит из 2-х частей: каталог страницы или к таблице страниц 1-го уровня. Адрес каталогов каталоговых страниц храниться в управляемом регистре CR3.

Страницу 2-го уровня (середина лин адреса служит для выбора из таблицы страниц 2 – го уровня).

Дескриптор страниц имеет длину 4 байта. Содержит базовый адрес страницы и ряд доп. атрибутов.

  1. Характеристики вычислительных систем: надежность, стоимость;

ЭВМ – комплекс аппаратуры, способный выполнят некий набор команд. Любое применение ЭВМ подразумевает ее комплектацию ПО. Совокупность ЭВМ и ПО, нацеленного на решение прикладных задач называется вычислительной системой. ВС может быть специализированной или общего назначения. ПО делиться на прикладное и системное. Прикладное ПО – решение конечных задач. Системное ПО – обеспечение функциональности ЭВМ. Степень соответствия своему назначению называется эффективностью. Чтобы оценить эффективность необходимо ввести критерии эффективности. Критерий эффективности – численная оценка, которая объединяет все значимые свойства системы. Для сложных систем ввести единый критерий сложно или невозможно. Такие системы описываются набором характеристик. Характеристика – описание одного из свойств проявление системы. Оценка какой-то характеристики показатель эффективности. Осн. Характеристики: стоимость, надежность, масштабируемость и совместимость, производительность.

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

Надежность – св-во технической системы выполнять возложенные на нее функции в течение заданного промежутка времени с заданным уровнем качества. Функционирование ЭВМ прекращается в результате отказов или сбоев. Сбой – состояние, после которого нормальное функционирование может быть продолжено после ребута. Показатель надежности – интенсивность отказов или сбоев. Обратная величина интенсивности – средняя наработка на отказ. Для ОЗУ – 10 лет для жесткого – 5 лет. Еще один показатель надежности – коэффициент готовности

p-время работы, n –время простоя. К – можно интерпретировать, как вероятность нахождения системы в рабочем состоянии.

  1. Характеристики вычислительных систем: время ответа, производительность.

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

Время выполнения программы = сумма(nicpIi) любое устройство обладает производительностью . Быстродействие – число операций в ед. времени. Тогда ВС можно описать как вектор (а1, а2, …,аn) этот вектор – номинальная производительность. Для каждого устройства оценивают загрузку.

Ti – загрузка итого устройства Т – время решения задачи.

Ρ может быть > 1, если устройства имеют возможность работать параллельно. Если ρ=1, то все устройства работают последовательно. Таким образом мы можем описать систему вектором {аiρi}-реальная производительность. Задача спец. Разработанная для оценки производительности ВС называются benchmark . Она может быть синтетической или основанной на реальных задачах.

Время ответа (англ. response time) — в технологии время, которое требуется системе или функциональной единице на то, чтобы ответить на данный ввод.

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

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

  1. Способы оценивания производительности; единицы производительности. Пути повышения производительности.

Задача спец. Разработанная для оценки производительности ВС называются benchmark . Она может быть синтетической или основанной на реальных задачах. Единицы производительности

MIPS – миллионов инструкций в секунду

MFLOPS – число операций с плавающей запятой в секунду

ICOPM - процессор 486 DX2-66 берется а единицу.

SPEC – стандартный критерий оценки производительности

TPC - критерий обработки транзикаций.

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

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

45. Конвейерная обработка данных. Простейший конвейер, организация и функционирование; производительность.

Уровни совмещения операций:

  1. Совмещение фаз нескольких заданий (пока одно задание вычисляется, другое вводиться )

  2. Совмещение отдельных процедур/частей в рамках одного задания.

  3. Совмещение либо нескольких проходов одного цикла, либо нескольких фаз.

  4. Совмещение арифметических операций над различными разрядами одного числа

Сущ. 2 подхода совмещения

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

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

R0-R31 целочисленные регистры

F0-F31 вещественные регистры

3 способа адресации. Каждая команда в таком процессоре должна пройти след стадии обработки:

  1. Выборка команды

  2. Распознание команды, выделяет адрес поля, декодирования

  3. Обращение к регистру для считывания исходных данных

  4. Либо обработка, либо обращение к памяти

  5. Запись результата в регистр

Введем дополнительное предположение , что время выполнения для всех команд одинаково. Конвейерный процессор имеет 5 независимых специальных функциональных узлов, каждый из которых отвечает за свое действие.

Конвейерная обработка не ускоряет выполнение команды. Предположим что длительность обр. команды

Не конвейерная обработка конвейерная обработка

EX 10 11

ID 10 11

RD 4 11

WR 4 11

IF 6 11

Итог 34 55

1000 команд 34000 11000

При конвейерной обработке задержка на каждом этапе должна быть одинаковая. 11000 это пиковая скорость, реальная будет ниже из-за конфликтов.

46. Конфликты на конвейере. Конфликты по данным; переименование регистров; переупорядочивание команд.

3 вида конфликтов в конвейерной системе:

  1. Структурный, вызванный недостатком ресурсов

  2. Конфликт по данным, вызванный тем, что несколько идущих подряд команд обращены к одним и тем же данным

  3. Конфликт управления, вызванный неопределенностью, вследствие наличия команд передачи управления

Конфликт по данным:

ADD R0, R1, R2

SUB R3, R4, R0

Такты 1 2 3 4 5 6

Add if id rd ex wr

Sub if id rd ex wr

Add запишет в R0 на 5-м такте, а sub прочитает на 4-м => не верный ответ

Такты 1 2 3 4 5 6 7 8

Add if id rd ex wr

Sub if id * * rd ex wr

Для add результат готов после 4-го такта. Для sub R0 фактически нужно при начале EX. Проблему можно решить, если промежуточный результат не сохранять в регистре, а оставить в АЛУ до начала след. команды. Этот прием называется пересылка или закорачевание АЛУ.

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

  1. MOV

  2. r1, #10 (1,2 read after write)

  3. Add r0, r1, r2 (2,3 write after read)

  4. Mov r1,r5 (1,3 write after write)

Команда 2 использует регистр в качестве операнда, есть возможность считать данные до их записи. Команда 3 помещает в R1 новое значение заменяя операнд необходимый команде 2. Если команды выполняются строго последовательно, проблем не возникает, но проблема возможна, если запись возможна с разных этапов конвейера, в этом случае возникнет конфликт запись после чтения.

  1. Конфликты на конвейере. Структурные конфликты. Точные прерывания на конвейере.

3 вида конфликтов в конвейерной системе:

  1. Структурный, вызванный недостатком ресурсов

  2. Конфликт по данным, вызванный тем, что несколько идущих подряд команд обращены к одним и тем же данным

  3. Конфликт управления, вызванный неопределенностью, вследствие наличия команд передачи управления

Структурный конфликт.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]