Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Организация ЭВМ.doc
Скачиваний:
132
Добавлен:
01.05.2014
Размер:
505.34 Кб
Скачать
  1. Второй способ

Микропрограммное формирование управляющих сигналов основано на том, что входные сигналы можно представлять как адреса некоторой памяти ячейки которой содержат комбинацию выходных сигналов, поэтому формирование выходных сигналов можно представить как память у которой имеется Nкодов и поэтому можем выбирать 2n ячеек памяти каждая содержитmразрядов выходных сигналов{Yi}.

{n} => ПАМЯТЬ 2n ячеек памяти (2nвыходных кодов)

Проблемы:

  1. Каким образом представлять слова памяти.

  2. Как организовать последовательность выбора слов этой памяти для реализации управления выполнения команды.

Идею создания МПУ высказал M. Wilks (Кембридж) в 1950-егоды, но были реализованы только в конце 60Х. Сейчас все ЭВМ содержат элементы микропрограммного управления. Все коды хранятся в памяти, 2nслов памяти.

Рисунок

МПЗУ – микропрограммное запоминающее устройство (хранит микропрограммы для всех машинных команд).

РгАМК – регистр адреса микрокоманды

ФАСлМК – формирователь адреса следующей микрокоманды

Форм. УС – формирователь условных сигналов

ГТ – генератор такта

Простейшая схема формирователя условных сигналов.

Рисунок

Достоинства:

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

  2. Не зависимо от набора команд машины, схема реализуется с помощью микропрограммы в МПЗУ.

Способы кодирования микрокоманд.

Обычно число различных микрооперации на порядок как минимум превышает число машинных команд. Кроме того, в составе микрокоманды, требуется указывать прямой адрес следующей микрокоманды в микропрограмме памяти. Это приводит к тому, что длина микрокоманды может достигать больших размеров (Lмк.200 бит и более).

Эффективно использоваться микрокоманда длиной 200 бит не может.

Для этого применили кодирование команд.

  1. Унитарное кодирование (по существу это отсутствие каких-либо кодировок).

Рисунок

LОПЧМК= (NМОП)MAX

опчмк – операционная часть микрокоманды

моп – микрооперация

Достоинства:

  1. Простота формирования управляющих сигналов.

  2. Высокая скорость формирования сигналов.

2. Прямое или одноуровневое кодирование команд.

Рисунок

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

Затем выходы двоичных команд поступают к ДШ1 где расшифровываются до нормальной формы.

Прямое или одноуровневое кодирование называется так потому, что все группы являются независимы друг от друга.

W  количество групп

LMK =  (Log2(mi) + 1) нужно взять целую часть Logи прибавить к ней единицу

I = 1

  1. Косвенная (двухуровневая) кодирование команд.

Рисунок

Частным случаем косвенного кодирования резидентное кодирование.

(пример использования 32 битной системы на 16 битной)

Рисунок

Существуют еще горизонтальное и вертикальное кодирование.

Принципы деления полей.

Горизонтальное кодирование – в одно поле объединяется все взаимно исключаемые (в данном такте) микрооперации, тогда при W полей, одновременно в одном такте можно выполнитьW операции. По количеству бит и быстродействию этот способ между унитарным и одноуровневым кодированием.LМКОМ­64 бита . Проблема: усложняет программирование (так как программист должен мыслить параллельно, что довольно затруднительно).

Вертикальное кодирование – в одно поле кодируется группа допускающее параллельное выполнение операции. Цель:минимизация длины команды в целом. При этом в одном такте может выполняться небольшое число микрокоманд в целом, любая горизонтально закодированная команда соответствует нескольким вертикальным закодированным командам.

Пусть (N МОП)MAX = 100 (МОП – микрооперации)

Число операции одновременно выполненных операций равно

N’ПАР_МОП = 32 /МК (комбинации)

m РАЗРЯДОВ ДЛЯ МОП= 5 =Log2 N’MK , то есть храниться пяти разрядных код, а при дешифрации (двух уравнений) от распаковывается в 32 бита, затем в 100 микрооперации.

Основной недостаток это низкая скорость расшифровывания и выполнение команды.

Особенности:

  1. Большая гибкость в плане изменения набора команд, путем замены микропрограммной памяти (ПЗУ) или перезаписи микропрограммной памяти (ППЗУ).

  2. Возможность рационального распределения аппаратного и микропрограммного управления порождает семейство машин разной производительности, но с одним набором команд.

  3. Микропрограммы управление имеет регулирующую структуру и реализуется с помощью БИС

  4. Есть возможность эмуляции на микропрограммном уровне новых архитектурных машин на имеющейся.

  5. Микропрограммная реализация системных программ(компиляторы, файловые системы), значительно повышает производительность системы и используется в суперкомпьютерах.

Компьютеры с сокращенным набором команд.

(КСНК (RISC - Reduced Instruction Set Computer))

КСНК представляет собой возвращение к принципам аппаратного управления выполнением команд.

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

  1. Аппаратное управление 50-е годы (эра аппаратчиков)

  2. Микропрограммное управление 60 – 80-е годы (эра программистов)

Основной лозунг Микропрограммного управления: больше команд хороших и разных.

Требование программистов:

  1. Минимизация программ

  2. Упрощения реализации компиляторов.

К этому времени разрыв набора команд между различными компьютерами был от 50 до300 команд (рекордсменом былVac11/780, у него было 303 команды).

Этот подход стал понижать производительность, по принципу один процессор на одном кристалле, так как около шестидесяти процентов занимало микропрограммное управление. А реализация на разных кристаллах также приводила к понижению производительности да к тому же еще и годных кристаллов. И в результате концу 80-х при активном развитии микропроцессорной техники и СБИС, резко уменьшилось количество машинных команд и возврат к 50 командам (которые наиболее часто использовались). В конце концов, появилисьCISC компьютеры. (Complex Instruction Set Computer – машины со сложным набором команд)

Основной лозунг RISC компьютеров:меньше команд, выше скорость выполнения.

Основной закон:

Система команд должна содержать минимальный набор, наиболее часто используемый и наиболее простых команд.

