Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Последовательность танзакций PCI-Express
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > ISA/PCI/PCI-X/PCI Express
Kushtan
Возможно ли такое: данные, записываемые драйвером в устройство подключенное через PCI-express, будут приходить не по порядку. Т.е. может ли быть нарушена последовательность транзакций передачи данных по шине PCI-express из оперативной памяти. Если да, то с чем это связано.
Harbour
эт смотря какой доступ к памяти (cpu/dma ?) - например процессоры шоб повысить производительность могут во время выполнения кода по своему усмотрению производить так называемые memory reordering операции, т.е. переставлять, откладывать на каких-либо стадиях конвеера, или комбинировать операции записи/чтения в/из памяти/портов - подробнее см linux/Documentation/memory-barriers.txt. тоже можно предположить и о некоторых dma движках
Kushtan
Доступ к памяти через cpu(насколько я понимаю, dma не поддерживается root комплексом PCI-express), но будет ли процессор выполнять операцию чтения последовательных ячеек памяти не в порядке их следования? Ведь это будет снижать эффективность работы кэша! Если есть необходимо выполнить последовательность не связных обращений к памяти то это имеет смысл.
Harbour
именно для оптимизации работы кеша и еейной же разгрузки конвеера такие перестановки потока исполнения и производятся - не все cpu умеют это делать - x86 for ex. умеет это только для операций ввода/вывода (inp/outp). вышеприведенный документик лучше все-таки почитать - там описаны возможные сценарии в многопроцессорных системах, коих сейчас становится все больше и больше. или см соответствующие man'ы по cpu, для x86 это будет :

IA-32 Intel Architecture Software Developer's Manual, Volume 3:
System Programming Guide
Chapter 7.1: Locked Atomic Operations
Chapter 7.2: Memory Ordering
Chapter 7.4: Serializing Instructions

AMD64 Architecture Programmer's Manual Volume 2: System Programming
Chapter 7.1: Memory-Access Ordering
Chapter 7.4: Buffering and Combining Memory Writes
dmitry-tomsk
Цитата(Kushtan @ Mar 24 2008, 15:07) *
Возможно ли такое: данные, записываемые драйвером в устройство подключенное через PCI-express, будут приходить не по порядку. Т.е. может ли быть нарушена последовательность транзакций передачи данных по шине PCI-express из оперативной памяти. Если да, то с чем это связано.

Зависит от бита Relaxed Ordering устанавливаемого устройством. Последовательность танзакцией в устройство нарушена быть не может, но пакеты данными, которые запросило устройство, могут обогнать пакеты с данными, которые переправляет в устройство хост.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.