Реферат Компьютерные системы управления
Работа добавлена на сайт bukvasha.net: 2015-10-28Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
от 25%
договор
Реальный и защищенный режим работы МП.
Среда DOS позволяет полностью использовать возможности микропроцессоров Intel 8088 – базового процессора компьютера IBMAT. В ПК IBM pc/AT используется микропроцессор Intel 80286, в IBM ps/2 – микропроцессор Intel 80386. В микропроцессоре начиная с i 80286 и i 80386, предусмотрен режим, называемый реальным режимом, который был совместим с режимом работы микропроцессоров i 8086 и i 8088.
Реальный режим поддерживал выполнение всего одной программы. Для этого достаточно было простых механизмов распределение оперативной памяти и не было потребности в организации защиты программ от взаимного влияния.
Все, что нужно было знать программе это адреса, по которым располагаются ее сегменты кода, данных и стека .
Кроме того, в реальном режиме работы микропроцессора сегмент был длинной не более 64 кбайт, а адрес области памяти сегмента располагался в одном из сегментных регистров. Функциональное назначение сегмента памяти определялось тем, в каком из сегментальных регистров находился его адрес. Аппаратные средства контроля доступа и сегменту отсутствовали. Такой контроль можно было организовать только со стороны операционной системы, т.е. на уровне программных средств.
Реальный режим работы компьютера не позволял реализовать ни одного из новых программных средств микропроцессора i 80286, которые представлены пользователю в режиме полного использования микропроцессора i 80286, называемого защищенным режимом. Все современные многозадачные операционные системы работают только в этом режиме, использующем все возможности, представляемые микропроцессором, и реализующем параллельную работу нескольких прикладных программ.
МП 80286 обеспечивал защиту операционной системы и ее данных от работающих в системе программ, а также защиту программ и их данных друг от друга. Операционная система OS/2 позволила МП 80286 работать с виртуальной памятью и предоставлять пользователю физическую память объемом более 1 Мбайт (за счет создаваемых на жестком диске файлов «подкачки»).
Программы, выполняемые в среде DOS не используют весь объем памяти, имеющийся в новых персональных компьютерных системах и не могут обращаться к сегментам памяти, расположенным выше 640 кбайт. Программы запускаемые в защищенным режиме среды OS/2 и в разработанной на ее основе ОС Windows, могут использовать память, превышающую 1 Мбайт, и имеют возможность прямого доступа и данным в этой области памяти.
При работе в среде защищенного режима OS/2, такие как и в современных ОС Windows, каждой из одновременно работающим программ предоставляется необходимое виртуальное адресное пространство. Подобным образом в защищенном режиме микропроцессора I 80286 OS/ 2 обеспечивает защиту одной программы от другой и операционной системы от работающих в ней программ.
С целью создания условий для многозадачного выполнения прикладного программного обеспечения персонального компьютера должно, во-первых, поддерживать сложные аппаратные средства реального времени, а во-вторых, обеспечивать возможность доступа к сложным коммуникационным и сетевым протоколам для обмена данными.Системная среда должна поддерживать обработку прерываний аппаратных средств реального времени и многозадачный режим. Такие возможности в OS/2 и Windows реализуются специализировании программным интерфейсом (API). API является средством работы с модульными структурами программ и динамической компоновки вызываемых модулей.
API позволяет разработчику создавать сложные, выполняемые совместно модульные программы или программные системы, не требуя знания того, как будет в дальнейшем организованно взаимодействие основной программы и вызываемых из нее модулей.
Любой современный микропроцессор в реальном режиме незначительно отличается от известного i 8086. Это лишь его более быстрый аналог с увеличенным (до 32 бит) размером всех регистров, кроме сегментных. Для доступа к остальным архитектурным и функциональным возможностям микропроцессора, необходимо перейти в защищенный режим, использующий новые принципы работы микропроцессора с памятью. Она по-прежнему является сегментированной, но изменились функции и номенклатура программно-аппаратных компонентов, участвующих в сегментации.
Для регулирования взаимодействия нескольких выполняемых задач нужно иметь больше информации о самих задачах. Так как фирма Intel не стала нарушать принцип сегментации, а каждая задача в системе занимает один или несколько сегментов в памяти, то информация о задачах должна быть как об объекте, реально существующих в данный момент в системе. Если каждому из этих объектов присвоить определенные атрибуты, то часть контроля за доступом к ним можно переложить на сам микропроцессор.
Любой сегмент памяти в защищенном режиме имеет следующие атрибуты:
- расположение сегмента в памяти;
- размер сегмента;
- уровень привилегий – определяет права данного сегмента относительно других сегментов;
- тип доступа.
Состав атрибутов показывает, что в защищенном режиме микропроцессор поддерживает два типа защиты - по привилегиям и доступу к памяти.
В отличие от реального режима, в защищенном режиме программа уже не может запросто обратиться по любому физическому адресу памяти. Для этого она должна иметь определенные полномочия и удовлетворять ряду требований.
Ключевым объектом защищенного режима является специальная структура – дескриптор сегмента, который представляет собой 8-байтовый дескриптор (краткое описание) непрерывной области памяти, который содержит перечисленные выше атрибуты. Любая область памяти, которая логически может являться сегментом данных, стека или кода, должна быть описана таким дескриптором. Дескрипторы собираются вместе в одну из трех дескрипторных таблиц. Назначение дескриптора определяет в какую таблицу он должен быть помещен. Адрес, размещения дескрипторной таблицы может быть любым, он хранится в специально предназначенном для этого адреса системном регистре. Системные регистры как часть архитектуры микропроцессора, обеспечивающие защищенный режим, выполнены доступными для того, чтобы системный программист мог запрограммировать самые низкоуровневые операции.
Системные регистры ряда Pentium можно разделить на три группы:
- четыре регистра управления;
- четыре регистра системных адресов;
- восемь регистров отладки.
Характеристики
API
/
OS
/2
API OS/2 является интерфейсом динамического вызова. Прикладные программы обращаются к системным функциям по имени. Передача параметров каждой функции из вызывающей программы осуществляется посредством их записи в стек. Число параметров каждой функции всегда остается постоянным.
Адреса этих параметров помещаются в стек. Каждый адрес в операционной системе OS/2 состоит из двух частей—1б-бит селектора (сегмента), и 16-бит смещения. Селектор – это значение регистра сегментов в защищенном режиме.
Для возврата в программу после вызова функции система помещает код адреса возврата в регистр АХ. Для возврата параметров системной функции программа помещает адреса в стек перед вызовом функции. Функция всегда удаляет из стека все входные параметры. При обращении к функции все регистры кроме регистров АХ и ILAGS, остаются защищенными.
Реальная и виртуальная память большого объема.
Под реальной памятью будем понимать физическую оперативную память системы и физические адреса этой памяти. Под виртуальной памятью будем подразумевать адреса, с которыми оперируют программы. В реальном режиме работы микропроцессора 80286 реальные и виртуальные адреса памяти идентичны.
В реальном режиме работы МП 80286 – адресное пространство между 640 Кбайт и 1 Мбайт зарезервировано для памяти адаптеров ввода/вывода и размещения команд ВIOS. Объем памяти, которой распоряжается микропроцессор 80286 в реальном режиме, не может превышать 640 Кбайт.
В системе DOS одним из средств расширения памяти за предел в 1 Мбайт является виртуальный диск. Такой виртуальный диск оказывается гораздо более быстродействующим устройством, чем просто жесткий диск. Виртуальный диск может использоваться программами так же, как обычный жесткий диск, с помощью файловой системы API. Однако такой способ расширения памяти за 1 Мбайт, к сожалению, имеет существенный недостаток. Так, программы для работы с данными на виртуальном диске должны формировать их только как дисковые файлы, чего не требуется при работе с реальной памятью. Кроме того, находящиеся на диске фрагменты программ не могут быть выполнены непосредственно. Прежде чем выполнить часть программы, записанную на виртуальном диске, ее необходимо считать ПК. Это приводит к недопустимым в системах реального времени задержками и усложняет структуру и весь процесс написания программ.
В среде операционной системы OS/2 возможности адресации памяти в защищенном режиме микропроцессора 80286 используются как самой операционной системой, так и программами пользователя. В этой среде и OS/2, и программы имеют возможность прямого доступа ко всей физической памяти без применения искусственных средств типа виртуального диска. Кроме того, OS/2 располагает возможностью работы с виртуальной памятью в защищенном режиме работы микропроцессора 80286. При это, конечно, виртуальные адреса в программах не эквивалентны физическим адресам памяти ПК. Использование виртуальной памяти позволяет одновременно работающим в системе программам обращаться к существенно большому объему памяти, чем на самом деле имеется в системе. С точки зрения программ вся доступная адресуемая память является реальной.
Часть всей этой памяти в OS/2 на самом деле расположена на диске, и операционная система перекачивает ее с диска в ОЗУ, когда программа обращается к данной области памяти. Программы «не знают» о том, что их программные сегменты или данные не находятся в физической памяти, когда пытаются их выполнить или считать. Программы «не знают» и того, каков реальный объем физической памяти.
Превышение объема оперативной памяти
Многозадачные ОС, в том числе OS/2 используют для организации работы с памятью перекачку (или выталкивание) сегментов памяти на диск.
На диск записываются из оперативной памяти те сегменты, к которым длительное время не было обращения (алгоритм LRU). После того как сегмент сброшен на диск, освободившийся объем оперативной памяти может быть использован для подкачки с диска другого сегмента памяти. Причем новый сегмент считывается с диска в оперативную память в тех случаях, когда программа или операционная система обращается к нему для выполнения программного сегмента или для считывания из сегмента данных.
ОС может также расформировать этот сегмент, если программа создает сегмент данных, который может быть расформирован.
Если сегмент должен быть использован снова, его можно записать в память из того источника, откуда он был взят первоначально, и вновь создать с помощью той же программы, которая разрешила операционной системе расформировать этот сегмент данных.
Поскольку сегмент в OS/2 может иметь переменный размер (вплоть до 64 Кбайт), расформирование сегментов и их перекачка на диск и подкачка с диска могут привести к появлению хаотически расположенных в памяти участков, не содержащих полезной информации. При этом, если, например, имеются два отделенных друг от друга участка памяти объемом 32 Кбайт и требуется записать в память сегмент объемом 64 Кбайт, операционная система не сможет этого сделать, так как сегмент должен располагаться в едином участке памяти. В таких случаях OS/2 может переместить имеющиеся в памяти рабочие сегменты, чтобы получить единый свободный участок памяти. Эта операция называется перемещением сегментов.
Такой способ организации работы системы в защищенном режиме МП 80286 освобождает пользователя от организации памяти, что важно при написании больших программ и имеет преимущество по сравнению с оверлейными структурами, когда потребный объем необходимой памяти превышал реальный доступный объем памяти системы. В этом случае было необходимо структурировать программы так, чтобы обеспечить правильность выполнения этих программ в оверлейном режиме. При написании оверлейных программ пользователь также должен был решить проблему соотношения адресного пространства самой программы и адресного пространства дл данных. При организации виртуальной памяти в операционной системе OS/2 необходимо знать сколько сегментов можно использовать, учитывая максимальное число поддерживаемых системой сегментов, и каковы будут затраты системы на выполнение операции перекачки сегментов.
Архитектура микропроцессора
i
80286
Рассмотрим как выполняется адресация в 80286.
РЕГИСТРЫ ОБЩЕГО НАЗНАЧЕНИЯ РЕГИСТРЫ СЕГМЕНТОВ
Четыре 16-бит регистра Четыре 16-бит регистра
CS — программный сегмент
Каждый регистр может быть исполь- DS — сегмент данных
зован как два 8-бит регистра ES — дополнительный сегмент
AX-AH:
BX-BH:BL СПЕЦИАЛЬНЫЕ РЕГИСТРЫ
CX-CH:CL F — флаговый
DX-DH:DL IP —указатель команды .
Еще четыре 16-бит регистра MSW — слово состояния машины
ВР —указатель базового адреса
SI —индекс источника
DI — индекс получателя
SP — указатель стека
ДРУГИЕ ВАЖНЫЕ ЭЛЕМЕНТЫ
—кэш-регистры дескрипторов сегментов;
—таблица глобальных дескрипторов (GDT);
—таблица локальных дескрипторов (LDT);
—таблица дескрипторов прерываний (IDТ);
—регистр задачи, сегмент состояния задачи.
Рисунок – внутренняя память i 80286.
Каждый адрес состоит из двух 16-бит компонентов: 16-бит значения одного из регистров сегментов и 16-бит смещения значения регистра сегментов определяет сегмент, к которому выполняется обращение значение смещения определяет положение элемента данным в сегменте.
Размер сегмента может быть 64 Кбайт или 65536 байт. Смещение с учетом разрядности в 16 бит также может достигать 216 – 1 = 65535 байт.
Процессор обращается за новой командой, используя регистр сегмента (CS) и смещение (IP)/
Некоторые команды типа условного перехода вызывают изменение значения регистра IP. Если же значение регистра IP не изменяется текущей командой, то для получения адреса очередной команды процессора следует к текущему значению IP прибавить длину последней выполненной команды. Когда содержимое регистра IP изменяется в результате выполнения текущей команды, очередная команда выбирается процессором по адресу того же регистра CS со смещением, равным измененному значению IP. Существуют команды, изменяющие значения обоих регистров CS и IP. В этом случае микропроцессор переходит к выполнению команд из нового сегмента памяти.
Раздел памяти, называемый стеком, используется для хранения информации в случаях, когда 1) одна процедура (набор команд процессора) обращается к другой процедуре; 2)для выполнения программы требуется временный рабочий раздел памяти, а программа явно выделяет эту память. Текущий стековый сегмент памяти задается содержимым регистра SS/ для указания заданного смещения в стеке обычно используется регистр SP и BP (в зависимости от того, для какой цели служит стек).
Процессор обычно обращается к данным, адрес сегмента которых задает регистр DS или ES. Смещение в сегменте данных может быть указано различными способами. Смещение может быть задано в выполняемой команде, вычислено в результате некоторых арифметических действий или явно задано 16-бит значением. Существует ряд ограничений на использование регистров общего назначения для определения смещения в различных ситуациях.
Большинство выполняемых микропроцессором команд имеет дело с источником и получателем данных. Данные источника могут быть явно заданы в самой команде, могут быть в регистре общего назначения или просто находится в памяти. Получателем данных может быть регистр общего назначения или адресуемый раздел памяти. Большинство команд не может одновременно работать ч источником и получателем данных, однако некоторые команды процессора специально созданы для таких операций. Эти команды используют регистры SI и DI для задания смещения источника и получателя, а регистры DS и ES для указания адреса начала сегментов источников и получателя данных.
Регистр флагов (F) содержит информацию о результате предыдущей операции (например, знак, перенос, переполнение и т.д.) и о разрешении прерываний. Слово состояния машины – MSW – определяет текущее состояние микропроцессора, в частности указывает, в каком из режимов – реальном или защищенном – он находится.
Содержимое всех упомянутых выше регистров (и остальной автономной памяти) в момент включения (или перезапуска) микропроцессора определяет его начальное состояние. После перезапуска микропроцессор 80286 всегда находится в реальном режиме со следующими значениями двух основных регистров: CS = FOOOH и IP = FFFOH. При таком значении регистров процессор начинает выборку команд по физическому адресу FFFFOH, который расположен чуть ниже 1 Мбайт. Остальные три регистра сегментов после перезапуска обнуляются.
Определение физического адреса,
формируемого
i
80286, в реальном режиме
Физический состоит из двух компонентов: 16-бит значения регистра сегментов и 16-бит значения смещения. Эти компоненты обрабатываются по разному в зависимости от того, в каком из режимов – реальном или защищенном – МП. В реальном режиме он формирует физические адреса как i 8088 или i 8086:
1) Взять 16-бит значение регистра сегментов (диапазон от 0 до 65535 в десятичной или от 0000H до FFFFH в шестнадцатеричной записи) и умножить его на 16, т.е. сделать 20-бит, добавить справа к значению регистра четыре нулевых бита.
2) Полученное после выполнения первого шага значение будет находиться в диапазоне от OOOOOH до FFFFOH, т.е. от 0 до 1048 650 в десятичной записи. Поскольку четыре младших бита всегда остаются нулевыми, это значение всегда кратно 16 в десятичной системе счисления.
3) Добавить к полученному 20-бит значению регистра сегментов 16-бит смещение.
4) После выполнения указанных действий формируется окончательный 20-бит физический адрес в диапазоне от OOOOOH до FFFFFH (переполнения не учитываются).
Схема формирования физического адреса представлена на рис.
|
|
+
|
|
20-бит физический адрес
Рисунок – формирование физического адреса в реальном режиме.
Зная значение регистра сегментов, можно точно определить, где расположен данный сегмент в физической памяти. Поскольку прикладная программа записывает в регистр адрес текущего рабочего сегмента, она может непосредственно управлять разделами физической памяти, к которым ей необходимо обратиться. Как при работе в среде реального режима микропроцессора 80286 виртуальные адреса памяти совпадают с реальными.
Виртуальным здесь называется адрес, с которым имеет дело программа пользователя, а реальным — физический адрес, используемый системой для доступа к физической памяти.
При такой схеме организации адресации может показаться, что увеличение на единицу значения регистра сегментов для перехода к следующему сегменту памяти оказывается эквивалентным обращению к тому же сегменту при увеличении значения смещения на 16 (предполагая, что переполнения не будет). Такие коллизия постоянно возникают при выполнении программ, написанных для среды DOS. Вот почему, в частности, программы DOS не могут выполняться в среде защищенного режима микропроцессора 80286.
Определение физического адреса в защищенном режиме.
При формировании адресов в защищенном режиме микропроцессора 80286 учитываются следующие моменты: система может адресоваться к памяти объемом до 16 Мбайт; виртуальные адреса не эквивалентны реальным (физическим) адресам памяти; программы могут работать с разделами, которые в момент обращения к ним не находятся в физической оперативной памяти (для этого их необходимо перебросить в память); различные прикладные программы могут обращаться к различным виртуальным адресным пространствам; существует защита памяти между операционной системой и прикладными программами.
Сущность организации памяти в защищенном режиме состоит в том, что содержимое регистра сегментов не определяет базовое значение физического адреса сегмента памяти, как это было в реальном режиме работы микропроцессора 80286.
Значение регистра сегментов в защищенном режиме — является указателем селектора, для специальной таблицы. Эта таблица содержит полную информацию о распределении сегментов памяти в системе. Элемент таблицы, относящийся к одному сегменту, называется дескриптором сегмента.
На рис. изображена схема, интериратирующая значение селектора, которое содержится в регистре сегментов. Два младших битоселектора не играют роли при формировании физического адреса. Они используются только при реализации механизма защиты памяти (об этом будет сказано позже).
Регистр сегментов (селектор)
15 3 21 0
16-бит значение селектора
2 бита приоритета (уровень приоритета запроса-RPL)
Бит выбора таблицы глобальных дескрипторов (GDT)
Или таблицы локальных дескрипторов (LDT)
13-бит значение, которое служит для выбора одного из 8 К 8192)
различных дескрипторов сегментов в соответствующей таблице
дескрипторов (GDT или LDT)
Рисунок – Cтруктура селектора
В системе имеются две различные таблицы для дескрипторов сегментов. Этотаблица глобальных дескрипторов (GDT) и таблица
локальных дескрипторов (LDT). Второй бит селектора определяет ту таблицу, к которой система должна обращаться по значению дескриптора сегмента. Напомним, что дескриптор сегмента содержит всю необходимую информацию для указания раздела физической памяти, к которому система будет обращаться.
На рис. показано, как отыскивается дескриптор сегмента.
Индекс в таблице дескрипторов Второйбит значения селектора
Выбор соответствующей
Таблицы дескрипторов
32
32 }элемент таблицы дескрипторов сегментов
24 (длина каждого элемента – 8 байт) –
24 дескриптор сегмента
16
16
8
8
0 0
GDT LDT
Таблица глобальных Таблица локальных
Дескрипторов дескрипторов
Рисунок – Схема обращения к дескриптору сегмента.
После того как выбрана соответствующая таблица, по назначению 3 ÷ 15 бит селектора выбирается один из 8192 возможных дескрипторов сегментов. Длина дескриптора сегмента составляет 8 байт.
Таблица глобальных дескрипторов (GDT) обычно содержит
информацию о сегментах памяти, которые используются всей
системой вне зависимости от того, какая программа выполняется. Программные сегменты (сегменты, содержащие последовательность команд) операционной системы и сегменты данных операционной системы отыскиваются с помощью GDT. Дескрипторы тех программных сегментов, которые должны быть защищены друг от друга, обычно содержатся в различных таблицах локальных дескрипторов (LDT). Операционная система OS/2 обычно создает отдельные таблицы локальных дескрипторов для каждого набора программных сегментов, который необходимо изолировать от других наборов программных
сегментов. В операционной системе OS/2 для каждого процесса
создается своя таблица локальных дескрипторов (LDT).
В защищенном режиме формируется 24-бит физический базовый адрес. Это 24-бит значение указывает адрес начала сегмента в физической памяти (034 + жесткий диск) и содержит следующую информацию:
1. 24-битовое значение, определяющее базовый адрес физического сегмента и дающее возможность доступа к 16 Мбайт реальной физической памяти.
2. 16 бит значение, задающее смещение в сегменте (вплоть до 64 Кбайт).
3. Наличие или отсутствие в данный момент сегмента в физической памяти.
4. Было ли записано в регистр сегментов значение (селектора), соответствующее данному дескриптору. Если было записано, то к данному сегменту уже обращались.
5. виды сегмента – программный сегмент, сегмент данных или специальный сегмент.
6. Если это программный сегмент (содержащий выполняемые команды), то
- может ли процессор считывать содержимое этого сегмента;
- является ли этот программный сегмент подчиненным.
7. Если это сегмент данных, то
- может ли процессор записывать в него информацию;
- является ли его размер возрастающим или убывающим.
8. Информация о приоритете (DPL – уровень приоритета дескриптора).
Значение 1б-бит смещения, являющегося второй составляющей полного 24-бит физического адреса, формируемого из текущего 24-бнт значения дескрипторов, служит для определения окончательного реального (физического) адреса информации в памяти. Если считать, что размер сегмента увеличивается (в отличие от уменьшения размера сегмента, что характерно для стека), когда значение смещения превышает текущий размер сегмента, то процессор будет обращаться к области памяти, которая на самом деле не является частью данного сегмента. Так возникает особая ситуация, указывающая на то, что в программе возникла ошибка. В операционной системе есть возможность защиты от особой ситуации при обращении из программы к памяти.
Для этого в селекторе и дескрипторе сегмента содержится необходимая защитная информация. Для повышения эффективности работы системы необходимо сделать так, чтобы адресация выполнялась по упрощенной схеме. Для этого служат кэш-регистры (рис. Процессор запоминает в своей вспомогательной памяти значение дескриптора текущего сегмента, выбранное с помощью селектора из соответствующей таблицы дескрипторов (GDT или LDT)). При такой организации адресации к памяти процессору не надо каждый раз обращаться к таблицам дескрипторов до тех пор, пока не изменится значение регистра сегментов, т. е. не произойдет смена текущего сегмента памяти.
В вспомогательной памяти процессор хранит так же текущие адреса и размеры таблиц GDT и LDT.
Каждому процессу, работающему со своим виртуальным адресным пространством, операционная система OS/2 в защищенном режиме выделяет свою часть таблицы локальных дескрипторов (LDT). Адрес, по которому программа обращается к памяти через регистр сегментов, в данном случае не имеет абсолютно никакого соответствия с реальным адресом используемых данных.
Если необходимый сегмент отсутствует в памяти, то система может узнать об этом по содержимому дескриптора этого сегмента. В том случае, когда программа использует регистр сегментов, значение селектора которого указывает на отсутствующий а памяти сегмент, процессор обрабатывает это событие как особую ситуацию с помощью операционной системы. При этом система определяет, где на диске находится необходимый сегмент, переписывает его в реальную память и изменяет содержимое дескриптора данного сегмента, чтобы система знала, что теперь этот сегмент находится в реальной памяти. Если процессору требуется освободить место в памяти для размещения сегмента, то он может перебросить некоторые сегменты на диск. Выбор сегмента, подлежащего удалению из реальной памяти, осуществляется операционной системой, как правило, по алгоритму LRU (Least Recently Used). При поиске наиболее долго не используемого сегмента операционная система использует информацию, содержащуюся в таблице дескрипторов.
Другое отличие реального и защищенного режимов работы системы состоит в том, что в защищенном режиме сегменты могут быть различного размера. В реальном режиме размер всех сегментов составляет 64 Кбайт. В защищенном режиме программы могут определять такой размер каждого сегмента памяти, какой необходим для их работы. Это позволяет экономно использовать реальную память системы и виртуальную память на диске. Кроме того, если в программе возникает ошибка и она адресуется при этом к памяти вне адресного пространства текущего сегмента, то генерируется особая ситуация и операционная система сразу узнает, что в программе что-то не так.
Защита памяти и приоритеты программного обеспечения в защищенном режиме
Микропроцессор 80286 в защищенном режиме позволяет организовать защиту памяти и устанавливать приоритеты. В реальном режиме микропроцессора возможности защиты памяти полностью отсутствуют. Это значит, что любая программа может обратиться к любому разделу памяти (вплоть до 1 Мбайт) и выполнять любые команды, разрешенные в реальном режиме.
Формирование отдельное части таблицы локальных дескрипторов (LDT) для каждой программы позволяет операционной системе обеспечить полную защиту любой программы от остальных программ. Какое бы значение селектора ни сформировала программа, ей все равно не удастся обратиться к дескриптору сегмента, находящемуся в чужой таблице LDT.
Для формирования физического адреса используют, защитные механизмы, которые срабатывают при любом обращении к памяти. Если какое-либо из правил защиты памяти не будет выполнено, процессор генерирует особую ситуацию. Это заставляет процессор выполнить специальный набор команд, который называется обработчиком особых ситуаций.
Это аналогично процессу, обработки прерываний, только здесь особая ситуация является следствием определенных действий процессора, а причиной генерации прерывания служит сигнал от внешнего устройства.
Генерирует и обрабатывает особые ситуации операционная
система. После устранения условий, приведших к появлению особой ситуации, процессор может попытаться вновь выполнить команду, которая послужила причиной появления особой ситуации.
Приведем примеры действий, вызывающих особые ситуации: селектор указывает на дескриптор, расположенный за границами текущей таблицы дескрипторов; смещение оказывается больше размера текущего сегмента памяти; нарушены правила приоритета; содержимое регистра программных сегментов CS соответствует сегменту данных; попытка записать информацию в сегмент памяти, предназначенный только для чтения; попытка считать информацию из программного сегмента, который предназначен только для выполнения; процессор пытается записать в регистр сегментов полученное с помощью селектора значение дескриптора сегмента, соответствующее отсутствующему в реальной
памяти сегменту. В этом случае операционная система отыскивает сегмент на диске, перекачивает его в память, изменяет соответствующий ему дескриптор так, чтобы он содержал информацию об уже имеющемся в памяти сегменте, и завершает обслуживание особой ситуации, что позволяет продолжить выполнение программы.
Для реализации данной схемы защиты используется также механизм приоритетов. Например, программа знает, что второй бит селектора служит для выбора нужной части таблицы глобальных дескрипторов (GDI).
Поскольку GDI содержит информацию о многих сегментах операционной системы, программа может попытаться обратиться с помощью селектора к такому сегменту, который ей не нужен.
Для этой цели в микропроцессоре, i 80286 существует четыре уровня приоритета, устанавливаемые ОС или программистом. Высший приоритет имеет значение 0, низший – 3.
В операционной системе OS/2 большинство прикладных программ имеет приоритет 3, а ядру операционной системы установлен нулевой приоритет. Некоторые программы могут обладать приоритетом ввода/вывода (IOPL). В ином случае в ОС они выполняются с приоритетом 2, но не могут располагать всеми средствами OS/2, которыми бы эта программа могла пользоваться при уровне приоритета, равном 3.
В соответствии с установленными приоритетами программы могут обращаться только к тем данным, которые соответствуют их уровню приоритета или имеют более низкий приоритет. Это с одной стороны, предохраняет операционную систему от работающих программ, а с другой стороны, позволяет операционной системе обратиться к любой информации более низкого приоритетного уровня. Уровень приоритета выполняемого в данный момент процесса, который определяется значением двух младших битов регистра сегментов GS, называется текущим уровнем приоритета (CPL). Уровень приоритета для данных, к которым выполняется обращение, задается двумя битами дескриптора соответствующего сегмента и называется уровнем приоритета дескриптора (DPL).
Можно так сгенерировать операционную систему, что программы сами не смогут изменить уровень своего приоритета. Задавая прикладной программе CPL, равный 3, операционная система может предохранить себя от вмешательства со стороны программ, присвоив своим сегментам данных значение CPL, равное нулю. (То же справедливо и для программ, имеющих CPL = 1 или 2.)
Передача управления внешним подпрограммам и вызовы
процедур могут выполняться только тогда, когда соответствующие сегменты имеют одинаковый уровень приоритета. Это не
позволяет программам самостоятельно обращаться к программным сегментам операционной системы.
Для организации взаимодействие между программами различных уровней приоритета используются особые дескрипторы сегментов – шлюзы. Они позволяют передать управление другому приоритетному уровню и изменить текущий уровень приоритета программы.
Операционная система может определить те уровни приоритета, из которых можно обращаться к специализированным наборам команд, предназначенных для выполнения операций ввода/вывода. К таким командам относятся следующие: команды, которые позволяют процессору считывать или записывать данные в адресное пространство ввода/вывода; команды, разрешающие или запрещающие обслуживать прерывания внешних устройств; команда LOCK—блокировка системной шины (не рассматривается).
Выполнение этих команд сопровождается проверкой уровня приоритета, так как они могут навредить системе, если будут выполняться в непривилегированной программе. Требуя явного запроса для получения IOPL, операционная система может ограничить число прикладных программ, которым разрешено обращаться к командам ввода/вывода. Для этого ей достаточно определить тот минимальный уровень приоритета (т. е. тот уровень, начиная с которого программа считается привилегированной), который позволяет получить IOPL. В операционной системе OS/2 уровень привилегированности равен 2. В API существует специальный интерфейс, через который программы могут запрашивать IOPL. Поскольку большинство программ имеет приоритетный уровень CPL=3, они не могут получить IOPL. В среде операционной системы OS/2 есть ряд ограничений на использование IOPL программами. Такие программы могут получить IOPL, если пользователь при генерации системы определенным образом сформирует файл CONFIG.SYS. Однако существуют ограничения и для программ с IOPL, работающих в среде OS/2. Например, программы не могут самостоятельно обслуживать прерывания внешних устройств из своих программных сегментов, имеющих IOPL. Для работы с внешними устройствами, управляемыми по прерываниям, предпочтительнее использовать соответствующие драйверы этих устройств.
Команды предназначенные для формирования и размещения в памяти таблиц дескрипторов GDT и LDT, разрешается выполнять только из приоритетного уровня CPL=0 - высшего уровня приоритета.
Обработка прерываний
Немаскируемое прерывание (NMI), используемое в OS/2, никогда не блокируется процессором.
В IBM PC/AT и OS/2 есть 15 отдельных каналов прерываний (INT) внешних устройств. Они обрабатываются двумя контроллерами прерываний, сведенными между собой. Когда операционная система OS/2 инициализирует контролеры прерываний, она указывает, какие номера прерываний присвоить пятнадцати, имеющимся в системе каналам прерываний. Но номеру определяется та подпрограмма, которой необходимо передать управление для обработки данного прерывания, после того, как процессор прерывание принял.
Контроллер прерываний генерирует свой номер прерывания в соответствии с заложенными в него правилами учета приоритета прерываний. (Можно заблокировать процессор от приема такого рода прерываний (прерываний от контроллера) в любой момент времени, выполнив команду блокирования прерываний. Команды разрешения и блокировки приема прерываний процессором используют IOPL).
Чтобы по номеру прерывания определять, какой подпрограмме нужно передат ь управление после того, как процессор примет прерывание, используется таблица дескрипторов прерываний (IDT) – шлюзов. IDT содержит до 256 шлюзов.
В реальном режиме процесс выбора обработчика прерывания выполняется аналогично, - здесь используется другая таблица дескрипторов прерываний. В реальном режиме элементы таблицы IDT имеют другую длину. Кроме того, дескрипторы IDT в реальном режиме не являются шлюзами. Они представляют собой адреса, состоящие из 16-бит номера сегмента и 16-бит смещения в этом сегменте. Их значение в реальном режиме соответствует физическому адресу, по которому следует
передавать управление при возникновении прерывания с соответствующим номером. Каждому номеру прерывания в реальном режиме работы микропроцессора 80286 соответствует определенный элемент IDT.
Программы OS/2 выполняемые в среде DOS могут использовать средства DOS для модификации обработчиков прерываний. Однако они не могут непосредственно изменять таблицу IDT реального режима. Процесс по принятому номеру прерывания передает управление подпрограмме, ссылка на которую содержится в дескрипторе IDT, соответствующем данному номеру прерывания. Для того чтобы обработчик прерываний мог продолжить свою работу после блокировки, применяются стеки. Немаскированным прерываниям присваивается номер 2.
Прерывания могут быть также явно инициированы операционной системой путем выполнения команды INT процессора. В защищенном режиме OS/2 не поддерживает использование команды INT программами.
Структура ПК системы.
|
|
.,.
|
|
|
Немаскированные
прерывания
адреса памяти
Адреса
Память
|
Данные
Из памяти Управление
Данные
Ввода/вывода вводом/выводом
Команды из памяти
Устройства ввода/вывода:
- жесткий диск
- дискета
- принтер
- клавиатура
- мышь
Рисунок – структура персональной компьютерной системы.
В состав базовой конфигурации входят:
- системный блок;
- монитор для вывода информации на экран в виде графики или текста;
- клавиатура для ввода информации в компьютер;
- манипулятор «мышь» или другой аналогичный для управления работой компьютерных программ.
Устройства компьютерной системы делят на внешние и внутренние. Внешние устройства, также называемые периферийными, подключают к системному блоку с помощью кабелей и разъемов, они выполняют функции ввода и вывода информации. Внутренние устройства выполняют функции хранения и отработки информации (это деление достаточно условное).
В состав системного блока входят:
процессор – микросхема, непосредственно выполняющая вычисление над числами, представленными в двоичной форме (ее еще называют микропроцессор или центральный процессор);
оперативная память – блоки микросхем, предназначенных для временного хранения данных и программ (только компьютер включен);
жесткий диск – устройство для длительного хранения данных и программ (когда компьютер выключен);
дисковод гибких дисков – устройство чтения данных с гибких магнитных дисков (дискет);
дисковод
CD
-
ROM – устройство для чтения программ и данных, поставляемых на лазерных носителях (компакт-дисках).
Теперь есть и пишущие CD-ROMы;
видеокарта – дополнительная сменная плата, обеспечивающая физическую связь между процессором и монитором и т.д.;
звуковая карта – дополнительная сменная плата, предназначенная для обработки звуковой информации и сопряженные с внешними устройствами ввода / вывода звука (микрофоны, колонки, усилителями и т.д.).
Большинство этих устройств устанавливают на материнской плате, либо подк лючают к ней с помощью идолевых разъемов – слотов.
В качестве отдельного устройства рассматривают несколько систем проводников и логических элементов, связывающих основные компоненты компьютера и управляющая синхронизацией их работы – это шины. Они располагаются на материнской плате. К материнской плате ПК также относятся стандартные порты (логические устройства, предназначенные для сопряжения с оборудованием, подключаемым снаружи системного блока) и дисковые контроллеры, управляющие работой жестких дисков, дисководов гибких дисков и дисководов CD-ROM. (В состав системного блока входят блок питания и главный вентилятор).
Системная шина ПК.
Системная шина служит главным средством передачи информации между различными компонентами системы. Работа с системной шиной регламентируется рядом правил, которых должны придерживаться различные устройства системы с целью организации совместной работы. По функциям различают три шины: шину команд, шины данных и адресную шину. Шина команд в процессоре Pentium и более поздним – 64-разрядная и представлена 64-проводниками, по ним в процессор из оперативной памяти поступают команды из программ. Адресная шина служит для выбора команд и данных из оперативной памяти. Она является управляющей для шин данных и команд.
Главная шина
FSB
Все шины, связывающие процессор с оперативной памятью рассматривают как одну главную шину – FSB (Frout Side Bus). Рабочая частота материнской шины (66, 100, 133 МГц). Это частота главной шины, на которую опирается процессор. Он получает эту частоту и умножает ее на свой коэффицие1nнт внутреннего умножения.
Шина
ISA
Стандарт ISA (Industry Standart Architecture) позволил врезать в главную шину разъемы для подключения дополнительных устройств и работать с ними, как с внутренними, т.е. как с оперативной памятью. Это технология AT (Advanced Technology). Она была реализована на компьютерах второго поколения IBM PCAT 286. После внедрения ISA появилась возможность устанавливать на материнской плате дополнительные платы для подключения любых электротехнических средств. Дополнительные платы – это дочерние платы, карты расширение или просто карты.
Такая архитектура компьютера называется открытой и позволяет наращивать его при знании электрических и механических параметров шины ISA.
Шина ISA использовалась на компьютерах второго и третьего поколения. На компьютерах четвертого поколения стала сдерживающим фактором. Процессору требовались всякие частоты обучения с памятью и их соединили специальной шиной – локальной. Шину ISA соединили с локальной шиной через мост. Сейчас функции моста ISA выполняет микросхема «южного моста» чипсета.
Шина
VLB
К концу 80-х выросли требования к компьютерной графике и шина ISA не справлялась с потоком данных. В локальную шину врезали разъем для видеокарты. Эта шина для компьютеров четвертого поколения – (VLB).
Шины
PCI
PCI – Peripheral Component Interconnect, локальная шина для компьютеров 5-го поколения, собранным на процессоре Pentium PCI заменила различные модификации ISA. Она имеет более высокую пропускную способность и возможность создания самоустанавливающихся устройств plug-and-play. Plug-and-play предполагает что после физического подключения дочерней платы к материнской плате происходит автоматическое определение подключенного устройства и выделение ему таких ресурсов, чтобы оно не конфликтовало с другими устройствами (при наличии соответствующих драйверов).
Интерфейс
AGP
Развитие компьютерной графики привело к замене PCI интерфейсом AGP (Accelerated Graphics Port). Сейчас практически все видеокарты выпускаются для этого стандарта. Они работают с частотой 66/100/130 МГц. Стандарт AGP предусматривает несколько режимов производительности: AGP, AGP x 2 и AGP х 4. Выбор режима зависит от чипсета материнской платы. Связь между шиной AGP и основной шиной материнской платы обеспечивает «северный» мост чипсета.
Интерфейс USB
USB – Universal Serial Bus, позволяет не выключая ПК ставить разъем устройства в гнездо на задней стенке системного блока и сразу работать. На стенке ПК обычно два разъема, но подключать к этой шине через концентратор (разветвитель) можно до 127 устройств. работа с устройствами USB – это одна из функций чипсета материнской платы. Ее выполняет «южный» мост.
Мультиядерная технология AMD
Корпорация AMD разрабатывала свои многоядерные процессоры в течение нескольких лет. С момента первого публичного обсуждения платформы AMD64 в 1999 году, мы указывали, что технология AMD64 будет поддерживать многоядерные процессоры. Корпорация AMD первой представила стратегию двухядерных процессоров архитектуры x86 и первой объявила о завершении разработки двухядерного процессора архитектуры x86 для 64-разрядных вычислений. В настоящее время на рынок поставляются двухядерные процессоры AMD Opteron и AMD Athlon64 X2. Двухядерный чип – это фактически два процессора в одном чипе. Преимущество такого процессора над одноядерным проявляется, прежде всего, при работе с многопоточными приложениями. Многопоточные задачи работают быстрее на двухядерных процессорах, потому что операционная система может распределять программные потоки отдельно по каждому ядру, в то время как на одноядерных процессорах задачи меняются по мере выполнения, то есть по очереди. Применение этой технологии позволит увеличить производительность процессоров нового поколения и одновременно избежать роста потребления энергии, которое накладывает ограничения на развитие одноядерных процессоров. Кроме того, чем выше частота процессора, тем больше он теряет производительность при обращении к памяти. Два ядра получаются предпочтительней, чем одно, так как в этом случае легче обеспечить процессор данными для обработки. Поскольку производительность памяти увеличивается медленнее, чем скорость процессоров, увеличение производительности путем использования нескольких ядер выглядит более предпочтительным, чем наращивание частоты.
Имеющееся процессорная архитектура AMD позволила интегрировать на тот же кристалл второе ядро при переходе на технологический процесс 90 нм. В процессорах архитектуры AMD64 с двумя ядрами дублированию подвергнуто само вычислительное ядро и кэш-память, в то время как контроллер памяти и контроллер HyperTransport остаются в двухядерных процессорах в неизменном виде. В этой связи ключевое значение начинает играть блок System Request Interface (SRI), на который возлагается обязанность арбитража потоков команд и данных между двумя ядрами.
Широкое распространение мультиядерных технологий - это следующий этап развития компьютерных технологий, который преобразит существующую вычислительную среду.
Основные выгоды, получаемые от внедрения мультиядерных технологий:
Для коммерческого рынка - Корпоративные IT-системы получат значительное увеличение производительности, используя оптимизированные мультипоточные приложения. Внедрение новых процессоров позволит создавать более сложные системы, с минимальными вложениями, опираясь на существующую инфраструктуру. Кроме того, такие системы отличаются простым управлением, упрощенным менеджментом, низкой совокупной стоимостью владения, высокой эффективностью и производительностью.
Для бизнеса и конечных пользователей - Мультиядерная технология AMD способна существенно увеличить количество выполняемой работы в задачах требующих интенсивных вычислений, например таких, как мультимедиа, создание цифрового контента, обеспечения безопасности и других. Используя двухядерные процессоры AMD вы ощутите преимущества истинной многозадачности, обрабатывая большие объемы данных и прозводя сложные расчеты параллельно.
Для разработчиков - Разработчики программного обеспечения теперь не ограничены возможностями одного процессора. Новые процессоры AMD предоставляют максимум производительности и позволяют использовать новые алгоритмы, обрабатывающие данные одновременно. Новые средства разработки ускорят процесс компиляции и позволят создавать более сложные проекты, в которых нуждается заказчик.
Корпорация AMD впервые продемонстрировала свои двухядерные микропроцессоры 31 августа 2004 г. на презентации, проведенной в штаб-квартире, расположенной в Остине, штат Техас, США. Широкой общественности был представлен сервер Hewlett-Packard Proliant DL585, работающий на основе четырех двухядерных процессоров Opteron. Единственным усовершенствованием серийной модели сервера, позволившим ему работать с чипами нового поколения стало обновление BIOS. Совместимость процессоров двух различных поколений, позволяет производителям серверов без лишних сложностей увеличить вдвое количество процессоров, выпуская на рынок новые, более производительные модели серверов.
Таким образом, при условии поддержки со стороны BIOS, двухядерные решения могут использоваться в существующих системных платах и, тем самым, защитить инвестиции заказчика.
Выпускаемые двухядерные процессоры AMD Opteron, имеют два раздельных кэша второго уровня объемом по 1 Мбайту, интегрированный контроллер памяти DDR SDRAM и три шины HyperTransport. Новые процессоры с парой ядер выпускаются в Socket 940 исполнении (или в исполнении Socket 939 для одноядерных систем), совместимы с имеющимися системными платами, блоками питания и совпадают по тепловому конверту с однопроцессорными решениями (95 Вт), обеспечивая непревзойденную производительность на ватт потребляемой мощности. Архитектура Direct Connect устраняет задержки и узкие места при передаче данных, используя прямое соединение процессоров и процессорных ядер между собой. Кроме того, двухядерные процессоры полностью совместимы со всеми приложениями архитектуры x86 и AMD64, демонструя высочайшую при работе в многозадачном и многопоточном режиме.
Двухядерные процессоры выпускаются нескольких версиях, в том числе с низким энергопотреблением - Highly Efficient и Energy Efficient.
Ведущие производители, такие как Cray, Egenera, HP, IBM, Sun, Supermicro и другие, поддерживают в своих решениях двухядерные процессоры AMD Opteron, обеспечивая заказчикам гибкость решений для задач любого уровня.
AMD рекомендует разработчикам программного обеспечения придерживаться схем лицензирования приложений и операционных систем по количеству процессоров, а не по количеству ядер. Этот подход ускорит широкое распространение многоядерных технологий и позволит максимальному количеству пользователей перейти на многоядерные процессоры с минимальными затратами уже в ближайшем будущем.
Память системы
В памяти хранятся команды и данные. Обращения к разделам памяти выполняется в соответствии с их физическими адресами, предаваемыми системной шине. Максимальное значение физического адреса, к которым можно обратиться к памяти через системную шину, определяет допустимый объем реальной памяти в компьютерной системе.
В персональной компьютерной системе существуют три различных типа памяти: 1) память с произвольным доступом — ОЗУ (оперативное запоминающее устройство); 2) постоянная память, используемая только длясчитывания информации — ПЗУ(постоянное запоминающееустройство); 3) ОЗУ ввода/вывода.
ОЗУ системы
Операционная система считывает с одного из внешних устройств ввода/вывода содержимое прикладной программы, выбранной пользователем для запуска на счет, и записывает ее в оперативное запоминающее устройство. После этого микропроцессор выполняет команды этой программы, считывая их из ОЗУ.Обычно программы пользователя хранятся на внешних устройствах типа жестких или гибких дисков (дискетах). ОЗУ занимает большую часть системной памяти.
Существуют устройства ввода/вывода, частью которых является ОЗУ. Изображение на экране дисплея – это прямое отображение части ОЗУ, которая относится к дисплею. Когда программа изменяет содержимое памяти дисплея, меняется и изображение на его экране. Для ОЗУ дисплея в компьютерной системе на базе МП 80286 выделяется раздел памяти между 640 Кбайт и 1 Мбайт физического адресного пространства.
Оперативные запоминающие устройства (ОЗУ)служат для приема, хранения и выдачи информации, представленной в виде двоичных кодов, только при включенном питании.
В ОЗУ используются две основные схемы хранения информации на триггере и на конденсаторе. ОЗУ, использующие триггер как элемент памяти, называются статическими, использующие конденсатор – динамическими.
Рисунок – Структура микросхемы статического ОЗУ
Структура микросхемы статического ОЗУ показана на рис. Все запоминающие элементы (ЗЭ) сосредоточены в матрице.
Число ЗЭ равно двум в целой. Каждый конкретный ЗЭ имеет свой адрес задаваемый n – разрядным двоичным числом. Для удобства адрес разбивают на две части (чаще всего одинаковые): одну часть называют адрес строки, а другую – адрес столбца. При этом матрица ЗЭ оказывается прямоугольной: 2 строк, 2 столбцов. Всего ЗЭ будет 2. Число строк и число столбцов) больше, чем разрядов двоичного адреса (2 = 32 – это значит, что адрес 5 – разрядный, а строк нужно 32). Поэтому между адресными входами ОЗУ и матрицей ЗЭ необходимо установить дешифраторы (на рис. – дешифратор строк и дешифратор столбцов).
Один из вариантов построения ЗЭ статического ОЗУ показан на рис.
Рисунок - Запоминающий элемент статического ОЗУ
ЗЭ является D-триггер. Данный триггер находится на пересечении i-й строки и j-го столбца. Если на данных линиях находятся потенциалы логической «1» и имеется сигнал разрешения записи WR = 1, то в триггер записывается информация поступающая на вход D. Если в ОЗУ входы выходы совмещены это делают, чтобы уменьшить количество выводов микросхемы, то необходим еще один элемент ЗЭ - ключ SW, управляемый сигналом WR. Очевидно, что в данной схеме при WR = 1 шина вход/выход соединяется с входом D-триггера, при WR = 0 к шине вход/выход подключается выход триггера.
Если ЗЭ одноразрядная, то шина вход/выход – для всех ЗЭ. Если ЗЭ 4-х, 8-ми, 16-разрядные, то в этом случае на каждой паре линий строка-столбец располагается S (по количеству разрядов) триггеров и S ключей (элемент остаётся один). В этом случае каждый из ключей подключается к своей шине вход/выход.
Кроме режимов записи и считывания (переключаемых сигналом WR) имеется режим хранения данных. В этом режиме и запись, и считывание запрещены. Смысл этого режима двойной: во-первых, если в устройстве несколько микросхем ОЗУ. то запись или считывание обычно производится в одну из них. (остальные должны быть отключены), во-вторых, в режиме хранения энергопотребление гораздо меньше, чем в рабочем режиме. Для перевода микросхемы ОЗУ в режим хранения используется сигнал CS (от английского crystal selection, т.е. выбор кристалла). Обычно режим хранения имеет место при CS = 1, а рабочий режим (запись или считывание) при CS = 0 (на входе в УВВ сигнал CS инвертируется).
В ОЗУ динамического типа функции ЗЭ выполняет электрический конденсатор. Информация представляется в виде заряда: например, наличие заряда на конденсаторе соответствует логической «1», отсутствие — логическому «О». Поскольку время сохранения конденсатором заряда ограничено, необходимо периодическое восстановление (регенерация) записанной информации. Кроме того, для динамического ОЗУ требуется синхронизация, обеспечивающая последовательность включений и выключений функционатьных узлов.
Наиболее широко применяется вариант реализации ЗЭ (рис. ) на конденсаторе С1 и ключевом транзисторе VT1.
Рисунок - Запоминающий элемент на конденсаторах
Выборка ЗЭ производится сигналом логической «1» на шине строки, который открывает транзистор VT1 и соединяет конденсатор С1 с шиной столбца (РШ — разрядная шина). Предварительно через транзистор VT2, открываемый тактовым сигналом ТС =1 емкость Сш заряжается до напряжения Uo.
Поскольку ЗЭ динамического ОЗУ проще, чем статического, то объём памяти в динамических ОЗУ выше, чем в статических. Поэтому, при большой разрядности адреса его делят на две части: первую часть вводят сигналом RAS (от английского row access sygnal — сигнал выборки строки), вторую —сигналом CAS (от английского column access sygnal — сигнал выборки столбца).
На рис. - показана диаграмма напряжении на управляющих входах динамического ОЗУ в режиме записи
Рисунок - Диаграммы напряжений на управляющих входах динамического ОЗУ
Сигналы RAS и CAS сдвинуты друг относительно друга, сигнал разрешения записи (WR = 0) должен появиться при введении обеих частей адреса. Одновременно с WR необходимо ввести информационный сигнал (при WR = 0 информационный сигнал не должен изменяться).
В режиме считывания информационный сигнал появляется на выходе с некоторой задержкой относительно сигнала CAS.
Запоминающие устройства состоят из набора микросхем ОЗУ. В таком наборе в любой момент времени работает только одна из микросхем ОЗУ. Если разрядность микросхемы равна n, а разрядность всего запоминающего устройства n + к, то дополнительные к разрядов адреса должны поступать на дешифратор, выходы которого соединяются со входами выбора микросхемы CS. Основные n разрядов подключаются параллельно к адресным входам микросхем. Способ объединения микросхем памяти по выходам зависит от устройства их выхода. Наиболее распространен вариант выхода с тремя состояниями. В этом случае применяют схему "монтажное ИЛИ", когда выходы микросхем объединяются путем непосредственного соединения.
ПЗУ системы
ПЗУ постоянно хранит записанную в него информацию даже при выключенном питании. В отличие от работы с ОЗУ процессор не изменяет содержимого ПЗУ, а только считывает из него информацию.
В ПЗУ компьютера записана программа BIOS и необходимые системные данные. BASIC Input-Output System – это не средства ввода-вывода, а комплекс первичных программ, с которых компьютер начинает работу, и данных необходимых для работы процессора с устройствами ввода-вывода без организации прямого доступа процессора и этим аппаратным средством. Такой подход к управлению работой внешних устройств позволяет предохранить ОС от изменений при изменений конфигурации внешних устройств.
В компьютерных системах, начиная с МП i80286, BIOS предназначена многозадачного запущенного режима работы.
В компьютерной системе на базе МП 80286, системные команды BIOS занимают часть физического адресного пространства памяти между 640 Кбайт и 1 Мбайт.
Рассмотрим работу компьютера, с момента включения до полной загрузки ОС в соответствии со схемой на рис.
Рисунок - Схема запуска компьютера
При поступлении питания на процессор, он обращается к памяти по установленному адресу в поисках инструкции для выполнения. Стартовый адрес находится в ПЗУ, выполненном в виде отдельной микросхемы.
Работа программ, входящих в состав BIOS, начинается с процедуры POS T (Power-On Self Test – самотестирование при включении ОЗУ, клавиатуры и т.д.). Далее, программы BIOS проверяют работоспособность базового оборудования (клавиатуры, видеосистемы и жёсткого диска) и подготавливают условия для работы ПК с внешними устройствами посредством ввода-вывода информации под управлением оператора или автоматически. Главная задача BIOS – провести компьютер до загрузки и запуска операционной системы (ОС). С этого момента ОС управляет компьютером и обеспечивает связь с периферийными устройствами и с оператором. ОС в большинстве случаев находится на жёстком диске –С: . Но для нахождения ОС BIOS перебирает все диски подряд. Порядок перебора (или последовательность запуска) записан в CMOS-памяти (КМОП - память). КМДП - комплементарный транзистор структуры металл-диэлектрик-проводник. (А так как диэлектриком был чаще всего окисел кремния, название структуры получилось как КМОП). В CMOS-памяти хранится информация о свойствах дисковых накопителей, она отличается от ПЗУ – в неё можно записывать информацию. Она отличается от ОЗУ, так как имеет автономный источник питания (литиевая батарейка). При установке на ПК жёсткого диска в CMOS-память записываются данные необходимые для работы с ним: число цилиндров, число секторов, показания системных часов, коэффициент внутреннего умножения частоты процессора, метод работы с КЭШ-памятью и др. Содержимое CMOS-памяти меняется с помощью программы настройки SETUP.
Прямой доступ к памяти
Некоторые устройства имеют средства для работы с системным контроллером ПДП (КПДП) при записи или считывании информации из памяти системы. Использованные контроллера при перемещении данных из памяти или в память освобождает процессор от необходимости управлять процессом побайтной или блочной передачи данных. В этом случае процессор сначала выдаёт контроллеру ПДП команду подготовки к перемещению данных из памяти или в память по конкретному физическому адресу, а затем инициирует начало работы ввода-вывода по передаче или приёму данных. После инициирования режима ПДП, шиной управляет КПДП, организуя передачу данных непосредственно между основной и внешней памятью (рис. ).
Рисунок - Режим прямого доступа к памяти
После этого процессор может дожидаться завершения операции или совсем отключиться от этой операции, если устройство запрограммированно на генерацию сигнала прерывания по окончании выполнения передачи данных.
Электрическое отключение достигается переводом тристабильных буферов на шине адреса, шине данных и некоторых линиях управления памятью и вводом-выводом в состояние высокого выходного сопротивления.
Главные функции КПДП заключаются в выдаче адресов основной памяти и необходимых управляющих сигналов, обеспечивающих непосредственную передачу данных между основной памятью и устройствами внешней памяти. С этой целью используется временное разделение (мультиплексирование) общей системной шины между процессором и КПДП. кроме того, в большинстве вычислительных систем имеется несколько каналов ПДП, с которыми могут работать как блочные устройства ввода/вывода, так и символьные устройства с побайтовым циклом работы. Например, прямой доступ к памяти системы используется в символьных устройствах ввода/вывода, работающих по протоколу SDLC IBM. В этих устройствах данные передаются по одному символу, причем процессор может не участвовать в передаче каждого символа (байта) данных. Блочными устройствами ввода/вывода, которые могут работать с каналом ПДП, являются жесткий диск и дискеты, использующие отдельные каналы прямого доступа к памяти системы.
Если одновременно выполняется несколько операций перемещения данных или же длительное время происходит интенсивная перекачка одного очень большого объема данных, то операции ПДП могут мешать друг другу и работе процессора. Процессор должен иметь доступ к системной памяти для извлечения команд, которые ему необходимо выполнять. Если у процессора нет такой возможности, он будет простаивать в ожидании освобождения системной шины. Основная характеристика системной шины - ее пропускная способность - определяет, какое количество данных может передать системная шина в единицу времени. Чем больше пропускная способность системной шины, тем больший объем данных она может пропустить в единицу времени к тем большее число операций ПДП и процессора может выполняться согласованно. Это следует учитывать при разработке системных адаптеров аппаратного обеспечения, которые используют каналы прямого доступа к памяти и предназначены для работы в среде, реализующей многозадачный режим.
Однокристальный КПДП КР580ВТ57. Режим работы
Разработано две разновидности ПДП. В режиме идентификации состояния памяти передачи ПДП выполняются без информирования процессора, для чего используются те интервалы машинных циклов, когда процессор не обращается к памяти, а выполняет внутренние преобразования данных. Такими интервалами в микропроцессоре КР580 являются такты Т4 и T5- Процессор (или дополнительная схема) идентифицирует эти интервалы для КПДП специальным сигналом, означающим доступность системной шины. Производительность процессора в таком режиме не уменьшается, но Для каждого процессора необходим КПДП, а сами передачи носят нерегулярный характер, что ведет к уменьшению скорости передачи данных.
В режиме с пропуском тактов (точнее, с “займом” тактов) КПДП при необходимости передачи данных сигналом запроса ПДП DMA REQ или HOLD заставляет процессор отключаться от системной шины на несколько тактов.
После восприятия запроса ПДП процессор завершает текущую команду, а иногда фазу выборки текущего машинного цикла и приостанавливает свои действия. МП КР580 освобождает системную шину после такта Т3 текущего машинного цикла. В следующем такте или тактов системной шиной управляет КПДП и между основной и внешней памятью передаётся один элемент данных - байт или слово внутренние операции процессора обычно совмещаются во времени передачами ПДП. За одно инициирование ПДП передаётся целый блок данных, например, сектор гибкого диска. Т.о., передачи ПДП осуществляются путём пропуска тактов памяти в выполняемой программе (рис. ).
Рисунок - Прямой доступ к памяти с пропуском тактов
При выполнении передач ПДП содержимое внутренних регистров процессора не модифицируется, поэтому его не нужно запоминать в памяти, а затем восстанавливать как при обработке прерываний. Выполнение программы возобновляется сразу после снятия сигнала запроса ПДП Тем не менее в условиях интенсивных передач ПДП эффективная производительность процессора уменьшается.
Аппаратная реализация каналов ПДП определяется особенностями ЭВМ и устройств внешней памяти, но можно сформулировать общие принципы работы большинства каналов ПДП. На рис. показаны основные этапы передачи одного элемента данных в режиме ПДП, называемой также циклом ПДП.
Рисунок - Последовательность передачи одного элемента данных
Последовательность передачи инициируется сигналом запроса от устройства внешней памяти, например накопителя на гибком диске; этот сигнал контроллер ПДП транслирует в запрос для процессора. Процессор реагирует сигналом подтверждения (разрешения) DMA ACK или HLDA, приостанавливает программу (но может продолжать внутренние операции) и отключается от системной шины. Для осуществления передачи КПДП выдает на шину адреса адрес ячейки памяти, к которой будет обращение для записи или считывания. После этого по шине данных выполняется собственно передача данных, для чего КПДП генерирует необходимые управляющие сигналы основной и внешней памяти. Затем устройство внешней памяти снимает запрос ПДП, что приводит к снятию соответствующего запроса в процессор, и он возобновляет приостановленную программу. Если в ЭВМ имеется несколько устройств внешней памяти, описанная последовательность должна в себя включать этап выборки устройства, инициировавшего запрос ПДП, и блокирования остальных устройств.
При передаче блока данных последовательность на рис. необходимо дополнить действиями модификации адреса основной памяти и проверки окончания передачи блока. Для этого в КПДП загружаются начальный адрес области основной памяти и число передаваемых байт или слов. После каждой передачи в КПДП производится инкремент адреса, выдаваемого на шину адреса, и Декремент счетчика байт или слов. Передача блока завершается, когда счетчик достигает нуля. Иногда вместо числа байт или слов загружается конечный адрес области основной памяти, и передача завершается, когда текущий адрес достигает конечного.
Структурная схема и программная модель КПДП КР580 ВТ57
КР580 ВТ57 может управлять работой четырех независимых каналов ПДП с учетом приоритетов периферийных устройств. Запрос системной шины осуществляется через вход HOLD микропроцессора, и предусмотрены сигналы, обеспечивающие регулярное завершение передач ПДП. Для микропроцессора КПДП представляет несколько параллельных 8-битных портов ввода и вывода. После программной инициализации контроллер управляет передачей блока данных до 16К байт без вмешательства процессора. Допускается программирование любого из трех режимов работы: считывания (передача из основной памяти во внешнюю), записи (передача из внешней памяти в основную) и проверки канала ПДП. В последнем режиме физической передачи данных между основной и внешней памятью не производится.
На рис. показана блок-схема контроллера его программная модель.
Рисунок - Структурная схема микросхемы КР580 ВТ57
Каждый из четырех каналов ПДПКз-о имеет три регистра: 16-битный регистр адреса, 14-битный счетчик и 2-битный регистр режима канала. Последние два регистра объединяются в один 16-битный регистр, который далее ради простоты называется счетчиком. До выполнения любых операций каким-либо каналом ПДП необходимо инициализировать относящиеся к нему регистры: в регистр адреса загружается начальный адрес области основной памяти, в счетчик загружается число передаваемых байт1,
1 При необходимости передачи N байт в счетчик загружается двоичный код числа N—1
В регистр режима канала загружается требуемый режим его работы (00 - проверка, 01- запись, 10 - считывание, 11- запрещенная комбинация).
Программная модель контроллера содержит 18 8-битных регистров, причем в регистр режима контроллера можно только записывать, а из регистра состояния - только считывать. Остальные регистры допускают и запись, и считывание.
Рисунок - программная модель микросхемы КР580 ВТ57
К рассматриваемой схеме относятся следующие сигналы и соответствующие им линии:
I/OR (считывание ввода-вывода) - L-активный сигнал, который в зависимости от состояния контроллера (ведомый - ведущий) может быть входным или выходным. Отрицательный импульс на входной линии I/OR ведомого контроллера считывает на шину данных содержимое внутреннего регистра, а выходной отрицательный импульс ведущего контроллера используется для передачи байта из периферийного устройства на шину данных. Линия I/OR имеет внутренний тристабильный буфер.
I/OW (запись ввода-вывода) - L-активный сигнал, который также может быть входным или выходным. Отрицательным импульсом на входе I/OW ведомого контроллера байт с шины данных загружается в адресуемый внутренний регистр, а выходной сигнал I/OW ведущего контроллера записывает байт с шины данных в выбранное периферийное устройство. Эта линия также имеет внутренний тристабильный буфер.
Аз-о - четыре двунаправленные младшие линии адреса. Для ведомого контроллера они являются входными и адресуют один из внутренних регистров, участвующий в операциях записи (программирования) или считывания. Ведущий контроллер выдает на них младшие биты адреса памяти и регистра адреса работающего канала ПДП.
CS (выбор кристалла) - входной L-активный сигнал, определяющий режим ведомого контроллера, когда он воспринимает входные сигналы I/OW и I/OR. Вход CS ведущего контроллера автоматически запрещается, чтобы при адресации основной памяти контроллер не мог выбрать сам себя. Этот вход подключается к схеме дешифрации адреса.
RESET (сброс) — входной Н - активный сигнал сброса, загружающий нулевой байт в регистр режима контроллера. После действия .сигнала сброса до программного разрешения контроллер не реагирует на сигналы DRQ запросов ПДП.
CLK (синхронизация) - входная линия, на которую подаются ТТЛ - сигналы второй фазы системной синхронизации.
Устройство управления с входящими в него регистрами режима и состояния контроллера выполняет действия в необходимой последовательности в передачах ПДП, генерируя требуемые управляющие сигналы и 16-битные адреса основной памяти. С ним ассоциируются следующие сигналы и соответствующие им линии:
А7-4 - четыре выходные линии адреса, имеющие тристабильные буферы. На эти линии контроллер выдает соответствующие биты регистра адреса во всех передачах ПДП. Вместе с линиями А3-0 определяют младший байт адреса основной памяти. Подключаются к аналогичным линиям шины адреса.
READY (готовность) - входной Н - активный сигнал, обеспечивающий введение состояний ожидания контроллера, если быстродействие основной памяти недостаточно для синхронной работы.
HRQ (запрос ПДП или захват шины) - выходной Н-активный сигнал, который подается на вход HOLD микропроцессора и сигнализирует о необходимости его отключения от системной шины.
HLDA (подтверждение запроса ПДП или захвата шины) - входной Н-активный сигнал от процессора, свидетельствующий, что контроллер может управлять системной шиной.
MEMR (считывание из памяти) - выходной L-активный сигнал, инициирующий считывание из адресуемой ячейки основной памяти в передачах ПДП. Данная линия имеет внутренний тристабильный буфер.
MEMW (запись в память) - выходной L-активный сигнал, определяющий запись в адресуемую ячейку основной памяти в передачах ПДП. Имеется внутренний тристабильный буфер. Выходы MEMR и MEMW соединяются с соответствующими линиями схемы управления системой (системного контроллера).
ADSTB (строб адреса) - выходной Н-активный сигнал, используемый для загрузки старшего байта адреса основной памяти, который КПДП выдает на шину данных, во внешний регистр-защелку.
AEN (разрешение адреса) - выходной Н-активный сигнал, который используется для перевода шин адреса и данных и некоторых линий шины управления другими компонентами системы в состояние высокого выходного сопротивления. Подается на входы разрешения выхода ОЕ или выбора устройства DS шинных усилителей-формирователей, связывающих процессор и другие устройства (кроме, разумеется, основной памяти) с системной шиной.
ТС (окончание счета) - выходной Н-активный сигнал, идентифицирующий последний цикл ПДП текущего блока данных. Формируется при достижении нуля (точнее, перехода через нуль) в 14-битном счетчике работающего канала ПДП.
MARK (маркер или метка) - выходной Н-активный сигнал маркера по mod 128. Сигнализирует в периферийное устройство, что текущая передача ПДП является 128-й от момента формирования предыдущего сигнала MARK. Если общее число N передач ПДП кратно 128 (напомним, что в счетчик загружается значение N— 1), сигнал MARK появляется при 128-й передаче от начала блока данных.
По четырем входным линиям DRQ3-0 запросов ПДП периферийные устройства сигнализируют об их готовности к передаче данных. Инициирование цикла ПДП осуществляется установкой Н-уровня на линии DRQ и сохранением его до подтверждения ПДП. В пакетной передаче Н-уровень DRQ сохраняется до подтверждения передачи последнего байта. Программно запросам DRQ могут быть назначены фиксированные приоритеты (DRQo - высший, DRQ3 -низший) или может быть задан режим циклического приоритета, т. е. после обслуживания некоторого канала ПДП ему назначается низший приоритет, а приоритеты остальных каналов изменяются в круговой последовательности. Например, после обслуживания канала СН2 приоритеты каналов убывают в таком порядке: СН3, СН0, CH1, CH2. Данный режим приводит к тому, что приоритеты всех четырех периферийных устройств оказываются одинаковыми и ни одно из них не может блокировать запросы других.
Установкой L-уровня на одной из четырех выходных линий DACK3-0 подтверждения ПДП контроллер извещает периферийное устройство о начале запрошенного им цикла ПДП.
Интерфейс КПДП с системной шиной данных
Интерфейс КПДП с системной шиной данных D7-0 осуществляется через стандартный двунаправленный тристабильный буфер. При программировании процессор загружает через него байты в любой из 8-битных внутренних регистров, кроме регистра состояния, а при необходимости, например для контроля, считывает содержимое любого регистра, кроме регистра режима. Эти операции выполняются командами вывода OUT или ввода IN, вторым байтом которых адресуется целевой регистр, а при использовании ввода-вывода, отображенного на память, могут выполняться любыми командами с обращением к памяти.
Когда контроллер получает управление системной шиной, в начале цикла ПДП он выводит на линии D7-0 старшие 8 бит A15-8 адреса памяти из старшей половины регистра адреса работающего канала ПДП. Это действие идентифицируется Н - активным стробом адреса ADSTB, который должен загрузить байт с шины данных во внешний регистр-защелку, например в многорежимный буферный регистр К589ИР12. Выходы этого регистра подключаются к линиям A15-8 шины адреса.
Логическая схема управления считыванием и записью при программировании контроллера или при считывании содержимого внутреннего регистра (контроллер является ведомым) воспринимает входные сигналы I/OW или I/OR, дешифрует код на младших линиях адреса А3-0 и выполняет следующие действия: если сигнал I/OW = 0, байт с шины данных загружается в адресуемый кодом А3-0 регистр; если сигнал I/OR = 0, содержимое адресуемого регистра передается на шину данных. Когда же контроллер управляет системной шиной, т. е. является ведущим, эта же схема генерирует пары сигналов I/OR—MEMW при передаче данных в основную память и I/OW—MEMR при передаче данных в противоположном направлении. Пример схемы СУС КПДП показан на рис.
Рисунок - Схема ПДП при вводе данных в память
Имеются, но не показаны средства для синхронных, асинхронных прерываний программно управляемого обмена для подготовительных, заключительных операций - включение мотора, задание начального адреса в памяти, проверка готовности, исправности, поиска дорожки и т.д.
Форматы регистров режима и состояния КР580 ВТ57
Форматы регистров режима и состояния контроллера доказаны на рис. Регистр режима, определяющий общие функции контроллера, программируется после загрузки регистра адреса и счетчика канала ПДП. Он сбрасывается сигналом RESET, что приводит к запрещению использования всех каналов ПДП и предотвращает конфликты на шине при включении питания. Рекомендуется не разрешать работу канала ПДП до загрузки в его регистры исходных данных, чтобы случайные запросы ПДП не исказили содержимого основной памяти.
Рисунок - Формат регистров режима и состояния
Четыре младших бита EN3-0 определяют состояние соответствующих каналов ПДП. Если ENi = 0, т.е. i-й канал запрещен, контроллер не реагирует на запрос DRQi; когда же ENi = 1, т.е. i-й канал разрешен, контроллер удовлетворяет запрос DRQi.
Бит RP определяет фиксированный приоритет запросов ПДП (RP = 0) или циклический приоритет (RP = 1).
При установке бита EW расширенной (удлиненной) записи несколько увеличивается продолжительность сигналов MEMW и I/OW, генерируемых контроллером. Это позволяет не вводить дополнительного состояния ожидания через сигнал готовности READY и несколько увеличивает скорость передачи данных.
Если установлен бит TCS разрешения останова при окончании передач ПДП, после формирования сигнала ТС соответствующий канал ПДП запрещается, т. е. его бит EN сбрасывается. Дальнейшие передачи в этом канале возможны только после повторной загрузки регистра режима контроллера. Когда же TCS = 0, появление сигнала ТС не влияет на состояние канала ПДП и закончить операции ПДП должно периферийное устройство.
Бит AL автозагрузки позволяет использовать канал К2 для повторных передач предыдущего блока данных или сцепленных блоков данных без программного вмешательства между передачами блоков. Для этого регистры К2 инициализируются обычным образом, а в регистры Кз загружаются параметры повторной инициализации К2. После завершения в Кг передачи первого блока данных, о чем сигнализирует ТС = 1, в цикле модификации (обновления) параметры из регистров Кз загружаются в регистры К2. При этом состояние бита TCS (если AL = 1) не влияет на работу К2. Когда AL=1, при программировании К2 его начальные параметры автоматически дублируются в регистрах Кз, что обеспечивает повторяющиеся передачи одного и того же блока данных. Такое повторение удобно при использовании КПДП для регенерации видеодисплея. Но в регистры Кз после загрузки регистров К2 допускается загружать другие значения параметров.
Восьмибитный регистр состояния содержит четыре бита ТС, отражающих состояния окончания счета соответствующих каналов ПДП, и бит UF флажка модификации. Биты ТС устанавливаются одновременно с выдачей сигнала ТС соответствующих каналов и сбрасываются сигналом
RESET или при считывании содержимого регистра состояния в процессор. Флажок UF устанавливается, когда в режиме автозагрузки параметры Кз передаются в регистры К2, и не сбрасывается при считывании состояния. Его можно перевести в нулевое состояние посредством сигнала RESET или аннулирования режима автозагрузки. Кроме того, флажок автоматически сбрасывается после передачи первого блока вслед за модификацией регистров К2. Контролируя состояние UF, процессор определяет момент завершения повторной инициализации Кг и, следовательно, возможность безопасной загрузки параметров нового блока данных.
Программирование КПДП осуществляется командами OUT или любыми командами запоминания байта при использовании ввода-вывода, отображенного на память. При этом сигналы на линиях А3-0 определяют адрес целевого внутреннего регистра, а сигналы на линиях A15-4 после дешифрации используются для формирования сигнала CS. Собственно запись в целевой регистр выполняется сигналом I/OW. Выбор регистров контроллера определяется табл.
Таблица
Рисунок - Диаграмма состояний контроллера
Бит А3 определяет обращение к канальным регистрам (А3 = 0) или к регистрам режима и состояния (А3 = 1). При выборе канального регистра бит Ао идентифицирует регистр адреса (Ао=0) или счетчик (Ао = 1). Оставшиеся входные линии адреса A2,i определяют один из четырех каналов.
Для загрузки и считывания содержимого каждого из 16-битных регистров необходимы две команды. В контроллере предусмотрен специальный триггер F/L (первый/второй, или младший/старший), состояние которого определяет старшую или младшую половину выбранного канального регистра. Триггер F/L сбрасывается при действии сигнала RESET и при загрузке регистра режима КПДП. Для обеспечения правильной инициализации команды обращения к канальным регистрам должны быть парными и первая из них должна обращаться к младшей половине регистра. Нельзя формировать CS=0 при активном уровне сигналов I/OW или I/OR, так как это вызовет ошибочный переход триггера F/L. В системе с возможными прерываниями при программировании КПДП или считывании содержимого его регистров прерывания следует запрещать.
Контроллер имеет семь внутренних состояний, связи между которыми показаны на рис. В холостом состоянии S1 он не выполняет операций ПДП. Цикл ПДП начи- нается с установки Н-уровня на любой из линий DRQ запроса ПДП. Контроллер переходит в состояние So, формирует сигнал запроса HRQ в процессор и ожидает сигнала подтверждения HLDA. В этом состоянии продолжается опрос линий DRQ с учетом их приоритетов. При получении сигнала HLDA от процессора контроллер выдает сигнал подтверждения DACK в запрашивающее устройство с наивысшим приоритетом и переходит в состояние S1. Н-уровень на линии DRQ должен сохраняться до получения сигнала DACK, когда передается один байт, или до выполнения условия DACK = 0 и ТС=1, свидетельствующего о передаче блока данных в пакетном режиме. Каждый цикл ПДП состоит минимум из четырех состояний (S1S2S3S4). Если быстродействие основной или внешней памяти недостаточно для передачи во временном интервале, определяемом сигналами синхронизации, с помощью L-уровня на входе готовности READY между состояниями S3 и S4 вводится необходимое число состояний ожидания Sw. В режиме проверки (VERIFY) сигнал READY не используется.
При передаче данных в основную память выходной сигнал I/OR генерируется в начале состояния S2, а сигнал MEMW — в начале состояния S3. При передаче данных из основной памяти в начале состояния S2 генерируется сигнал MEMR, а сигнал I/OW — в начале состояния S3. Указанные последовательности формирования управляющих сигналов обеспечивают правильную передачу данных. Сигнал расширенной записи I/OW или M.EMW формируется в состоянии S2. Управляющие сигналы записи и считывания при работе канала ПДП в режиме проверки не генерируются.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Что понимается под архитектурой ввода-вывода?
2. Каковы достоинства и недостатки изолированного ввода-вывода и ввода-вывода, отображенного на память?
3. Каким образом в системе с вводом-выводом, отображенным на память, можно упростить дешифраторы адреса регистров периферийных устройств?
4. Какие режимы ввода-вывода используются в мини- и микро-ЭВМ? Сравнить их по быстродействию и дополнительным аппаратным и программным средствам.
5. В чем главное отличие маскируемых и немаскируемых прерываний?
6. Можно ли использовать команду повторного старта RST в прикладных программах? Рассмотреть особенности ее выполнения и отличия от команды CALL.