Повышение производительности вычислительных систем
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

Производительность – это количество операций в единицу времени. Быстродействие – время выполнения операций. Пусть существует функция F, которую можно разделить на F1, F2, F3. При выполнении задачи F методом, описанным на рисунке, время выполнения F вычисляется как сумма времени выполнения операций F1, F2, F3.

 

 


При выполнении задачи F методом, описанным на рисунке, время выполнения F вычисляется как максимальное из значений времени выполнения операций F1, F2,F3.

 

 

Для ускорения выполнения операций используется конвейеризация (локальное совмещение команд – одновременное выполнение различных фаз соседних команд).

 

 

Выполнение команд последовательно осуществляется по следующей схеме:

 

 

При конвейеризации используется другой принцип:

 

При этом время выполнения операций не изменилось, но производительность увеличилась в 2 раза.

Для обработки операндов и команд используется буферная память.

 

БК – буфер команд

БД – буфер данных

 

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

Команды имеют следующий формат:

 

 

КОП – код операции

M – признак команды

R1 – номер регистра

R2 – номер ячейки

R3 (L) - смещение

Конфликты, возникающие при использовании принципа конвейеризации.

1. Структурный – возникает при одновременном обращении в различных фазах к одному тому же ресурсу.

 

 

Например, фазы ВО и ВК, ВК и ИК, выполняемые в одно время, требуют обращения к памяти. Решение – введение отдельных КЭШей (для команд и для данных).

2. Зависимость по данным. Например, при выполнении следующих операций

сложить R1 R2 R3 (результат сложения R2 и R3 записывается в R1)     

умножить R4 R1 R5

При выполнении ВО второй команды требуется элемент R1, который будет получен только при выполнении ЗР первой операции. Это невозможно. Решение:

1) введение дополнительной пустой операции (приторможение конвейера)

2) заранее выявить конфликт и изменить порядок команд

3. Конфликт по управлению.

Например, такой конфликт возникает при:

сложить          R1 R2 R3 (результат сложения R2 и R3 записывается в R1)     

условный переход  Z

умножить R2 R3 R4

Решение:

1) вставить нейтральные команды («пузырь»),

2) спекулятивное выполнение,

3) предсказание перехода (если условие выполняется→переход к кэш-условию).


Мультипрограммирование

 

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

 

 

Для работы ЦП по данной схеме используется принудительное переключение. Цикл активности – время непрерывного решения задачи ЦП-ом., которое лимитируется.

Аппаратные о программные средства для поддержания МП.

1. Канал по обслуживанию периферийных устройств.

2. ЦП должен иметь таймер.

3. Система прерываний.

2 и 3 – механизмы переключения.

4. Диспетчер определяет порядок выполнения программы.

5. Память: внешняя (файловая система) и ОП.

При МП решаются задачи защиты и распределения памяти. Динамическое распределение памяти – это выделение памяти каждой программе по мере и в объемах ее необходимости.

Защита – это предотвращение влияния одной программы на другую через общую память.

Распределение памяти

Для распределения памяти используются таблицы массивов, содержащие следующие параметры: базовый адрес, длина. Первая строка таблицы описывает начальный адрес свободной области памяти. Память должна освобождаться в порядке, обратном ее заполнению. Обращение к памяти происходит по адресу B+адрес, указанный в программе. Для защиты необходимо выполнение следующего условия: Bi+ni<Ai*<=Bi, где Ai* - адрес при обращении к i-ому массиву.

 

 

Виртуальная память – это расширение ОП за счет дисковой памяти.

 


Ам – математический адрес (сформированный в ЦП)

Aф – физический адрес (сформированный при помощи таблиц перевода)

Аh – старшая часть, указывающая номер страницы

Al – младшая часть, указывающая ячейки внутри страницы.

 

Схема преобразования математического адреса в физический.

 

 

Sм – указатель на строку таблицы страниц (ТС)

Sф – физический адрес соответствующей страницы

ДП – диспетчер памяти


Метод защиты памяти

При страничной организации используется метод «ключ-замок». Ключ – это код, который ставится в соответствие программе. Замок - это код, который ставится в соответствие области памяти. При обращении к памяти происходит сравнение ключа с замком, и в случае совпадения разрешается доступ к памяти.

Сегментация памяти

