|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Valentin Nechayev 2:5020/400 04 Sep 2004 14:45:54 To : Cyrill Malevanov Subject : Re: Hе находит сидюк при установке! -------------------------------------------------------------------------------- >>> Cyrill Malevanov wrote: CM> Если все работает в ПИО - то все плохо. CM> "Эй, контроллер! Скопируй 512 байт сюда и пни меня!" CM> "Ага" CM> ... CM> "Вот, скопировал" CM> "Эй, контроллер! Скопируй 512 байт сюда и пни меня!" CM> "Ага" CM> ... Это Вы какую-то фантастику рассказываете, однако. PIO работает не так. В PIO отдается команда, а когда прочтены данные - процессор сам копирует их по шине. Вот код (для i386): static __inline void insb(u_int port, void *addr, size_t cnt) { __asm __volatile("cld; rep; insb" : "+D" (addr), "+c" (cnt) : "d" (port) : "memory"); } До этого доходит через разнообразные bus_space_read*(). В результате процессор 1) тратится на чтение из порта, 2) тратится на запись в память. CM> Если в дма - CM> "Контроллер! копируй от меня и до обеда вот сюда" CM> "Ага" И чем это лучше предыдущего Вашего описания? CM> ... CM> "Контроллер, ты там как?" CM> "Еще копирую" CM> "Hу, копируй, копируй" CM> ... CM> "Ты там как?" И кто и зачем будет задавать вопросы контроллеру? Драйвер ждет прерывания. Контроллер он не пинает. CM> В первом случае большая нагрузка на процессор. Если есть два устройства - то CM> и процессор и контроллер - "я така затуркана, така затуркана". В дма CM> - контроллеру поступают данные. Если данных не хватает на заполнение канала CM> (шлейфа) - то без разницы, сколько устройств. Как на сети, по сути дела - CM> одна сетевуха, два клиента шлют на нее данные. Если они не забивают CM> пропускную способность сети - то все путем. Да, при приближении к максимуму CM> растет число коллизий. Если это изложить более последовательно - может, что-то осмысленное и получится. -netch- --- ifmail v.2.15dev5.3 * Origin: Dark side of coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/22383f739bf02.html, оценка из 5, голосов 10
|