На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
Страницы: (51) « Первая ... 37 38 [39] 40 41 ...  50 51  ( Перейти к последнему сообщению )  
> Желающим USB под ДОС , Welcome!!!
    Цитата StasNewOs @
    Это как?

    Это так: получаешь физические адреса всех страниц и заполняешь ими соответствуюшие структуры контроллера. Именно так всегда и делается.
    Сообщение отредактировано: shm -
      Какие структуры, оооо как всё запущено. Ты о чём вообще?
        Цитата StasNewOs @
        Какие структуры, оооо как всё запущено

        Зарпущено, по видимому, все у тебя раз в процессе копипастинга примеров в свои сорцы ты так и не удосужился посмотреть как это работает. Конкретно у хост-контроллеров это ТД, у IDE это PRDT, у GPU вообще свой аналог виртуальной памяти есть, и так далее для всех девайсов...
        Сообщение отредактировано: shm -
          Какой копипастинг, я понимаю что ты имееш в виду(хотя с трудом), но проблема в том, что во первых я говорил это же, во вторых то, что ты пытался сказать ни кто бы ни понял.
          Ты видимо думаеш одно, а пишеш другое, причём путая определения и забывая печатать несколько слов.
          Или у меня плохо с пониманием, не знаю.
          Сообщение отредактировано: StasNewOs -
            Цитата StasNewOs @
            что во первых я говорил это же

            Цитата StasNewOs @
            или страницы физически друг за другом это не так и трудно.

            Я просил вообще-то в чем смысл этого?
            Цитата StasNewOs @
            во вторых то, что ты пытался сказать ни кто бы ни понял.

            Что я сказал не так?
              Цитата shm @
              Это так: получаешь физические адреса всех страниц и заполняешь ими соответствуюшие структуры контроллера.

              Структуры ты имел в виду список команд, в которых адрес кластера(грубо говоря), который копируется в страницу реальной памяти.
              Во первых это все понимают, во вторых с твоих слов этого не понять, в третьих зачем делать такие непонятные ситуации и писать о том, что уже разобрали да и ещё так не понятно.
              Сообщение отредактировано: StasNewOs -
                Цитата StasNewOs @
                Структуры ты имел в виду список команд

                В общем случае - нет. Я имел ввиду именно управляющие структуры девайсов, где заполняются адреса физической памяти (иногда и размер) для передачи данных по DMA. Мне всегда казалось, что человек работавший с "железом" без проблем должен был понять смысл той фразы без лишнего разжевывания.
                Короче завязывем с фоффтопом, если будут личные вопросы, то пиши в ПМ.
                Сообщение отредактировано: shm -
                  Устройств с DMA очень много разных и по твоим словам у них у всех есть какие то тайные структуры, в которые можно забить адреса на каталоги страниц и их размеры, но только иногда и для передачи данных или смс. Это всё, что я к сожалению понял, видимо я тупой, ты меня в этом почти убедил, а может и наоборот.
                    Цитата StasNewOs @
                    Устройств с DMA очень много разных

                    Но все совместимы c paging'ом.
                    Цитата StasNewOs @
                    у них у всех есть какие то тайные структуры

                    Да.
                    Цитата StasNewOs @
                    в которые можно забить адреса на каталоги страниц

                    Где я что-либо писал про адреса на каталог страниц?
                    Цитата StasNewOs @
                    но только иногда и для передачи данных или смс.

                    :wacko:
                    Цитата StasNewOs @
                    Это всё, что я к сожалению понял, видимо я тупой, ты меня в этом почти убедил, а может и наоборот.

                    Надо уметь слушать критику, тем более сам ввязался в разговор. Также не надо считать себя самым умным в споре, совсем недавно ты непризнавал вообще значимость paging'а а теперь уже расскуждаешь тут как эксперт.
                      Цитата shm @
                      Это понятно, меня итересуют контретные значения. А сколько я потеряю в скорости если для каждой конечной точки будут постоянно висеть в списке свои QH. У меня складывается впечатление, что разработчики EHCI предполагали именно такую архитектуру. Сейчас у меня скороть работы с флешкой примерно такая же как в винде.

                      Насчет архитектуры - да, я тоже так думаю. По всей видимости, предполагается постоянно существующая очередь QH, которые по мере надобности становятся то активными, то неактивными. А неактивные QH не должны существенно влиять на скорость передачи данных - потери там только на чтение их из памяти и проверку битов активности. Но сам лично я это не проверял.
                        Цитата zakharo @
                        А неактивные QH не должны существенно влиять на скорость передачи данных - потери там только на чтение их из памяти и проверку битов активности. Но сам лично я это не проверял.

                        Эх.. Ну может быть в перспективе попробую сам протестировать, т.к. так работать значительно удобнее. До этого меня по мимо лени останавливало предположение, что конролллер будет тратить микрофреймы на обход неактивных QH.
                        Сообщение отредактировано: shm -
                          Про устройства DMA могу сказать, что в простейшем случае у них есть один адрес памяти, и тогда мы должны работать внутри одной страницы, если конечно, не собираемся этот адрес все время менять. А контроллеру EHCI можно задавать 5 адресов разных страниц в каждом QTD и читать сразу 20 Кб информации в одном QTD.
                          Макс. длину КТ контроллер учитывает сам (она же задается в QH), то есть совершенно не обязательно делать свой QTD на каждые 512 байт.
                            Я думаю, самое разумное (если позволяет память конечно), передавать массывы данных блоками по 16Кб на TD, т.к. адрес может быть не выравнен по странице. По крайней мере в таком варианте я получил вполне приемлемую (т.е. такую же как в винде :) ) скорость обмена.

                            Добавлено
                            Кстати, вот по поводу "автоматического" разбиения всех данных по размеру КТ передаваемых через TD, тут есть интересный нюанс с контролем триггера данных, я по привычке (UHCI) после каждого TD инвертировал его и, когда стал передавать нечто большее размера конечно точки сталкнулся игнорированием конроллемром некоторых моих DT (причем меня удивил тот факт, что контроллер в такой ситуации не выставлял STALL и не стимал бит активности). Тепрь при формировании TD я просчитываю сколько раз конроллер инвертирует триггер. полностью аппаратный конроль DT смоя нынешняя архитекрура не позвляет, зато если все таки сделаю отдельный QH для каждой КТ, то будет самый идеальный вариант на мой взгляд.
                            Сообщение отредактировано: shm -
                              Цитата StasNewOs @
                              Дело в том, что КТ может одновременно создать несколько QH

                              Конечная точка создать ничего не может, но может програмист сделать такую модель, что для каждой команды - своя QH.
                              Цитата StasNewOs @
                              поэтому для задачи лучше создавать QH, а по завершении убирать её.

                              Цитата StasNewOs @
                              Во первых хранить пустые QH это не есть гуд

                              Цитата StasNewOs @
                              во вторых на одну QH ставить qtd от разных задач тоже не гуд.

                              Если покажешь пруфлинки буду благодарен. Из чтения оф. доков мы с zakharo пришли к обратному мнению.
                              Сообщение отредактировано: shm -
                                Ну не знаю, а если например при работающих QH добавить ещё QH, то куда её лучше ставить в перёд или назад, и если удалить QH а соседние в это время работают, ничего страшного не случится?

                                Добавлено
                                Я кстати писал, что этот вариант не плох, если с QH сохранять задачу(т.е. одна задача - одна QH) и страницу сразу освобождать с ней по завершении.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (51) « Первая ... 37 38 [39] 40 41 ...  50 51


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0629 ]   [ 15 queries used ]   [ Generated: 20.07.25, 10:00 GMT ]