Kushtan 0 24 марта, 2008 Опубликовано 24 марта, 2008 · Жалоба Возможно ли такое: данные, записываемые драйвером в устройство подключенное через PCI-express, будут приходить не по порядку. Т.е. может ли быть нарушена последовательность транзакций передачи данных по шине PCI-express из оперативной памяти. Если да, то с чем это связано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbour 0 25 марта, 2008 Опубликовано 25 марта, 2008 · Жалоба эт смотря какой доступ к памяти (cpu/dma ?) - например процессоры шоб повысить производительность могут во время выполнения кода по своему усмотрению производить так называемые memory reordering операции, т.е. переставлять, откладывать на каких-либо стадиях конвеера, или комбинировать операции записи/чтения в/из памяти/портов - подробнее см linux/Documentation/memory-barriers.txt. тоже можно предположить и о некоторых dma движках Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kushtan 0 25 марта, 2008 Опубликовано 25 марта, 2008 · Жалоба Доступ к памяти через cpu(насколько я понимаю, dma не поддерживается root комплексом PCI-express), но будет ли процессор выполнять операцию чтения последовательных ячеек памяти не в порядке их следования? Ведь это будет снижать эффективность работы кэша! Если есть необходимо выполнить последовательность не связных обращений к памяти то это имеет смысл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbour 0 26 марта, 2008 Опубликовано 26 марта, 2008 · Жалоба именно для оптимизации работы кеша и еейной же разгрузки конвеера такие перестановки потока исполнения и производятся - не все 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 0 30 марта, 2008 Опубликовано 30 марта, 2008 · Жалоба Возможно ли такое: данные, записываемые драйвером в устройство подключенное через PCI-express, будут приходить не по порядку. Т.е. может ли быть нарушена последовательность транзакций передачи данных по шине PCI-express из оперативной памяти. Если да, то с чем это связано. Зависит от бита Relaxed Ordering устанавливаемого устройством. Последовательность танзакцией в устройство нарушена быть не может, но пакеты данными, которые запросило устройство, могут обогнать пакеты с данными, которые переправляет в устройство хост. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться