Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Из Википедии — свободной энциклопедии

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

Во многих моделях процессоров ввод-вывод организуется теми же функциями, что и чтение-запись в память — так называемый «ввод-вывод через память». Соответственно, схемотехнически устройства ввода-вывода располагаются на шине памяти, и часть адресов памяти направляется на ввод-вывод. В процессорах Intel, микроконтроллерах AVR и некоторых других существуют отдельные команды для ввода-вывода — IN и OUT — и, соответственно, отдельное адресное пространство: в процессорах Intel — от 000016 до FFFF16.

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

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

Ввод-вывод через память никак не связан с прямым доступом к памяти; ПДП (DMA) — отдельное схемное решение, связывающее шину ввода-вывода с контроллером памяти и разгружающее процессор на крупных операциях ввода-вывода. В машине с ПДП, чтобы записать блок памяти, например, на диск, надо сформировать этот блок в памяти, а затем операциями ввода-вывода (либо через порт, либо через специальный адрес памяти, в зависимости от архитектуры) отправить команду «Начать запись». Когда запись будет закончена, устройство каким-то образом предупредит процессор об этом (например, прерыванием). В частности, известные любому знакомому с DOS три параметра SoundBlaster — порт, DMA и IRQ — указывают, как передавать звуковой плате команды, как она будет брать звуковую волну из памяти и как плата сообщит процессору, что отрезок волны проигран.

Энциклопедичный YouTube

  • 1/3
    Просмотров:
    3 729
    8 519
    785
  • Программирование микроконтроллеров: Урок 3. Порт ввода - вывода
  • Лекция 322. Atmega 8: Порты ввода-вывода
  • 09 - Операционные системы. Ввод и вывод

Субтитры

Порты или память?

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

  • Возможна совсем другая схемотехническая организация ввода-вывода.
  • Человек, читающий ассемблерный листинг, сразу же видит, что это работа не с памятью, а с внешним устройством.
  • Всё адресное пространство машины можно пустить на ОЗУ, без всяких «дыр» наподобие UMB.
  • Для машин низкой разрядности, у которых адрес в памяти задаётся регистровой парой, а на порт хватает и одного регистра, ускоряется работа с внешними устройствами.

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

  • Упрощение конструкции процессора.
  • Более широкий набор возможных инструкций: все инструкции, способные записать данные в память, в том числе автоинкрементные и SIMD, могут заниматься вводом-выводом.
  • Удобнее работа с функциями, оперирующими большими объёмами данных (например, чтение-запись на диск, в видеоадаптер).

Порты в архитектуре IA-32

Процессор позволяет осуществлять ввод-вывод как через память, так и через порты. Доступ к портам осуществляется особыми командами IN, INS, INSB, INSW, INSD, OUT, OUTS, OUTSB, OUTSW и OUTSD; доступ к памяти — обычными функциями работы с памятью (MOV, ADD, LODSB и прочими). Два последовательных порта могут объединяться в один двухбайтовый порт, четыре — в один четырёхбайтовый. Как и с памятью, для максимальной производительности номера портов должны быть выровнены соответственно по 2- и 4-байтовой границе. Если требуется записывать данные в два соседних порта в определённом порядке, этого нельзя делать многобайтовыми командами (на выровненных портах ввод-вывод происходит параллельно, на невыровненных — порядок вызова не определён).

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

Физически адрес порта подаётся через ту же адресную шину, что и адрес памяти. В процессорах Intel архитектуры x86 (до Pentium) была линия MI/O# (1 — память, 0 — порт); в более поздних эту функцию выполняют линии запроса команды.

Примечания

Эта страница в последний раз была отредактирована 18 марта 2024 в 00:23.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).