Перейти к содержанию
    

Последовательность танзакций PCI-Express

Возможно ли такое: данные, записываемые драйвером в устройство подключенное через PCI-express, будут приходить не по порядку. Т.е. может ли быть нарушена последовательность транзакций передачи данных по шине PCI-express из оперативной памяти. Если да, то с чем это связано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

эт смотря какой доступ к памяти (cpu/dma ?) - например процессоры шоб повысить производительность могут во время выполнения кода по своему усмотрению производить так называемые memory reordering операции, т.е. переставлять, откладывать на каких-либо стадиях конвеера, или комбинировать операции записи/чтения в/из памяти/портов - подробнее см linux/Documentation/memory-barriers.txt. тоже можно предположить и о некоторых dma движках

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Доступ к памяти через cpu(насколько я понимаю, dma не поддерживается root комплексом PCI-express), но будет ли процессор выполнять операцию чтения последовательных ячеек памяти не в порядке их следования? Ведь это будет снижать эффективность работы кэша! Если есть необходимо выполнить последовательность не связных обращений к памяти то это имеет смысл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

именно для оптимизации работы кеша и еейной же разгрузки конвеера такие перестановки потока исполнения и производятся - не все 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возможно ли такое: данные, записываемые драйвером в устройство подключенное через PCI-express, будут приходить не по порядку. Т.е. может ли быть нарушена последовательность транзакций передачи данных по шине PCI-express из оперативной памяти. Если да, то с чем это связано.

Зависит от бита Relaxed Ordering устанавливаемого устройством. Последовательность танзакцией в устройство нарушена быть не может, но пакеты данными, которые запросило устройство, могут обогнать пакеты с данными, которые переправляет в устройство хост.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...