Re[11]: Эльбрус
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 27.07.19 05:09
Оценка: :)
Здравствуйте, koandrew, Вы писали:

LVV>>В Интеле — отдельная адресация портов.

K>Она на практике почти не используется уже лет сто.
K>PCI Express например прямо запрещает их использовать:

Неправда.

Там сказано не "all BARs shall be memory" или аналог, а, дословно, "endpoint must not depend on operation system allocation of I/O resources". Ключевое — "operating system allocation" и "depend".
То есть OS не должна заниматься перераспределением I/O портов после начальной настройки (средствами BIOS). Для ресурсов на памяти такого ограничения не ставится.
Практически же на машинах с PCI Express продолжает активно использоваться I/O пространство. Вот с моего настольника:

00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I217-V (rev 0
5)
Subsystem: ASRock Incorporation Ethernet Connection I217-V
Flags: bus master, fast devsel, latency 0, IRQ 25
Memory at f3100000 (32-bit, non-prefetchable) [size=128K]
Memory at f3129000 (32-bit, non-prefetchable) [size=4K]
I/O ports at f040 [size=32]
Capabilities: [c8] Power Management version 2
Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [e0] PCI Advanced Features
Kernel driver in use: e1000e
Kernel modules: e1000e


Это встроенная, то есть тут нельзя сослаться на проблемы совместимости — если бы был запрет на I/O порты, её бы давно подточили, и у неё не было бы такого диапазона.

K>Помимо этого, для доступа ко всему конфигурационному пространству PCIe тоже необходимо использовать memory mapped IO.


Нет, не необходимо.
В отличие от первых 256 байт, стиль доступа к остальным не специфицирован собственно стандартом PCI.
Маппинг на память это стиль Intel. У AMD вместо этого расширен регистр по I/O адресу 0x0CF8.

K>Так что можешь смело забыть про то, что они существуют.


Не может.

K>Кстати, в ARMах и в RISC-V тоже используется только отображение в память.


Да, кроме x86 я и не помню, кто бы использовал отдельное I/O пространство. (Ну не вспоминаем чисто канальные архитектуры и прочие редкости.)
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.