Процессор при обработке программы взаимодействует с оперативной памятью ОП, которая представляется единым массивом однобайтных ячеек, обращение к которым происходит по их номерам (физическим адресам). Для обращения к памяти процессор предварительно помещает адрес ячейки в один из своих регистров. Шестнадцатиразрядный процессор не может хранить в своих регистрах двадцатиразрядный адрес. Поэтому в нем применена так называемая сегментация памяти, которая заключается в том, что истинный, физический адрес ячейки хранится в двух регистрах. Один из них - сегментный, он хранит адрес начала блока памяти, который и называется сегментом. Если к шестнадцати разрядам сегмента справа дописать четыре двоичных нуля (16+4=20), то получим физический адрес начала сегмента в ОЗУ. Второй регистр хранит величину смещения адреса требуемой ячейки от начала сегмента. Адрес ячейки памяти записывается в виде двойного слова (4 байта): <сегмент>:<смещение>. Сегмент всегда начинается с ячейки, номер которой заканчивается на 4 двоичных нуля. Минимальная длина сегмента 16 байтов (параграф). Максимальная длина определяется длиной регистра, хранящего смещение и равна 64 Кбайта. Пара регистров CS: IP определяют адрес следующей команды программы. Для адресации данных используются сегментные регистры DS и ES, а в качестве регистров, хранящих смещение, используются регистры общего назначения BX, SI, DI. Для работы с сегментом стека используют сегментный регистр SS и регистр BP.

Режимы формирования адреса

Режим R86 (реальный) используется при включении питания. Это BIOS – этап, на котором происходит конфигурирование, тестирование системы.

В защищенном режиме P86 происходит запуск Windows.

1.ЦП получает набор специальных управляющих регистров (трассировки и тестирования).

2.Он изменяет способ формирования адреса, при этом не используются коды команд, написанных для R86 (для их выполнения используется V86).

3.Обеспечивается МП режим работы (включены механизмы распределения и защиты памяти). V86 обеспечивает согласование режимов на уровне кодов команд.

Адресация памяти в P86 происходит следующим образом: ЦП формирует 32-разрядный адрес. Но этот адрес не физический. Формируется линейный, линейно-страничный адрес (страничная организация поверх линейной памяти)

В R86 сегментный регистр задает местонахождение базы. Старшие 13 разрядов этого сегмента – селектор – указатель номера строки в таблице дескрипторов. Существует 2 таблицы дескрипторов:

GDT (Global)-единственная, создается до работы в P86 (R86), общая для всех решаемых программ,

LDT (Local).

Каждая программа может иметь свою собственную DT, которая описывает структуру памяти и используется только данной программой. Переключение GDT на LDT выполняется следующим битом сегментного регистра. Местонахождение GDT задается специальным регистром GDTR. RPL (младшие 2 разряда сегмента) – указатель, используемый для допуска к соответствующей области памяти (ключ). Дескриптор – это код, описывающий некоторую область памяти (и других информационных структур: шлюзов, задач). Дескриптор состоит из:

1) 32-разрядной базы (адрес сегмента, сегмент может начинаться с любого байта)

2) границы (20 разрядов)

3) DPL (2 разряда) – замка, который используется для защиты сегмента

4) Внутри дескрипторов есть поле некоторых признаков (10), которые указывают, что именно описывает дескриптор:

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

б) тип (назначение): сегмент кода, данных, принадлежности ОС или пользовательской программе.

в) доступность: по границе (база <= линейного адреса< границы); DPL – имеет 4 кольца защиты, информация о программе должна относиться к определенному уровню защиты, меньший номер имеет большую защищенность. Для осуществления доступа к памяти необходимо выполнение следующего условия: max(RPL,CPL)<=DPL, где RPL- текущий уровень защиты, CPL – RPL сегментного регистра CS.

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

Для обеспечения защиты памяти и правильного обращения к ней используется TTS (таблица состояния процесса). Это регистр обращения (страница размером 4096 байт, в которой отображается текущее состояние регистров процессора), бинарная таблица в/в, в которой каждый бит ассоциирован с некоторым регистром (портом в/в). Если установлена 1, то порт для данной программы закрыт. Таким образом, осуществляется контроль за обращением к памяти и портом.

Дата: 2019-07-24, просмотров: 154.