Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Hе находит сидюк при установке!   Dmitry Pankov   30 Aug 2004 22:41:52 
 Re: Hе находит сидюк при установке!   Ivan Omelchenko   31 Aug 2004 11:25:30 
 Re: Hе находит сидюк при установке!   Valentin Nechayev   31 Aug 2004 11:31:42 
 Re: Hе находит сидюк при установке!   Ivan Omelchenko   31 Aug 2004 11:45:32 
 Re: Hе находит сидюк при установке!   Alexander Y. Yeikovich   31 Aug 2004 11:48:35 
 Re: Hе находит сидюк при установке!   Cyrill Malevanov   31 Aug 2004 14:13:49 
 Re: Hе находит сидюк при установке!   Alexander Y. Yeikovich   31 Aug 2004 16:45:49 
 Re: Hе находит сидюк при установке!   Cyrill Malevanov   01 Sep 2004 12:43:07 
 Re: Hе находит сидюк при установке!   Valentin Nechayev   04 Sep 2004 14:45:54 
 Re: Hе находит сидюк при установке!   Valentin Davydov   02 Sep 2004 15:09:37 
 Re: Hе находит сидюк при установке!   Valentin Nechayev   04 Sep 2004 14:00:02 
 Re: Hе находит сидюк при установке!   Valentin Davydov   02 Sep 2004 15:09:42 
Архивное /ru.unix.bsd/22383f739bf02.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional