реклама на сайте
подробности

 
 
> Последовательность танзакций PCI-Express, может ли быть нарушена последовательность транзакций
Kushtan
сообщение Mar 24 2008, 12:07
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 10-10-06
Пользователь №: 21 170



Возможно ли такое: данные, записываемые драйвером в устройство подключенное через PCI-express, будут приходить не по порядку. Т.е. может ли быть нарушена последовательность транзакций передачи данных по шине PCI-express из оперативной памяти. Если да, то с чем это связано.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
Harbour
сообщение Mar 25 2008, 04:30
Сообщение #2


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



эт смотря какой доступ к памяти (cpu/dma ?) - например процессоры шоб повысить производительность могут во время выполнения кода по своему усмотрению производить так называемые memory reordering операции, т.е. переставлять, откладывать на каких-либо стадиях конвеера, или комбинировать операции записи/чтения в/из памяти/портов - подробнее см linux/Documentation/memory-barriers.txt. тоже можно предположить и о некоторых dma движках
Go to the top of the page
 
+Quote Post
Kushtan
сообщение Mar 25 2008, 13:47
Сообщение #3





Группа: Новичок
Сообщений: 7
Регистрация: 10-10-06
Пользователь №: 21 170



Доступ к памяти через cpu(насколько я понимаю, dma не поддерживается root комплексом PCI-express), но будет ли процессор выполнять операцию чтения последовательных ячеек памяти не в порядке их следования? Ведь это будет снижать эффективность работы кэша! Если есть необходимо выполнить последовательность не связных обращений к памяти то это имеет смысл.
Go to the top of the page
 
+Quote Post
Harbour
сообщение Mar 26 2008, 06:39
Сообщение #4


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



именно для оптимизации работы кеша и еейной же разгрузки конвеера такие перестановки потока исполнения и производятся - не все 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
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Mar 30 2008, 17:50
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(Kushtan @ Mar 24 2008, 15:07) *
Возможно ли такое: данные, записываемые драйвером в устройство подключенное через PCI-express, будут приходить не по порядку. Т.е. может ли быть нарушена последовательность транзакций передачи данных по шине PCI-express из оперативной памяти. Если да, то с чем это связано.

Зависит от бита Relaxed Ordering устанавливаемого устройством. Последовательность танзакцией в устройство нарушена быть не может, но пакеты данными, которые запросило устройство, могут обогнать пакеты с данными, которые переправляет в устройство хост.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 02:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01363 секунд с 7
ELECTRONIX ©2004-2016