Четыре принципа RISC архитектуры:

  1. Любая команда независимо от ее типа должна выполнять за один машинный цикл, обратно пропорциональный тактовой частоте процессора (стандартом является команда сложения регистра с регистром, она занимает от 3 – 10нс.).

  2. Все команды должны иметь одинаковую длину и минимальное число форматов (обычно не более 2 -3), это упрощает логику управления при выборе и при исполнение команды.

  3. Обращение к памяти производиться только по специально выделенным командам работы с памятью типа:

Load – загрузка

Store – выгрузка

а вся обработка данных должна вестись в регистровом формате.

  1. Система команд должна обеспечивать поддержку компиляции с конкретного языка программирования в системе машинных команд(RISCкомпиляторы на порядок сложнее чес дляCISC).

Немного истории:

Идея созданияRISC компьютера была реализована в машинахCray–1.

В 1975 году (сотрудник IBM) John Cook впервые попытался применитьRISC архитектуру

в IBM 370 (команд стало50, два формата записи команд), при этом быстродействие повысилось в два – три раза.

Само название RISC появилось в середине восьмидесятых годах, в институте Беркли создали машинуRISC–1, послеRISC–1 последовалRISC–2.

MIPS (серийный выпуск машин)– R4000 – R10000

SUN – SPARC

HP – HP PA7xxx – PA9xxx (PA – Precision Architecture)

DEC – Alpha 21xx

IBM + Apple – Power PC

Формат команд и структура процессора RISC–1.

Рисунок

Большинство команд RISC процессора являются трех адресными.

Код операции.

Бит условия.

Регистр назначения (длина пять бит) NPOH = 32.

Источник 1

If IMM = 1  SRC2 – непосредственное данное

If IMM = 0  SRC2 – регистр

Недостаток: удлиняет длину команды на восемь бит.

Существует два вида формата команды.

  1. Rd  Rs1 op S2

  2. Rd  M((Rs1) + S2) / адрес

Структура.

Рисунок

Форма записи команд в регистровом варианте облегчает реализацию конвейерного исполнения команды, так как исключает конфликты обращения к памяти.

Пример:

E = (A + B) x (C + D)

  1. Двух адресная обработка команд (CISC).

Add b, a

Add d, c

Mull d, b

Store e, d

Схема

  1. Трех адресная обработка команд (RISC).

Add R1, R2, R6

Add R3, R4, R7

Mull R6, R7, R5

S1 S2 d

Схема

Основная проблема:при многочисленных исполнении регистров надо сохранять их в памяти.

Решение проблемы сохранения, восстановление набора команд регистров при вызове подпрограммой о возврате программы.

  1. Организация окон перекрытия регистров.

MORS – Multiple Overlapping Register Set. (Rolodex в RISC–1)

Сто тридцать восемь регистров в RISC-1, они распределялись между восьмью программами (по тридцать два).

Физические регистры

Схема

Недостатки:

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

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

Решение:

  1. Включить аппаратные ресурсы (недостаток: портит RISC архитектуру).

  2. Сохранение регистров окна в памяти (недопустимо в системах реального времени).

  3. Изменение контекста задачи (изменение регистров окна), при этом потери составят от 100 до 1000 машинных тактов.

  1. RISC-2, для удобства работы с регистровыми окнами, реализован подход :

Рисунок

Внутренние кольцо – Rolodex

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

Rolodex развития не получило.

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

Арифметические особенности RISC процессоров.

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

Все RISC компьютеры удовлетворяли последовательному стандарту обработки данных (ANSI).

С фиксированной запятой 32 бита

С плавающей запятой 64 бита

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

Рассмотрим пример сравнения.

Сравнения

VAX

(CISC)

SPARC

(RISC)

Статистика

По тексту программы

1

1.5

Операции обращения к памяти

1

1.5

Фиксированная арифметика

1.5

1

Плавающая арифметика

1

3…4

Динамика

Число строк

1

3…4

Обращения к памяти

1

3…5

Фиксированная арифметика

2…2.5

1

Плавающая арифметика

1

2…2.5

Tпрограммы = Nкомандыx Cтакт/ком x Tтакт

(T – длительность такта)

NкомRISC = 1.2 / 1.5 NкомCISC

Cтакт/ком. CISC = 5 / 10 Cтакт/ком. RISC

TCISC = 3 / 4 TRISC

RISC 500МГц, а CISC  на семь лет позже

Тпрогр.CISC=(10 - 20)Тпрогр.RISC

Это соотношение справедливо к программам с большими арифметическими операциями.

Основные достоинства RISC процессоров:

  1. Повышение производительности обработки программ вычислительных задач.

  2. Благодаря простым командам и форматов сокращенного разработки RISC процессора.

  3. Улучшение технологичности RISC благодаря большой свободе размещения элементов на кристалле интегральной схемы.

Недостатки:

  1. Нарушение основных принципов программирования:

  1. Минимизация длины исполнительного кода.

  2. Снижение семантического разрыва между исходным описание и машинным кодом (как принцип).

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

  2. Сложность программирования на ассемблере.

  3. Узким местом является быстродействие памяти.

Пример развития и пример структурирования RISC

процессоров семейства Alpha.

Рисунок-Схема

Архитектура Alpha 21068

Рисунок

Организация памяти.

Память используется для хранения следующих объектов:

  1. Компьютерные программы.

  2. состояния всех устройств.

  3. Данные (постоянные или переменны).

В памяти недопустима обработка данных и следовательно применимы всего две операции выборки ( информация не разрушает) и запись (разрушает).

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

  1. МАЕП – минимальная единица в памяти.

В зависимости от вида данных:

1бит (слово состояние) .

1 байт ( арифметическое данное, команда).

  1. Слово – наибольшая длина данного выбираемое за одно обращение (16, 32, 64 бита).

Основные характеристики памяти:

  1. Емкость (обозначается С) с диапазоном 1байт (регистр памяти) – 100Гбайт (оптического диска).

  2. Быстродействие (обозначается Т) с диапазоном 1n нсек. – 10n секунд (чем больше емкость, тем меньше быстродействие).

Наиболее быстрый доступ у регистровой памяти, больший для длительного хранения.

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

t ВЫБОРКИ– время от запуска памяти для считывания данного и до появления его в буферном регистре (не содержит в дешифрации установки адреса).

t ОБРАБОТКИ– время затраченное на чтение данного в двух последовательных циклах чтение и запись данных по разным адресам (включая время задания адреса и его выборки).

t ОБР  2t ВЫБ

  1. Надежность – зависит от возникновения сбоев при считывании или записи данных и обеспечивает с помощью контроллера либо:

Parity control – контроллер четности, позволяет обнаружить

одну ошибку.

ECC (error checking and correction) control – контроллер с использованием корректирующих кодов, использует два дополнительных бита.Позволяет обнаружить две ошибки или скорректировать одну ошибку.

  1. Плотность записи (бит / см2), зависит от типа среды хранения информации, высокая плотность у оптических накопителей.

  2. Стоимость хранения одного бита (важна для пользователя с финансовой стороны).

Основные среды хранения информации.

  1. Магнитная среда.

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

  1. Среда с накоплением зарядов.

В данном случае в качестве памяти имеется конденсатор и транзистор позволяющие хранить один бит информации. И в зависимости от материалов, есть биполярная полупроводниковая память (наиболее быстрая) и МОП (металл – оксид - полупроводник) сравнительно медленная, но дешевая.

  1. Память на активных элементах с усилительными свойствами.

Использует триггеры, а сами структуры хранения называются регистрами (самая быстрая, но малой емкости из-за стоимости).

  1. Оптические запоминающие устройства.

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

Виды запоминающих устройств.

Запоминающие устройства отличаются способом доступа к данным.

  1. ППВ - память с произвольной выборкой (RAM – random-access memory).

  2. ПЗУ – постоянное запоминающее устройство (ROM – read-only memory).

  3. АЗУ – ассоциативное запоминающее устройство, отличительная особенность – доступ к элементам памяти по их содержимому.

Память с произвольной выборкой.

ППВ делится на два вида:

  1. ППрД (память прямого доступа), в которой время доступа к элементу не зависит от положения предыдущего элемента.

  2. ППослД (память последовательного доступа), в которой время доступа зависит от положения предыдущего элемента.

ППВ (RAM) наиболее быстрые виды: tВЫБ= (1..3) нс. – 10 нс. и С = 1мб. - 128мб.

С точки зрения реализации более распространены DRAM (Dynamic - динамическая) правда, для ее нормальной работы необходимо осуществлять регенерацию памяти через каждые16нс. (тем самым, подзаряжая конденсаторы).

DRAM напоминает организацию матриц, в которых указывается адрес строки (Row Addr (RAS)) и адрес столбца (Column Addr (CAS)). Существуют симметрические(1024x1024) и несимметрические(4096x1024)DRAM. В одном модуле желательно использовать один из вариантов.

Режимы памяти.

  1. FPM (Fast Page Mode), режим при многократном последовательном обращение к одной и той же строке номер не задается (системная шина меньше двадцати пяти мегагерц).

  2. EDO (Extended Data Out), режим при котором адресация нового столбца осуществляется до завершения предыдущего, производительность повышается примерно вдовое (системная шина от пятидесяти до шестидесяти мегагерц).

  3. SDRAM (Synchronous Dynamic RAM), ориентирована на обработку пакетов из четырех 32 битных или 64 битных слов, отличается общей синхронизацией управляющих сигналов от общего сигнала (системная шина выше семидесяти пяти мегагерц).

Конструкция исполнение.

SIMM – Single in-linememory module (72, 32 контактов).

DIMM – Dual in-linememory module (168 контактов).

Рисунок

ППрД

Рисунок

Рисунок

Постоянное запоминающее устройство.

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

  1. МПЗУ (масочное ПЗУ) – это устройство, в котором запись информации осуществляется фирмой изготовителем (путем выжигания связей (участков)).

  2. ППЗУ (программированное ПЗУ (PROM)) – это устройство которое в исходном виде поставляются пользователю, и он сам прошивает данные (специальный прибор программатор). После такой процедуры ППЗУ не может больше перепрашиваться.

  3. ПППЗУ (перепрашивающее программированное ПЗУ (EPROM)) – это устройство аналогично ППЗУ, только с возможностью стирания (ультрафиолетом) и перезаписи информации.

Ассоциативные запоминающие устройства.

Выборка осуществляется по содержимому.

Структура АЗУ.

Рисунок

Регистр контекста – задает содержимое k(ключ), которому мы должны найти в памяти, но обычно поиск ведется по нескольким разрядам. Участвующие в поиске разряды из регистра контекста задаются в регистре маски (r).

Накопитель хранит n элементов с той же разрядностью, что и контекст. Одновременно для всех ячеек проверяется условие i: bi [1…m] & r = k & r, когда найдется такая ячейка, то подключится к шифратору, который определит номер строки и пошлет на дешифратор на получение адреса и выборки полноразрядного данного в буфер регистра.

Достоинства:

Высокая скорость.

Исполняется как кэш-память (буферная).

Для кэш-памяти строка состоит из двух частей:

Рисунок

Если находится нужный адрес, то считывание происходит из кэша, а не из ОЗУ.

Иерархическая система памяти.

РИСУНОК

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

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

  3. Основная память, все то, что представляется программисту для выполнения программ. Между основной и дисково-вспомогательной памятью встречается дисковой кэш (буферная память).

  4. Дисковая – вспомогательная память на жестком диске (большая емкость).

  5. Архивная память, многотомные накопления на магнитных лентах, CD-ROMи т. д., долговременное хранение данных без разрушения.

Чем больше “номер”у памяти, тем ниже ее ценность по быстродействию.

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

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

Организация памяти типа кэш.

Подразумевается наличие памяти М1и М2.

При этом

n1 << n2 (количество ячеек памяти)

t обр.1<< t обр.2

tОБР.= (1 -)t1 +  (t1 + t2) = t1 +t2 t1

где 0 <  << 1 вероятность неудачного обращения в кэш за данными.

(как правило   0.05 .. 0.1)

Если данные имеются в кэше, то они выбираются за время t1, если отсутствуют, то за времяt2выбирается из основной памяти и одновременно загружается в кэш память.

Использование кэша основано на свойстве локальности программ, в течении длительного интервала времени диапазон адресов команд и диапазон данных исполнительной программой являются небольшими и практически не меняются.

Организация кэш памяти

Рисунок (маски)

Кэш с прямым отображение адресов.

Недостаток:для каждой ячейки основной памяти должны иметь кэш строку (сейчас такой способом не применяют).

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

Рисунок

В кэш-памяти для каждого набора может храниться не более двух блоков.

При использование кэша возникает два группы проблем:

  1. Замена блока в кэш-памяти на новый блок. В настоящее время придумали два способа замены кэша.

  1. LRU (Least-Recently-Ued) – наиболее долгий способ не обращается к блоку, требует историю блоков (счетчик).

  2. FIFO(Fist-in, Fist-out, буфер обратного магазинного типа, обычная очередь) – очередь не столь эффективна какLRU.

  1. Согласование данных в кэше и основной памяти.

  1. Store-throw – сквозная запись (одновременная запись в блок основной памяти), при этом трата ресурсов и времени на обновления памяти основной памяти .Достоинство:надежный способ согласовать данные.

  2. Swap либоStore In – запись с перекачкой, обновление блока основной памяти происходит только при выгрузке из кэша в основную память. Достоинство:производительность. Недостаток: различие данных в памяти и кэше может привести к конфликтам (проявляется в многопроцессорных компьютерах с общей памятью).

Организация структуры основной памяти в процессорах ix86.

РИСУНОК

XMA – Extended memory area

XMS – Extended memory standard (himem.sys)

HMA – High memory area (высокая память)

UMA – Upper memory area ( верхняя память)

CMA – Convert memory area ( стандартная память)

EMS – Expanded memory standard

Himem.sys иemm386.exe переводят весь компьютер в защищенный режим.

Организация виртуальной памяти.

Виртуальная память – система основной и дисковой памяти представляемая для расширения адресного пространства, доступа программам пользователей.

При использование Виртуальной памяти

  1. ФАП (физическое адресное пространство) – это совокупность адресов соответствующим реально адресуемым физическим ячейкам памяти.

  2. ЛАП (ВАП) (логическое адресное пространство или виртуальное логическое пространство) – это совокупность адресов которое можно использовать для доступа к данным.

Очевидно, что Свап >>>Сфап

Для обеспечения доступа к ВАП из программ необходимо установить строгое соответствие между данными размещаемые в ОФМ и данным размещенными на диске.

Любое случае требуется таблицы соответствия.

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

Разбиение происходит по двум принципам

  1. Страничное

  2. Сегментное

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

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

Первое проще, более простая организация и более простое размещение страниц в виртуальной памяти.

Для второго достоинством является возможность защиты и организации коллективного доступа к данным.

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

РИСУНОК

Стратегия замещения страниц (схожа с Cash).

  1. FIFO - первый вошел, первый вышел

  2. LRU – страница на которой давняя ссылка.

  3. WS (work set) рабочее множество:для конкретных интервалов времени создается совокупность страниц, которые не замещаются (т.к. используются), остальные можно удалить из памяти.

Основная проблема выбор оптимального количества страниц. Наиболее часто используется размер от 4кб. до 64кб. .На современных машинах (с большими HDD) используются большие страницы.

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

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

РИСУНОК

РИСУНОК

Одной из проблем виртуальной памяти является фрагментация виртуальной памяти.

Фрагментацию обычно различают внутреннюю и внешнюю.

Внутренняя возникает от недоиспользованного полного размера страницы сегмента.(Это приводит к образованию участков памяти доступ к которым затруднен.)

Внешняя возникает только для сегментной (виртуальной памяти) из-за того что удаляемый и размещаемый на его место сегменты имеют разные размеры.

Для преодоления проблем фрагментации, операционная система запускает процедуру (называемой сборка мусора), которая объединяет участки памяти (пустые) в несколько сплошные блоки.

Для сегментной организации нужно чаще запускать дефрагментатор в отличии от страничной организации.

Для решения проблем внешней фрагментации и сокращения длины таблицы страниц применено смешанное сегментно-страничная организация.

РИСУНОК

Таблицу сегментов – не стоит рассматривать как сплошное адресное пространство.

Для различных задач могут быть разные таблицы сегментов и разные связи с таблицами страниц.

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

На логическом уровне – сегментная организация.

На физическом – страничная.

Общее понятие виртуализации в ЭВМ.

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

Примеры :

  1. Наличие виртуальных машин на одной инструментальной машине.

  2. Использование виртуальных устройств ввода – вывода (мышка и т.д.)

Организация виртуальной памяти на i386 и более старших моделях.

Эти процессоры могут работать в трех режимах:

  1. Реальный режим (более быстрый особенно с 32 битными данными). Память до 4Гб.

  2. Защищенный режим использует виртуальную организацию памяти, многозадачный режим, развитая система защиты памяти (программ и данных).

  3. Реализация виртуальной машины i8086 при котором процессор реализовывает программы написанные для процессораi8086.

В защищенном режиме размер виртуальной памяти C ВАП =246 б. = 64Тб.

(Это возможно благодаря разбиению ВАП на 16К сегментов, максимальный размер которого = 4Гб. )

При организации памяти используется три вида адресов.

  1. ЛА ВАП

  2. ФА ФАП

  3. Линейный адрес – представляет собой объединение базового адреса смещения и смещения в пределах сегмента.

Любой регистр смещения состоит из двух частей:

Программно доступной и скрытой

РИСУНКИ

Индекс задает смещение таблицы, строки с описанием данного сегмента.

Содержание селекторов сегментов формируется операционной системой при загрузке задачи

Структура дескриптора сегмента.

РИСУНОК

20 бит граница сегмента определяет его длину.

Длина сегмента зависит от бита дробности (G) либо в байтах, либо в страницах.

 0, байт

G 

  • 1, страница (С = 4Кб.) 220* 215= 232(4Гб.)

Остальные поля атрибуты.

D - задает тип данных в сегментах (Data)

= 0 – 16 битные данные

= 1 – 32 битные данные

AVL – бит предоставляемый в распоряжение пользователя (available)

P – бит присутствия

0 – на диске

1 – в оперативной памяти

