русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Адресное пространство ввода/вывода


Дата добавления: 2015-06-12; просмотров: 1997; Нарушение авторских прав


Процессор i486 обеспечивает отдельное адресное пространство ввода/вывода, отличное от адресного пространства физической памяти, в которое могут быть помещены порты ввода/вывода. Адресное пространство ввода/вывода состоит из 2**16 (64К) индивидуально адресуемых 8-битовых портов; любые два последовательно расположенные 8-битовые порта могут рассматриваться как один 16-битовый порт, а любые четыре - как один 32-битовый порт. Если порт пересекает границу между двумя двойными словами физической памяти, то используются лишние циклы шины.

Штырек M/IO# процессора i486 указывает, когда происходит цикл шины обращения к адресному пространству ввода/вывода. При использовании отдельного адресного пространства ввода/вывода ответственность за применение данного сигнала для выбора портов ввода/вывода вместо памяти лежит на разработчике аппаратного обеспечения. Действительно, использование отдельного адресного пространства ввода/вывода упрощает аппаратную конструкцию системы, поскольку выбор этих портов может быть выполнен одним сигналом: в отличие от других процессоров, здесь не требуется декодировать сигналы нескольких проводов шины старшего адреса для установки отдельного адресного пространства ввода/вывода.

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

  • 256 8-битовых портов с нумерацией от 0 до 255.
  • 128 16-битовых портов с нумерацией 0, 2, 4, ... ,252, 254.
  • 64 32-битовых порта с нумерацией 0,4,8, ... , 248,252

Используя значение регистра DX, программа может задать:

  • 8-битовые порты с нумерацией от 0 до 65535.
  • 16-битовые порты с нумерацией 0,2,4, ... ,65532,65534.
  • 32-битовые порты с нумерацией 0,4,8, ... ,65528,65532.

Процессор i486 может пересылать по 8, 16 или 32 бита в устройство, отображаемое в пространстве ввода/вывода. Подобно словам в памяти, 16-битовые порты должны быть выравнены по четным адресам, таким образом, чтобы все 16 битов могли быть пересланы за один цикл шины. Подобно двойным словам в памяти, 32 -битовые порты должны быть выравнены по границе адресов, кратным четырем. Процессор поддерживает пересылку и к невыравненным портам, но тогда происходит уменьшение быстродействия за счет лишнего цикла шины.



Команды IN и OUT пересылают данные между регистром и портом в адресном пространстве ввода/вывода. Команды INS и OUTS пересылают строки данных между адресным пространством памяти и портами в адресном пространстве ввода/вывода.

Адеса портов ввода/вывода от 0F8H до 0FFH резервируются для внутреннего использования Intel. Не назначайте порты ввода/вывода на эти адреса. Точная последовательность циклов шины при доступе к портам, требующим более одного цикла, не определена. Например, команда OUT, загружающая невыравненный порт размером в двойное слово в адрес памяти 2H, выполняет доступ к слову по адресу 4H раньше, чем доступ к слову по адресу 2H. Точная последовательность не определена, и не гарантируется ее сохранение следующими продуктами Intel.

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

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



<== предыдущая лекция | следующая лекция ==>
Адресация ввода/вывода | Ввод/вывод, управляемый памятью


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.261 сек.