LINUX.ORG.RU

История изменений

Исправление Iron_Bug, (текущая версия) :

ты не сможешь копировать быстрее, чем заполняется DMA. она для того и сделана, чтобы не было возни на стороне софта. обычно схема такая: железо сливает данные в DMA и выставляет каким-то образом (прерывания, мэйлбоксы) сигнал о том, что данные в память залиты, и адреса начала и конца данных. драйвер получает адрес и работает с ним напрямую, никуда не копируя данные, а просто отображая память на адреса юзерских приложений и передавая им смещения в этом мапе.

и да, PCI чипы уже лет десять как не производят. так что лучше сразу закладываться на PCIe.

Исправление Iron_Bug, :

ты не сможешь копировать быстрее, чем заполняется DMA. она для того и сделана, чтобы не было возни на стороне софта. обычно схема такая: железо сливает данные в DMA и выставляет каким-то образом (прерывания, мэйлбоксы) сигнал о том, что данные в память залиты, и адреса начала и конца данных. драйвер получает адрес и работает с ним напрямую, никуда не копируя данные, а просто отображая память на адреса юзерских приложений и передавая им смещения в этом мапе.

и да, PCI мосты уже лет десять как не производят. так что лучше сразу закладываться на PCIe.

Исправление Iron_Bug, :

ты не сможешь копировать быстрее, чем заполняется DMA. она для того и сделана, чтобы не было возни на стороне софта. обычно схема такая: железо сливает данные в DMA и выставляет каким-то образом (прерывания, мэйлбоксы) сигнал о том, что данные в память залиты, и адреса начала и конца данных. драйвер получает адрес и работает с ним напрямую, никуда не копируя данные, а просто отображая память на адреса юзерских приложений и передавая им смещения в этом мапе.

Исходная версия Iron_Bug, :

ты не сможешь копировать быстрее, чем заполняется DMA. она для того и сделана, чтобы не было возни на стороне софта. обычно схема такая: железо сливает данные в DMA и выставляет каким-то образом (прерывания, мэйлбоксы) сигнал о том, что данные в память залиты и адреса начала и конца данных. драйвер получает адрес и работает с ним напрямую, никуда не копируя данные, а просто отображая память на адреса юзерских приложений и передавая им смещения в этом мапе.