DPL – уровень привилегий в дескрипторе (Descriptor Privilege Level)

RPL илиCPLдолжен быть> DPL - логическое соответствие (если о числах, то знак меньше)

CPL – текущий уровень привилегий соответствует дескриптору сегмента выполняемый в данный момент программой

S – User / Supervisor

Тип – говорит, является ли сегмент программой или данным

Биты

11

10

9

Данные

1

E

W

Код

0

C

R

С – признак согласования сегментов (уровень привилегий с которыми обращается к данному сегменту, равно данному сегменту (можно не обращать внимания), более высоких типах процессоров от Intelон существует только для поддержки)

R – только чтение

W – только запись

E – бит расширения при загрузке сегмента (прямое - при увеличение адреса, обратное при уменьшение адреса)

А – бит обращения к сегменту, устанавливается при каждом обращении к сегменту и через некоторое время сбрасывает операционную систему (применимо при виртуальной памяти).

Алгоритм преобразования виртуального адреса в

физический адрес.

Рисунок

Структура выполнения сегментной трансляции.

Рисунок

I этап

Сегментная трансляция– это преобразование логического адреса (селектор сегмента и смещения). На основании селектора происходит выборка из локальной или глобальной таблицы и переписывать его в скрытую часть сегментного регистра.

Линейный адрес = базовый сегмент + смещение.

II этап

Страничная трансляция.

Рисунок

CR – регистр управления

(CR0. PG)&(CR0. PE) = 1 - признак страничной трансляции.

TLB –буфер страничной трансляции (по сути это кэш, нужен он для ускорения)

1к каталог

1k страниц

4k смещение

1k x 1k x 4k= 4Gb

Таблица страниц

Рисунок

Защита памяти в i80386+.

Только приCR0.PE=1(защищенный режим). Защита может осуществляться на уровне страниц и на уровне сегментов.

Защита на уровне сегментов и на уровне страниц обеспечивается либо атрибутом дескриптора сегмента, либо строкой страницы таблицы, так же и влияет соотношение уровней привилегий.

RPL – запрашиваемый уровень (при помещение селектора в сегментный регистр)

DPL – уровень привилегий дескриптора, фиксируется при первом обращение к данным дескриптора. Минимальный уровень, при котором данный деструктор доступен.

CPL – текущий уровень привилегий, которые соответствуют кодовому сегменту программы.

На уровне сегментов:

  1. Контроль типа не зависит от уровня привилегий, определяется деструктором

  2. Контроль границ 

  3. Ограничение адресной области памяти. 

  4. Ограничение точек входа в процедуру.  Зависит отRPL, DPL, CPL

  5. Ограничение набора команд. 

Уровень страниц:

  1. Контроль типа.

  2. Ограничение адресной области памяти.

Контроль типов:

  1. На этапе загрузки селектора в регистр сегмента (проверка типа сегмента для которого осуществляется загрузка селектора)

  2. На этапе обращения к сегменту.

Пример: ВCS может быть загружен только программный дескриптор;вDS не может быть загружен селектор дескриптора, который не доступен для чтения.

При обращении:

  1. Нельзя называть в кодовый сегмент.

  2. Нельзя писать в сегменте данных, если бит записи равен нулю.

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

Контроль на уровне страниц:Зависит от U/S иR/W.

Контроль границ:Предотвращает выход за пределы сегмента.

Ограничение адресной области памяти.

{RPL, CPL}  DPL

CPL = DPL

CPL  DPL (численно), через специальный дескриптор (вентиль вызова)

Ограничение набора команд.

  1. Свободные команды (непривилегированны).

  2. Привилегированные команды на уровне ядра.

  3. Чувствительные команды, зависят от уровня привилегии, но могут выполняться в любом режиме супервизора (от 0 до 2). В основном это команды ввода-вывода.

Организация работы с внешней памятью.

(магнитные диски)

Различаются на физическую и логическую организацию информации на носителях.

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

Информация хранящаяся на машинном носителе на концентрированных окружностях называется дорожками, количество дорожек от 40…48 до 80…96 на дюйм.

Дорожки номеруются с внешней стороны и ее номер первой дорожки ноль. Все дорожки разбиваются на секторы по 512 байт в зависимости от плотности диска, количество секторов может меняться от 8 (360 Кб.) – 18 (1.44Мб.) – 36(2.88Мб.) на дорожку.

Несколько секторов объединяют в кластер, это делается для уменьшения объема таблицы размещения файлов (FAT). Кластер может содержать от двух до шестнадцати секторов, физическая организация диска осуществляется на этапе форматирования, которое реализует следующие функции:

  1. Форматирование на сектора.

  2. Проверка и регистрация дефектных секторов и кластеров.

  3. Заполнение начальных секторов стандартной информацией.

Секторы:

0 - Начальный загрузочный

1, 2 – Две копии FAT (File Allocation Table)

3 – Корневой каталог (пустой)

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

  1. Имя – 8 байт.

  2. Расширение – 3 байта.

  3. Атрибут – 1 байт (Hidden, Read-only, Archive).

  4. Резерв – 10 байт.

  5. Время последнего обращения к файлу – 2 байта.

  6. Дата последнего обращения к файла – 2 байта.

  7. Номер начального кластера файла 2 байта (в FAT).

  8. Размер фиала 4 байта.

Это характерно для гибких дисков.

Жесткие диски:

HDD (Hard Disk Drive) – имеет главную запись загрузки включая таблицу разделов (включая разбиение на таблицы). Каждый раздел позволяет иметь свою операционную систему, в таблице указывается, где находится разделDOCтаблица, а также сектор, какого раздела содержит начальную загрузку, в остальном каждый раздел организован как гибкий диск.

Организация работы с файлами на дисках в MS-DOS.

Существует два способа доступа:

  1. С использованием управляющих блоков файлов(УБП (FCB)). Применялся в первых двух версиях операционной системы, поддерживается только для преемственности.

  1. Не поддерживается иерархическая структура каталогов и доступ только к файлу в текущем каталоге.

  2. Любое обращение к файлу требует специальной таблицы из УБП.

  3. Размещение буферной области данных (DTA – Data Transfer Area) для этого метода зафиксирована и меняться не может.

