Составители:
26
В процессорах семейства Intel x86 используется раздельное адресное
пространство оперативной памяти и портов ввода-вывода. В таком случае есть
специальный класс инструкций в системе команд для взаимодействия с
устройствами ввода-вывода. Например, в процессорах семейства Intel x86 это
команды IN и OUT, при помощи которых можно читать и писать от 1 до 4
байтов из/в УВВ. Существует
два вида команд ввода-вывода:
1. Команды, выполняющие пересылку отдельного элемента (байта, слова
или двойного слова) в регистр или из регистра (для x86 IN, OUT). Они
адресуют порты ввода-вывода либо напрямую, по адресу одного из
портов, задаваемому непосредственно в команде, либо косвенно, при
помощи адреса в регистре. Эти команды синхронизируют выполнение
программы
с работой внешнего аппаратного обеспечения. Буферы
записи процессора очищаются, а выполнение программы откладывается
до тех пор, пока не будет получен сигнал готовности (ready) последнего
цикла шины.
2. Команды, пересылающие строки элементов (строки байт, слов или
двойных слов), расположенных в памяти. Эти команды называются
«строковыми командами ввода-вывода» или «блочными командами
ввода-
вывода» (для x86 INS, OUTS).
Кроме того, для отдельного адресного пространства может быть отдельная
шина адреса.
Достоинства
Экономичное решение для процессоров со скромными емкостями памяти и
адресными пространствами. Меньшая разрядность адреса дает меньшую
разрядность команды. Раздельное адресное пространство – решение проблемы
замедления обращения к основной памяти из-за активного ввода-вывода.
Недостатки
Ограничение в командах
: чаще всего только загрузить из порта ввода-
вывода в регистр процессора и обратно. Любая арифметическая, логическая
операция над данными порта превращается как минимум в три инструкции.
Недостатком дополнительного адресного пространства является уменьшение
регулярности процессов обращения к памяти, что в свою очередь усложняет
оптимизацию архитектуры микроконтроллера с точки зрения увеличения
производительности.
1.2.5.2 Организация конфигурируемых параллельных портов ввода-
вывода
Порты ввода-вывода (GPIO) современных микроконтроллеров являются
сложными, многофункциональными устройствами. Практически каждый GPIO
можно настроить как порт ввода (тогда он будет иметь высокое входное
сопротивление) или порт вывода (тогда, мы получим возможность выдавать на
Страницы
- « первая
- ‹ предыдущая
- …
- 25
- 26
- 27
- 28
- 29
- …
- следующая ›
- последняя »
