Рефераты. Адресное пространство. Подсистемы ввода-вывода

Виды интерфейсов

Интерфейс «общая шина» (UNIBUS)

Реализовано в PDP-11 (DEC).

Максимально универсальна.

Этот интерфейс предполагает, что все устройства примерно одинаковы. Вывод идет со скоростью «самого медленного солдата» - все определяется самым медленным устройством.

Шина ISA

ISA (Industry Standard Architecture) - применяется с первых моделей PC.

ISA-8 (8 бит данных и 20 бит адреса) и ISA-16 (16 бит данных и 24 бит адреса).

Частота системной шины - до 8 МГц.

Существует расширение до 32 бит - EISA (совместима, для режима EISA используются специальные управляющие сигналы) - 32 бит адрес и данные, частота до 33 МГц.

Шина PCI

PCI (Peripheral Component Interconnect) - локальная шина, являющаяся мостом между шиной процессора и шиной ввода/вывода ISA/EISA.

Разрядность данных - 32/64 бит. Разрядность адреса - 32 бит. Частота - 33/66 МГц.

Шина является синхронной.

На ее базе существуют расширения (например AGP).

Шина VLB

VLB (VESA Local Bus) - использует шину процессора для подключения периферии (графический адаптер, контроллеры дисков и т.д.).

32-битная шина (32/64 - данные, 32 - адрес), частота колеблется от 33 до 50 МГц.

Шина MassBus

MassBus - высокоскоростная синхронная блочная шина.

Использовалась на VAX-11 (DEC).

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

Интерфейс системной шины. Асинхронная шина

Инициатор - ЦП. Взаимодействие происходит с одним устройством.

Любое устройство - дешифратор адреса (ДША). Обладает диапазоном адресов.

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

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

Синхронная шина

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

Цикл шины делится на фазы фиксированного времени.

Фаза адреса (ФА): длина - не менее 2-х тактов, чтобы приемники смогли «засечь» адрес.

Фаза ожидания (ФО): пока ВУ не выдает данные на шину. ФО имеет стандартный фиксированный размер.

Все ВУ должны успевать за ФО дешифровать адреса, выбрать данные и т.д. Иначе они не смогут работать с этой шиной.

Фаза данных - на шину выставляются данные.

Но все устройства имеют разное быстродействие. Для этого заводится сигнал wait state (WS). Он устанавливается до фазы данных - в середине ФО. ЦП, получив сигнал WS (медленное устройство), продлевает ФО еще на один такт.

Есть также сигнал High Speed (например, для ОП) - от ФО отнимается один такт.

IO/Mem - определяет, это порт ввода-вывода или адрес памяти.

Высокочастотные шины

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

Применяется код Хэмминга:

Завершающие три бита формируются по восьми.

2 бита - diagnostics, 1 бит - modify

Если испорчен один бит, код Хэмминга поможет его восстановить, если два - устранить ошибку.

Контроль паритета [выявит] только одну ошибку. Биты дополняются еще одним - четность/нечетность.

Если к устройству пришел неверный адрес, оно выставляет на шину сигнал ошибки. На высокочастотных шинах появляются:

- Фаза ожидания ошибки адреса

- Фаза ожидания данных

Т.к. ошибки появляются [редко], в эти фазы все просто чего-то ждут, обмена по шине нет.

Разделение шины между несколькими ЦП

Эффективность шины очень мала:

1) Большую часть времени на шине ничего не происходит.

2) Даже во время активности шины не все провода используются одновременно.

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

Предыдущий ЦП освободил шину - следующий ее занимает. Такие шины называются транзакционными.

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

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

П просит АШ выдать ему шину. Если несколько запросов, АШ по какому-то алгоритму выделяет шину конкретному ЦП.

ЦП тогда начинает анализировать сигнал Busy.

Использование кэш

Когда мы общаемся с ВУ, должны на шину выставить адрес.

В некоторых системах:

Старшие разряды шины служат для адресации регистров ВУ.

Когда мы даем команду «писать в регистр», данные оседают в кэш. Если после этого будет дана команда «читать кэш», прочитаны данные будут прочитаны из кэша! Что неверно!

КЭШ предназначен для устройств, обладающих только свойством хранения (например, ОП). А любое ВУ обладает еще какой-нибудь функцией (при этом совсем не обязательно ему обладать функцией хранения). Например, видеопамять - хранение и отображение.

Кэш не может отличить память ВУ от ОП. От нас потребуется соответствующее управление. Надо обращение к регистрам делать отличным от обращения к ОП.

- Шина адресов

- Шина ВУстройств

То есть, делаем логическую шину, отличную от адресной.

В Intel ввели специальные инструкции - in и out. ЦП четко различает (по коду) команда работы с памятью и с портами. Обращения к ВУ не кэшируются.

Есть еще одна проблема: в случае большой памяти ВУ.

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

1-е решение: сигнал кэшу сбросить всю свою память перед выполнением обмена с памятью. Но сбросятся все таблицы страниц! В ЦП УПА управляет адресацией с помощью таблицы страничных преобразований.

2-е решение: для каждой страницы 2 бита: «запрет кэширования» и «кэширование только при чтении»

Способы подключения ВУ к ВС. Использование контроллера ввода/вывода

КВУ знает протокол СШ и подключается к ней. С другой стороны он подключается к ВУ, т.е. должен знать интерфейс ВУ.

Управляющими объектами (ВУ-ва) являются регистры и память. ВУ отображает их на виртуальное АП.

Если устройство быстрое и большие объемы передаваемых данных - используется резидентная память (существует два механизма - прямой доступ к памяти и отображение памяти).

Если медленное устройство и малые объемы передачи данных - используются регистры ВУ.

Как же КВУ интерпретирует адрес, выставленный на шину?..

Используются регистры:

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

КВУ дешевы и достаточно универсальны.

Недостаток: они реализованы в виде фиксированной логики. Логику работы изменить нельзя!

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

Механизм сопроцессора

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

Сопроцессор имеет собственную систему команд, ему требуется помощь ЦП для организации работы.

1) Сопроцессор должен отличать циклы шины ЦП от своих циклов шины.

2) ЦП также должен отличать циклы шины сопроцессора от своих.

Escape-признак - это префикс команды.

Если команда, встречаемая ЦП имеет такой префикс, ЦП ее пропускает. Сопроцессор выполняет команды, следующие за признаком Escape.

Недостаток: нельзя изолировать поток команд сопроцессора от потока команд ЦП (в поток команд ЦП входят команды сопроцессора).

Тогда применяются процессоры ввода/вывода (ПВВ).

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

Отличие ПВВ от ЦП: ЦП никогда не останавливается. ПВВ останавливается по завершению операции.

ПВВ часто называют канальным процессором, а его программу - канальной программой.

Применяются для управления [произвольным] оборудованием (нужно только загрузить нужную программу) (например, в Mainframe'ах IBM).

Механизмы управления ВУ-ми через контроллеры. Управление через отображение регистров и адресов памяти на СШ

Самый простой способ.

Драйвер ВУ должен знать, какой регистр за что отвечает. Драйвер может в любой момент времени обратиться к любому регистру.

Преимущества:

- разработчик драйвера наиболее свободен в выборе - когда и что делать;

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

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

Следовательно, нужно экономить регистры! (см. след. тему).

Механизм косвенной адресации

Число регистров в КВУ уменьшить невозможно (сколько есть, столько есть). Регистры эти имеют некоторые адреса внутри КВУ и не отображаются на шину.

На шину отображаются два регистра - регистр номера регистра и регистр данных.

Алгоритм работы:

Надо сгенерировать два цикла шины:

Цикл 1: число, обозначающее номер регистра в рег. # регистра.

Страницы: 1, 2, 3, 4, 5, 6



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.