Этот способ удобен для работы с файлами прямого доступа.

  1. Через дескриптор файла (ДФ) (FH – File Handler). /Используется в настоящее время/

  1. для любого обращения к файлу требуется одно слово, в котором хранится индетификатор или номер файла.

  2. Поддержка иерархических структур каталогов

  3. DTA – может размещаться в любом месте

Структура УБП (FCB).

1 байт – номер диска (0 – текущий , 1-А, 2-В,…)

8 байт – имя файла

3 байта – тип файла

2 байта – номер текущего блока (до 128 записей)

2 байта – размер записей (по умолчание 128 байт)

4 байта – размер файла

2 байта – дата последней модификации

10 байт – резерв операционной системы

2 байта – номер текущей записи

2 байта – номер записи ПД (прямого доступа)

Табличка

Нет атрибутов файла. Для этого используется расширенный УБП (FCB) (+ 7 байт)

1 байт – OFFh

5 байт –ASCII код 0

1 байт – атрибуты файла

7 – файл доступен из Novell NetWare

6 – не используется

5 – архивный

4 – каталог

3 – метка тома

2 – системный (sys)

1 – скрытый (hidden)

0 – только для чтения(Read only)

Операции над файлами.

  1. Создание

  2. Открытие

  3. Передачи данных

  4. Закрытие

  5. Удаление

Создание файла FCB.

FCB AH OFFh, 5DUP(0), 2, 1 ‘MyFile.dat’, 25DUP(0)

;проверка существования файла

mov AH, 11h ; поиск на A (указан в FCB)

lea dx, FCB ; DS:DX адрес FCB

int 21h

cmp al,0

je warn_user

mov ax, 16h ;функция создания файла

int 21h

cmp al, 0

jne error

Использование FH

Задается полный путь к файлу в виде ASCIIZ(нулевой байт в конце)

в DS:DX должен быть указан адрес строки.

Создается 16 битный номер файла, который помещается в AX.

Path DB ‘c:\level1\level2\myfile.dat’,0

mov ax, 4Eh; поиск файла

lea dx, path

int 21h

jnc warn_user ; файла нет  CF  0

mov ax, 3Ch

mov cx, 0; байт атрибутов

int 21h

jc error

mov fnumber, ax

Тип ошибки (в AL):

2 – путь не существует

3 – открыто слишком много файлов

4 – нет места на диске.

FCB: Функция 0Fh– открывает файл

10h– закрывает файл

13h- удаляет файл

FH: Функция 3Dh – открывает файла

5Bh – создает и открывает файл

3Eh – закрывает файл

41h – удаляет файл

Открытие файла функцией FCB,сопровождается заполнением следующих полей:

  1. Размер записи.

  2. Дата модификации (берется из текущей даты).

  3. Размер блока и номер текущей записи.

  4. Еще есть запоминание текущего доступа.

Удаление файла той же функцией происходит путем замены первого байта в файле на E5h(удобно для восстановления файла и для замещения на новые данные). Нельзя совершить удаление при незакрытом файле. После закрытия файла все освобождаются буферные области.

Чтение / Запись

DTA (буфер)

файл на диске данные в оперативной памяти.

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

В последовательном:файл может иметь переменную длину, разделяемый парой кодов 10h и 13h. И доступом в середину файла путем пропуска ограничтельных пар символов нужного количества раз.

(дескриптор более предрасположен к использованию последовательного доступа).

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

Для FCB –поля выбираются из управляющей области памяти.

Организация системы ввода-вывода в ЭВМ.

Назначение системы ввода-вывода – это, обеспечение центральной части машины с внешней средой представленными периферийными устройствами.

Связь процессора с периферийными устройствами осуществляется:

  1. Через аккумулятор (регистр общего назначения)

  2. Через оперативную память.

Оперативная память может непосредственно связаться с внешним устройством через DA.

Проблемы ввода-вывода:

  1. Существует большое количество устройств ввода-вывода, с различными параметрами:

  1. Скорость передачи данных.

  2. Формат передачи данных (устройства последовательного, параллельного представления информации и т.д.).

  3. Различные формы передачи данных (байты, слова, блоки секторы).

  4. Количество выполняемых функции (чтение, запись).

  1. Различные скорости работы центральной машины и внешних устройств (требуется многоуровневая буферная память).

  2. Асинхронность центральной рабочей машины и внешних устройств (Это значит, что центральная машина работает сама по себе, внешне устройство подготавливается к работе (согласование устройств)).

Требования в системе ввода-вывода:

  1. Обеспечить эффективное согласование центральной части машины и внешних устройств с

целью достижения максимальной производительности.

  1. Обеспечение распределения внешних устройств по одновременно выполняемым

задачам в системе (большинство машин работают в многозадачных системах).

  1. Обеспечение управлением каждым конкретным внешним устройством.

  2. Обеспечение дружественного интерфейса с пользователем.

Архитектура систем ввода-вывода.

Существует два основных способа организации системы ввода вывода.

  1. Прямой ввод вывод.

  2. Косвенный ввод вывод (канальный ввод вывод).

РИСУНОК

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

РИСУНОК

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

Каналы делятся на

  1. Мультиплексные (обслуживают много, но медленно).

  2. Селекторные (обслуживают мало, но быстро).

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

Сравнение функций контролеров и каналов, состав контролеров и

каналов.

Контролеры:

  1. В текущий момент времени он выполняет одну команду ввода-вывода получаемую от процессора или канала и одновременно обслуживает одно внешние устройство.

В его функции входит:

  1. Опознание своего адреса выборки.

  2. Подтверждение готовности внешних устройств.

  3. Управление операцией во внешнем устройстве.

  4. Согласование форматов данных.

  5. Согласование скоростей передачи (буферизация).

  6. Фиксация момента и характера операции ввода-вывода.

Контроллер должен содержать:

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

  2. Регистры управления (содержит команду) и состояния. Состояния характеризуются следующими битами: DONE, BUSY ERROR часто применяется бит приоритета.

  3. Буферные регистры данных (которые служат для согласования форматов и скоростей передачи).

