46736 (597297), страница 3
Текст из файла (страница 3)
Появился режим прерываний (см. след. тему).
Организация механизма прерываний
Задачи:
-
Проинформировать ЦП о завершении операции ввода/вывода.
-
Найти ту программу, которая может обработать это прерывание.
Была разработана схема, названная «векторной таблицей».
Все события пронумерованы.
Дескрипторы описывают программы обработки прерывания.
Дескрипторы аппаратно (процессорно) зависимы.
ЦП должен сохранять тот контекст, который нельзя сохранить другими средствами. Если работаем с виртуальной памятью, надо аппаратно сохранять тот контекст, который меняется автоматически аппаратно во время перехода (таблица страниц, стек и т.д.).
Чтобы выполнить процедуру аппаратного прерывания достаточно сказать о факте происхождения события и передать номер сообщения (сигнализация и передача номера).
Система прерываний – специальный набор действий (какой номер выставлять на шину, что делать, если несколько и т.д.).
Система прерываний радиального типа
Ножка запроса прерываний всегда опрашивается центральным процессором между выполнением машинных инструкций.
Аппаратно в ЦП можно блокировать опрос этого бита (CLI).
Если этот бит устанавливается в 1, начинается обработка прерываний:
-
ЦП должен спасти свой контекст.
-
ЦП должен получить номер дескриптора таблицы (для этого сгенерировать цикл шины – подтверждение прерывания).
Контроллер прерываний – программируемое через СШ устройство.
Необходимо указать контроллеру, какой номер события связан с каким ВУ.
Система прерываний радиального типа: каждое прерывание ассоциирует с каждым устройством специальный единичный запрос.
Для каждой линии IRQx – одно событие. Устройства подключаются к таким линиям.
Приоритет предоставления прерываний – алгоритм, по которому контроллер прерываний определяет приоритеты ВУ, подключаемых к одной линии IRQx (?).
В MS-DOS и Windows используется линейная приоритетная схема: устройства имеют статические приоритеты, которые определяются номером линии IRQx.
Возможны и другие алгоритмы.
Например, циклическая схема: после завершения обработки прерываний устройство становится самым низкоприоритетным.
Наивысший приоритет предоставляется асинхронным устройствам, а также системным событиям. Низший – синхронным устройствам.
Главный недостаток – ограничено число линий запроса, а следовательно и устройств.
Можно построить иерархическую схему (расширяем вторым контроллером):
Третий контроллер подключить нельзя, т.к. не хватит линий прерываний. Шина тоже может накладывать ограничение на число прерываний (ISA – 15).
Если количество устройств очень большое, нельзя использовать эту схему!
Чтобы не потерять короткие прерывания используется маска запомненных прерываний.
End of Interrupt – команда сброса масок блокировок и запомненных прерываний.
Нужно отправить ее контроллеру!
Нужно, чтобы на одну линию можно было подключить сколько угодно устройств – в этом случае нельзя использовать контроллер!
Приоритетная (параллельная) схема обработки прерываний
Производится программная или аппаратная привязка.
Устройство выставляет номер вектора на шину.
Но в цикле прерывания только одно устройство должно выставлять номер на шину.
Для этого вводится сигнал ответа устройству данного приоритета. ЦП должен иметь столько линий подтверждения прерываний, сколько у него линий запроса.
ACK должен попасть только к одному устройству данного приоритета!
Устройства с одинаковым приоритетом имеют «внутренний приоритет», определяемый их близостью к ЦП.
В этой схеме есть проблема, связанная с блокировкой запросов (в прошлой схеме проблем не было, блокировкой занимался контроллер).
С запросами связывается битовая маска, которая транслируется в слово состояния процессора. Т.е. ответственность за блокировку/разрешение прерываний возлагается на программиста (системного, конечно ;) )!
Действия, выполняемые в обработчике прерывания
intx: push ax
push si
push ds
in ax, #port
mov ds:[si], ax
inc si
dec cx
pop
...
iret
Если темп поступления прерывания высок, не успеем все обработать.
Механизм прямого доступа к памяти
ЦП не участвует в обмене.
Аппаратуре нужно знать: номер порта и адрес буфера. Контроллер прямого доступа (КПДП) и есть та самая железяка!
Это минимальный набор регистров
Как подключить это устройство.
По завершении операции КПДП генерирует прерывание.
Схемы организации прямого доступа:
-
Радиальная:
Канал прямого доступа резервируется для каждого устройства. ВУ выставляет к КПДП запрос DMAx с номером этого канала.
Недостаток: ограничиваем количество физических устройств, которые могут работать ПДП посредством каналов к КПДП.
-
Динамическая
Конкретное физическое устройство не привязывается к номеру канала.
Канал ПД выдается устройству при необходимости в прямом доступе и освобождается по завершению операции.
КПДП выполняет обмен между ОП и ВУ, генерируя цикл шины. В цикле шины могут присутствовать только физические адреса. Необходимо добавить (к регистрам выше) набор регистров адресации памяти, например, таблицу страниц.
Кроме того, буфер должен быть физически непрерывным.
Вопрос с кэшированием!
Параллельные вычисления
Общие понятия.
Сильно и слабо связанные:
-
Сильно связанные – общая память для всех ЦП;
-
Слабо связанные – у каждого ЦП своя память.
Однородные и неоднородные:
-
Однородные – все ЦП одинаковые;
-
Неоднородные – разные ЦП.
Архитектуры:
-
Симметричная (SMP) – сильно связанная система с однородными процессорами;
-
Массово-параллельные системы (MPP) – неоднородные слабо связанные системы.
Параллельность команд и параллельность данных.
-
Уровень процессов (изолированных задач)
-
Второй уровень параллельности – общие коды (процесс), общие данные, много потоков – многопоточная обработка.
-
Алгоритмическая параллельность – параллельностью обладает сам алгоритм. Например, умножение матрицы на вектор, можно считать компоненты результирующего вектора одновременно (параллельно).
-
Формами параллельности обладает и самый обычный код (параллельность на уровне машинных команд, независимые операции).
При увеличении числа процессоров скорость системы увеличивается не линейно. Это объясняется тем, что передача информации будет занимать все большую часть времени.
П
еред обработкой данные надо сначала распределить между узлами, а потом передать результаты обратно.
Топологии массово-параллельных систем:
-
Пространственный куб
-
Пространственный тор
Ц
ель: минимизировать число передач данных между узлами.
Обеспечивают большее количество подключенных устройств при меньшем количестве передач. Каждый узел – это ЦП, ОП, ВУ и т.д.
В SMP-системах синхронизация осуществляется с помощью семафоров.
Команда xchg AX,[BX] – обмен значений регистра AX и содержимого ячейки с адресом BX. Все происходит в цикле – чтение/модификация/запись.
При наличии кэша ситуация резко ухудшается, т.к. ЦП обращается к кэшу, а не к общей ОП. Нужен механизм управления кэшами.
Путь 1 – поместить общие данные в некэшируемые ячейки данных.
Путь 2 – Синхронизация кэшей.
Заводится бит Shared для данных в кэше. Если такие данные изменяются, то ЦП обмениваются данными.
У Интела добавляются четыре бита SMEH.
Принципы работы периферийных устройств
-
Внешние Запоминающие Устройства (ВЗУ)
-
Устройства отображения
-
Устройства связи
-
Устройства сопряжения с объектами управления
-
Специальные внешние устройства (таймеры и т.д.)
-
Символьные (передают потоки данных в виде потока байтов)
-
Блочные (всегда обмениваются блоками информации)
-
Файловые (интерпретируют информацию в виде спецификаций ФС)
-
Синхронные (поставляют данные только по команде)
-
Асинхронные (сами в любой момент времени могут осуществить передачу данных)
Коммуникационные и устройства хранения:
-
Произвольного доступа
-
Последовательного доступа
По доступу:
-
Коллективного доступа (запросы без ограничения из многих задач, не имеют истории запросов)
-
Исключительного доступа (заранее задан порядок доступа, имеют историю запросов)
-
Транзакционного доступа (исключительный доступ по очереди для разных задач)
Внешние Запоминающие Устройства (ВЗУ)
Магнитные ВЗУ
Ф
ерромагнетики имеют кристаллическую структуру
Непосредственно записывать и считывать данные с носителя невозможно, нужно использовать специальное кодирование.
Виды кодирования:
-
Амплитудное – основано на абсолютном значении параметра;
-
Частотное - основано не на значении параметра, а на факте его изменения.
Запись и считывание
Чтение – анализ возникающего при движении головки тока.
Запись – подача тока в головку.
Плотность записи (размер пятна) зависит от формы магнита и магнитных свойств материала.
Нечувствительный материал – жутко большое поле, значит, надо повышать площадь, чтобы не затереть соседние записи (пятна).
Чувствительный материал – больше плотность записи, но меньше уровень сигнала.
Оптические ВЗУ
Кодирование тоже частотное: луч на какое-то время уходит с фотоприемника и возникает импульс.
А если надо писать?
Болванка – диск без канавок.
Запись производится тоже лазером, но при повышенной мощности луча – прожигание канавок. Это однократная запись.
Для многократной записи:
-
Фазовые диски (быстоостывающие сплавы, если остывают медленно – становятся аморфными и работаю как зеркало, если быстро – кристаллизуются и рассеивают свет)
-
Пленочные диски (полимерные пленки, которые под воздействием лазера изменяют свои спектральные свойства)
Магнитооптические ВЗУ
Р
азные излучения, имеющие высокие плотности, взаимодействуют между собой. Отражаясь от магнитного домена, луч получает спиновое
отклонение (поворачивается вектор поляризации). На обычном луче этого не видно, а только на поляризованном.
Луч, попадая на домен, изменяет свой вектор поляризации в зависимости от намагниченности материала (ориентации доменов). Таким образом, луч то проходит через поляризатор фотоприемника, то – нет.
Диаметр пятна в магнитооптических ВЗУ соизмерим с размером луча лазера, т.к. запись происходит в области, нагретой лазером. При нагревании, материал становится более магнитомягким. Магнитная головка может иметь большой размер пятна, но все равно область записи очень мала. Магнитная головка используется только при записи.
Способы кодирования информации
Как закодировать импульсами нули и единицы? Наличие импульса в определенном временном диапазоне означает единицу. Надо закодировать саму информацию и временное окно.
FM (Frequency Modulation) – ФК (Фазовое Кодирование)
Каждое временное окно нужно закодировать. Временные окна делят пополам, следовательно, теряется ровно половина диска. Одно пятно уходит на синхроимпульсы, а второе на импульсы данных.
Плотность записи – 8s. А исходно – 4s.
















