Nable писал(а):
Причём тут требования к непрерывности буфера и использование DMA?
Так ты просто так вопрос задал, или по поводу нашей темы, а если бы ты читал нашу тему, то понял бы, что речь шла о том, нужна ли функция получения нескольких страниц расположенных в памяти непрерывно только для DMA(больше она нам незачем), а я и предположил, что для DMA она тоже уже не нужна, т.к. более менее современным устройствам пойдут и страницы для их работы.
По поводу работы устройств я кстати тоже много писал и отказаться от DMA речи быть не может, что за мысли у тебя в голове?
Цитата:
Да, у меня тоже очень много пробелов в знаниях, а уж сколько глупых заблуждений и просто незнания было ликвидировано за последние полтора года (и ещё предстоит) - вообще стыдно вспоминать.
Я собственно полтора года этим и занимаюсь и абсолютно не боюсь ошибаться и ни кому не завидую, и не комплексую, у тебя по моему всё наоборот, но тем не менее я один уже сделал то, что не могла сделать команда разработчиков, например, КолибриОС за много лет, взяв уже работающую ОС, а я с ноля.
Цитата:
К чему вот были все эти рассуждения про байтопетушение, если суть одна: благодаря DMA устройство само заполняет буферы (и иногда само читает команды из очереди команд, но это не так интересно) и не нужно тратить процессорное время на выковыривание данных через PIO/MMIO? Если не использовать DMA, то ты ж офигеешь как производительность падает.
А с пониманием действительно туго, видимо это не приоритет для человека(тем самым лажается поболе моего), я только что писал, что даже если устройство работает в DMA то его непрерывный буфер заставляет выцарапывать побайтово данные, а если у устройства буфер из блоков, то мы просто меняем адреса, т.е. забираем блок с данными а отдаём пустой. В этом случае так же не нужна функция поиска непрерывного участка для буфера устройства.