Особенности каналов:

  1. Выполняет целую канальную программу из многих команд.

  2. Допускает одновременно управлять несколькими внешними устройствами.

В его функции входит:

  1. Опознание своего адреса и подтверждения готовности.

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

  3. Поиск контроллера и внешнего устройства участвующего в операции и проверки их готовности.

  4. Запуск канальной программы и управление обменом.

  5. Сообщение центрального процессора о завершение операции и всей программы.

Канал представляет собой специализированный процессор с расширенными управлениями, и ограниченный арифметическими возможностями.

Способы выполнения операции передачи данных.

Рисунок

Синхронная передача.

Рисунок

В данном режиме

Это самый быстрый способ передачи данных, но ненадежный.

Асинхронная передача.

Несовмещенный ввод-вывод.

Рисунок

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

Рисунок

Ввод-вывод по программному прерыванию.

Рисунок

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

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

Ввод-вывод по аппаратному прерыванию (прямой доступ к памяти).

Рисунок

Процесс передачи осуществляется без участия центрального процессора.

У процессора занимается один цикл памяти необходимый для передачи.

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

Этот режим обеспечивает параллельную работу процессора и операции ввода-вывода, он быстрый, так как передача идет на уровне памяти.

Структуры контроллеров внешних устройств, для управления различными режимами передачи данных.

1. Контроллер не совмещенного ввода-вывода.

РИСУНОК

Основы узла:

Селектор Адреса, который выдает на выходе единицу (разрешающий сигнал), только для одного адреса (своего адреса)

Регистр Управления и Состояния – который связывается с системой управления по входу и выходу и принимает от шины управления команду, на выходе выдает состояние внешних устройств при выполнение команды.

Буферный Регистр Данных – для согласования скоростей (буфер)

Используется в двух режимах

  1. Записи

  2. По чтению

2. Контроль передачи по программному прерыванию.

Контроль состоит из двух частей:

  1. Индивидуальный контроллер внешнего устройства.

(аналогично контроллеру не совмещенного ввода-вывода)

  1. Общий или выделенный контроллер прерывания.

РИСУНОК

КНВВ линий связи с памятью и процессором те же, что и раньше.

От РгУС КНВВ берется признак разрешения прерываний EIи признак готовности (Done), может быть задан приоритет.

IRR– регистр приема запросов

ISR –регистр обслуживания запросов

IMR– маска прерывания

PRIOR –арбитр, схема разрешения приоритетов.

ШД –для вводаIM (маски)

Int –Выдача прерываний в процессор

Inta –Разрешение на прерывание

НВП – Номер Вектора Прерывания

Если прерывание (IRQ)INTA = ‘разрешено', то тогда команда выставляется НВП.

Далее идет передача данных по КНВВ с той лишь разницей, что процессор не висит на флаге ожидания. И так до следующего пакета данных.

Удобно для процессора.

Неудобно для устройств, так как устройство должно ожидает, пока контроллер получит разрешение.

3. Передача данных в режиме аппаратного прерывания (или прямого доступа к памяти).

РИСУНОК

Основные компоненты.

CAR - Регистр текущего адреса (работает в режиме автоинкрементирования) увеличивается на

1 (байт) или 2 (слово).

CWR– счетчик слов (или байт), который работает в режиме автодекрементирования после передачи содержимое регистра уменьшается на 1(байт) или 2 (слово).

Mode R- регистр передачи(определяет характер и направление передачи).

BAR- регистр базового адреса, содержимое в процессе передачи не изменяется (служит для защиты).

BCK- регистр базового счетчика, содержит первоначальное количество слов для передачи (служит для контроля информации).

Управление – внутреннее управление передается внутри шины.

ШУ – Memrчтение памяти

Iorчтение устройства

Memw запись памяти

Iow запись устройства

ВУ – В режиме прямого доступа к памяти устанавливает взаимную передачу данных между памятью и внешним устройствам (HDD, Sound card и т. д.).

Управление передачей происходит без участия процессора (Процессор должен только подготовить и инициализировать регистры контроллера.).

В обеспечении передачи задействованы все три вида контроллеров:

  1. Контроллер памяти.

  2. Контроллер прерываний, в к ПДП – формируется сигнал в процессоре о завершение передачи в прямом доступе.

  3. Обычный контроллер КНВВ содержащийся во внешнем устройстве..

  1. После подготовки устройством данного оно выставляет запрос на (DRQ) передачу в режиме прямого доступа.

  2. В ответ контроллер прямого доступа выставляет запрос на возможность захвата шины.

  3. Вырабатывается подтверждающий сигнал Back.

  4. Вырабатывается подтверждающий сигнал (DACK) у контроллера к внешнему устройству.

  5. Далее либо MemrлибоMemw

IOW IOR

после чего сбрасывается сигнал запроса шины и разрешается доступ к памяти.

  1. BRQ  0,DACK  0

  2. TA ++ либоCC --

Пункты с 1 по 7 называются “занятие цикла памяти”, и выполняются для передачи одного данного.

В i8086 в качестве КПДП выступала микросхема.

  1. 8237A – XT (содержит четыре канала с номерами 0 - 3, работает с одно байтовыми портами)

  2. 8237A – 5 - AT и выше (содержит две группы по четыре канала, первая как уXT (для поддержки), а вторая с шестнадцати битными портами).

Состав регистров и адресация 8237A.

00h – 07h номера регистров по каждому из каналов.

0Ah регистр маски разрешает и запрещает работу по каждому из каналов.

номера битов:

0, 1 – номер канала

2 – разрешить, запретить

3…7 – не используются

0Bh – регистр режима

номера битов:

0, 1 – номер канала

2, 3 – тип цикл DMA

00 – цикл проверки

01 – цикл занятости

10 – цикл чтения

11 – запрещенная комбинация

4 – режим инициализации

5 – направление приращения адреса

0 – увеличение

1 – уменьшение

6, 7 – режим обслуживания

00 – по требованию

01 – одиночная передача

10 – блочная передача

11 – каскодирование (использование двух уровневых контроллеров)

0Ch – сброс триггеров байта

0Eh – сброс регистра маски

81h…8Fh– регистры страниц, текущий адрес равен 16 бит, шина адреса и шина данных (прямого доступа к памяти) равны 20 бит, регистры страниц задают адрес страницы (старшие четыре бита адреса – работают с 1Мб.), одна страница – 64 Кб. . При прямом доступе к памяти переходит границы страницы.

Для 8237A-5-AT используются байтовые регистры станицы (24 бита) и появляется возможность адресовать до 16Мб оперативной памяти.

Расширенные возможности использования

специализированного процессора ввода-вывода.

Рисунок

Программные средства управления вводом-выводом.

Состав:

Схема

Две основных части управления данными и управления устройства.

Подсистема управления данными делится на четыре группы:

Блочно ориентированный ввод-вывод для файлов последовательного доступа.

Записе-ориентированный ввод-вывод для файлов прямого доступа.

Любая система управления устройством содержит три группы (см. на схеме управление устройствами).

Основные компоненты процедуры управления ввода-вывода общего вида.

  1. Подготовительная (инициализирующая) часть:

Формирование областей для хранения (объема) данными и создание указателей на эти области.

Указания типа и логического номера внешнего устройства.

Задание режима передачи данных и направление передачи.

Этот этап обычно реализует процессор, который осуществляет подготовку.

  1. Планирование, проверка готовности и запуск устройства.

Выбор канала

Выбор внешнего устройства.

Проверка готовности для выполнения операции

Запуск устройства для работы

Замена логического номера на физические адреса.

  1. Выполнение устройством операции ввода-вывода

Для реализации используются драйверы и программы управления данными

  1. Завершение операции ввода-вывода, следовательно освобождаются занимаемые области памяти и устройства, участвовавшие в операции.

Состав и реализация устанавливаемого драйвера символьного типа.

Возможны четыре варианта использования драйвера.

  1. Непосредственно написание драйвера на уровне битов портов ввода-вывода и включение его в собственную программу. Для одиночных редко используемых драйверов и специализированных машин (Бесперспективно).

  2. Подключение драйвера в оверлейном режиме (сокращение занимаемой области памяти).

  3. Написание драйвера как резидентный обработчик прерываний. Достоинство: доступно всем программам. Недостаток:как правило, доступен только из ассемблера.

  4. Создание установочного в операционной системе драйвера, который включает в файл конфигурации config.sysс помощью командыdevice = path\drive1

Хорош тем, что драйвер полностью обслуживается средствами операционной системы. Соответственно к нему применимы команды операционной системы:

copy a:\drive1 c:\drv

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

Установка драйверов:

Установки бывают двух типов: блочные и символьные.

Первая использует файловую организацию и передачу данных блоками (обычно применимо только для работы с дисковыми накопителями).

Вторая использует посимвольную передачу данных (она проще) и применима к любым внешним устройствам.

Символьный драйвер состоит из следующих элементов:

  1. Заголовок драйвера

  2. Процедура стратегии.

  3. Буфер запроса

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

  1. Заголовок драйвера (18 байт)

  1. Адрес следующего драйвера (4 байта)

  2. Атрибуты (2 байта)

  3. Смещение процедуры стратегии (2 байта)

  4. Смещение обработчика прерываний

  5. Имя устройства (8 байт)

Рисунок

Драйвер обычно записывается как самостоятельный модуль, но без PSP,поэтому не может запускаться самостоятельно.

Атрибуты:

15 бит :1- символьный драйвер

0 – блочный драйвер

14 бит :поддержкаIOCTL

13 бит: формат блоков

1 – IBM

0 – любой другой

………

3 бит:1 – часы

0 – не часы

2 бит : 1 – null

0 – неnull

1 бит:1 –STDOUT (стандарт вывода)

0 - STDIN (стандарт ввода)

  1. Процедуры стратегии.

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

DEV_STRAT:

mov cs:SEG_PQBF, es ;

mov cs:OFF_PQBF, es ;

ret

SEG_PQBF DW ?

OFF_PQBF DW ?

  1. Буфер запроса.

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

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

Заголовок запроса.

+0 :длина буфера запроса

+1 :код внешнего устройства

+2 : код команды ввода-вывода

+3 : статус

+5 : резерв

+13d :данные

  1. Обработчик прерывания.

Это только процедура , которая таблично вызывает функцию, реализующую команду ввода-вывода и завершается командой RETи выдачей статуса.

Рисунок

Код обработчика прерываний.

dev_intpr: push A

mov ax, SEG_PQBF ;

mov es, ax ;

mov bx, OFF_PQBF ;

mov al, es:[bx+2] ;

shl al, 1 ;

xor ah, ah ; Подготовка и загрузка

lea di, FUN_TAB ; смещения функции

add di, ax ; в таблицу функции

jmp word ptr[DI] ;

FUN_TAB LABEL WORD;

 DW INITIALIZE

 DW CHECK_MEDIA

 . . . . . . .

 DW INPUT_DATA

Тринадцать  . . . . . . .

функций  DW OUPUT_DATA

 . . . . . . .

 DW OUTPUT_STATUS

 . . . . . . .

 DW IOCTL_OUT

Определенная функция находится в определенной строке функции.

Предположим что драйвер поддерживает только две функции init иout, тогда:

CHECK_MEDIA:

. . . . . .

INPUT_DATA:

. . . . . .

IOCTL_OUT:

or es.word ptr[bx]+3, 8103h

JMP QUIT

INITIALIZE:

lea ax, E_O_P

mov es, word ptr[bx]+14, ax

mov es, word ptr[bx]+16, cs

JMP QUIT

OUTPUT_DATA

QUIT:

OR es:word ptr[bx]+3, 100h

POPA

RET

В поле статус, бит

15 – ошибка

9 – драйвер занят

8 – функция завершена

с 0 – 7 – код ошибки

Пример: 8103h означает 8 – ошибка , 1 – операция завершена, 03 – означает неизвестная ошибка

После разработки драйвера нужно вставить его в config.sys

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

64,1,62,3,60,5,58,7,56,9,54,11,52,13,50,15,48,17,46,19,44,21,42,23,40,25,38,27,36,29,34,31

2,63,4,61,6,59,8,57,10,55,12,53,14,51,16,49,18,47,20,45,22,43,24,41,26,39,28,37,30,35,32,33

65