информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Страшный баг в WindowsПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Линуксовый ботнет, распространяющийся... 
 Конец поддержки Internet Explorer 
 Рекордное число уязвимостей в 2021 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / hardware
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Я не знаю. На DMA свет не сошёлся, у NVidia это может быть... 21.05.07 15:06  Число просмотров: 2184
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 21.05.07 15:08  Количество правок: 2
<"чистая" ссылка>
> Есть два способа передачи данных из/в внешнее устройство.
> Один из них: процессор принимает байт инструкцией IN PORT,
> второй: данные передаются в тот момент, пока процессор
> может выполнять все что угодно (ДМА).
> Если утверждается, что основную работу делает чипсет, то
> это значит УСБ работает через ДМА? Какой канал? Как узнать?
Я не знаю. На DMA свет не сошёлся, у NVidia это может быть даже HyperTransport. PCI контроллеры используют т.н. Bus Master, т.е. само устройство получает доступ к памяти и пишет в неё что хочет. Возможно, что и через DMA, но об этом должен позаботится разработчик драйвера USB HOST, железячный вопрос там стандартизирван на уровне соглашений
UHCI/OHCI.

> > Писать дрова под него одно удовольствие, а вот для
> > COM-портов — тихая ненависть.
> Кому нужно писать дрова под УСБ контролер?
> По ссылке - "как писать драйвер УСБ устройства". Для
> устройства - согласен, все просто и удобно. А причем тут
> СОМ порт. Разве будет сложно писать драйвер для СОМ порта,
> который сидит на УСБ шине? Если сравнивать УСБ и RS-232, то
> дрова для СОМ устройства писать еще бОльшее удовольствие.
> Возмем к примеру модем. СОМ портом не сложнее управлять,
> чем УСБ контроллером.
Не всегда. Тебе "не проще", потому что научился читать/писать в порты на конкретной платформе. Другим это нах не нуно. OS даёт громадный сервис для работы с устройствами. Тот же USB имеет т.н. HID класс устройств... там можно много чего наворотить... А модемы — прошлый век. Вот кайф — ATDT9w8w77777, тоже мне высшая мудрость... ;-) А до этого нужно открыть порт, установить скорость, методы и режимы передачи... Узнать, то ли устройство, ответило ли... Гадость какая ;-)
<hardware>
Кто-нибудь знает, что "умеют" или "должны уметь делать" ATA/IDE устройства с поддержкой DMA? 16.05.07 15:12  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
Почему при использовании DMA режима скорость получается быстрее?
Почему для увеличения скорости не реализуют поддержку DMA режима в CF карточках?
Потому, что DMA (Direct Memory Access) - это один из... 17.05.07 15:04  
Автор: Den <Denis> Статус: The Elderman
<"чистая" ссылка>
> Почему при использовании DMA режима скорость получается
> быстрее?

Потому, что DMA (Direct Memory Access) - это один из контроллеров, включенных в чипсет, который позволяет посредству посылаемых ему команд в порты ввода/вывода гнать информацию RAWов напрямую в указанную область RAM.

> Почему для увеличения скорости не реализуют поддержку DMA
> режима в CF карточках?
Нафига? Скорость CF, при подключении к компу, сильно ограничена интерфйсом адаптера (например USB), а вот при использовании в фотоаппарате скорость записи/считывания в разы больше.
Отвечу сразу обоим. Во первых в доках на ixbt нет ничего,... 17.05.07 16:09  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
>

Отвечу сразу обоим. Во первых в доках на ixbt нет ничего, что хотя бы чуть прояснило мне ситуацию, только общие фразы.

> Потому, что DMA (Direct Memory Access) - это один из
> контроллеров, включенных в чипсет, который позволяет
> посредству посылаемых ему команд в порты ввода/вывода гнать
> информацию RAWов напрямую в указанную область RAM.

Да, есть ДМА контроллер и вполне понятно чем он должен заниматься. Находиться он должен где-то в северном мосту. С одной стороны устройство на шине (например ПиСиАй), на другой стороне память. Когда от ПиСиАй устройства (басмастеринг) передаются данные, то ДМА контроллер должен их запихнуть в ОЗУ, туда, куда у него задано.
Теперь рассмотрим АТА/ИДЕ контроллер, у которого с одной стороны ПиСиАй шинка, с другой стороны ИДЕ шлейф. Скажите мне, какой радости в ИДЕ шлейфе находятся два провода, отвечающие работе ДМА контроллера. Само устройство и знать не должно о том кто из него данные берет ЦПУ или ДМА-контроллер. Например в скайзевом шлейфике нет упоминания о ДМА.

> Нафига? Скорость CF, при подключении к компу, сильно
> ограничена интерфйсом адаптера (например USB), а вот при
> использовании в фотоаппарате скорость записи/считывания в
> разы больше.

Скорость флешек сейчас достигает 18 мегабайт в секунду. Сам видел на примере MMC+. Ну нет у меня сейчас таких быстрых CFок. Это скорость самой "media" плюс контроллер, плюс шина УСБ. УСБ выдает под 40 мегов (наверняка и больше). Это я сам видел на примете УСБшного винта. Скорость ПИО4 может достигать 16.6 мегов, что уже мало. Кроме того почему бы при чтении флешки на воспользоваться ДМА, чтоб не грузить проц чем не надо.
Что делают сигналы DMAREQ и DMAACK в шлейфе? Что, без них никак по ДМА ни качнуть? Какие есть аналоги в CF? Если нет, то когда будут? Или она так и будет тормозная?
Наверное потому, что USB это универсальный, простейший порт... 17.05.07 16:34  
Автор: Den <Denis> Статус: The Elderman
<"чистая" ссылка>
> Скорость флешек сейчас достигает 18 мегабайт в секунду. Сам
> видел на примере MMC+. Ну нет у меня сейчас таких быстрых
> CFок. Это скорость самой "media" плюс контроллер, плюс шина
> УСБ. УСБ выдает под 40 мегов (наверняка и больше). Это я
> сам видел на примете УСБшного винта. Скорость ПИО4 может
> достигать 16.6 мегов, что уже мало. Кроме того почему бы
> при чтении флешки на воспользоваться ДМА, чтоб не грузить
> проц чем не надо.

Наверное потому, что USB это универсальный, простейший порт передачи данных, как COM, работающий только через порты ввода/вывода.

> Что делают сигналы DMAREQ и DMAACK в шлейфе? Что, без них
> никак по ДМА ни качнуть? Какие есть аналоги в CF? Если нет,
> то когда будут? Или она так и будет тормозная?

Возможно это как-то связано с синхронной передачей данных в связке HDD/ATA контроллер/DMA контроллер и захватом PCI шины на время передачи.
Если про СОМ куча инфы, то с УСБой туговато. Допустим с УСБ... 18.05.07 16:56  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
> Наверное потому, что USB это универсальный, простейший порт
> передачи данных, как COM, работающий только через порты
> ввода/вывода.

Если про СОМ куча инфы, то с УСБой туговато. Допустим с УСБ также как и с СОМ. Тогда неувязочка. Время чтения из порта примерно микросекунда. Скорость тогда получается около мегабайта в секунду. Откуда возмется скорость свыше 40 мег. в сек., которая реально наблюдалась? Я полагаю, если найти подходящую железяку, то можно и до теоретического максимума добраться - 60 мег. в сек. И еще, порт пулится на состояние? Вряд ли. Сколько времени будет теряться на обработку прерывания? А на подтверждение прерывания? Оно тоже через порты. Скорость должна упасть еще сильнее. А регистр состояния опрость?

> Возможно это как-то связано с синхронной передачей данных в
> связке HDD/ATA контроллер/DMA контроллер и захватом PCI
> шины на время передачи.

Вполне возможно, но почему этим заведует конечное устройство, а не контроллер!
Народ! USB весьма силён в плане быстрого транспорта блоков байтов с девайса в комп и обратно. Гораздо совершеннее COM. 21.05.07 11:21  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 21.05.07 11:49  Количество правок: 5
<"чистая" ссылка>
Типы передачи данных

   Спецификация USB определяет 4 типа потоков данных:
    1. bulk  transfer  -  предназначен  для  пакетной  передачи  данных с
       размером  пакетов  8,  16,  32,  64 для USB 1.1 и 512 для USB 2.0.
       Используется алгоритм перепосылки (в случае возникновения ошибок),
       а  управление  потоком  осуществляется  с использованием handshake
       пакетов,  поэтому  данный тип является достоверным. Поддерживаются
       оба направления - IN и OUT.
    2. control  transfer - предназначен для конфигурирования и управления
       устройством.   Также,   как   и  в  bulk,  используются  алгоритмы
       подтверждения   и   перепосылки,  поэтому  этот  тип  обеспечивает
       гарантированный   обмен  данными.  Направления  -  IN  (status)  и
       OUT(setup, control).
    3. interrupt  transfer  -  похож  на bulk. Размер пакета - от 1 до 64
       байт для USB 1.1 и до 1024 байт для USB 2.0. Этот тип гарантирует,
       что устройство будет опрашиваться (то есть хост будет отсылать ему
       token "IN") хостом с заданным интервалом. Направление - IN.
    4. isochronous  transfer  -  предназначен  для  передачи  данных  без
       управления  потоком  (без  подтверждений).  Область  применения  -
       аудио-потоки,  видео-потоки.  Размер пакета - до 1023 байт для USB
       1.1  и  до 1024 байт для USB 2.0. Предусмотрен контроль ошибок (на
       приемной стороне) по CRC16. Направления - IN и OUT.

---
Основную работу делает чипсет, проц разгружен. Скорости впечатляющие.
Писать дрова под него одно удовольствие, а вот для COM-портов — тихая ненависть.
Плюс plug'n'play, уникальная идентификация устройств и их множественность — вааще зачёт :-)

OffTopic: IEEE 1394 тоже силён. Совершеннее USB. Всякая MiniDV камера по нему тащит гигабайты данных. Причём даже дров не надо, видео и аудио потоки там стандартизированы, ось поддерживая их, соотв. поддерживает все устройства, которые это могут. В USB такого пока нет, некоторые камеры тащат видео по USB, но требуется ставить драйвер.

Взято отсюда
Есть два способа передачи данных из/в внешнее устройство... 21.05.07 14:45  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Отредактировано 21.05.07 14:48  Количество правок: 2
<"чистая" ссылка>
> Основную работу делает чипсет, проц разгружен. Скорости
> впечатляющие.

Есть два способа передачи данных из/в внешнее устройство. Один из них: процессор принимает байт инструкцией IN PORT, второй: данные передаются в тот момент, пока процессор может выполнять все что угодно (ДМА).
Если утверждается, что основную работу делает чипсет, то это значит УСБ работает через ДМА? Какой канал? Как узнать?

> Писать дрова под него одно удовольствие, а вот для
> COM-портов — тихая ненависть.

Кому нужно писать дрова под УСБ контролер?
По ссылке - "как писать драйвер УСБ устройства". Для устройства - согласен, все просто и удобно. А причем тут СОМ порт. Разве будет сложно писать драйвер для СОМ порта, который сидит на УСБ шине? Если сравнивать УСБ и RS-232, то дрова для СОМ устройства писать еще бОльшее удовольствие. Возмем к примеру модем. СОМ портом не сложнее управлять, чем УСБ контроллером.
Я не знаю. На DMA свет не сошёлся, у NVidia это может быть... 21.05.07 15:06  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 21.05.07 15:08  Количество правок: 2
<"чистая" ссылка>
> Есть два способа передачи данных из/в внешнее устройство.
> Один из них: процессор принимает байт инструкцией IN PORT,
> второй: данные передаются в тот момент, пока процессор
> может выполнять все что угодно (ДМА).
> Если утверждается, что основную работу делает чипсет, то
> это значит УСБ работает через ДМА? Какой канал? Как узнать?
Я не знаю. На DMA свет не сошёлся, у NVidia это может быть даже HyperTransport. PCI контроллеры используют т.н. Bus Master, т.е. само устройство получает доступ к памяти и пишет в неё что хочет. Возможно, что и через DMA, но об этом должен позаботится разработчик драйвера USB HOST, железячный вопрос там стандартизирван на уровне соглашений
UHCI/OHCI.

> > Писать дрова под него одно удовольствие, а вот для
> > COM-портов — тихая ненависть.
> Кому нужно писать дрова под УСБ контролер?
> По ссылке - "как писать драйвер УСБ устройства". Для
> устройства - согласен, все просто и удобно. А причем тут
> СОМ порт. Разве будет сложно писать драйвер для СОМ порта,
> который сидит на УСБ шине? Если сравнивать УСБ и RS-232, то
> дрова для СОМ устройства писать еще бОльшее удовольствие.
> Возмем к примеру модем. СОМ портом не сложнее управлять,
> чем УСБ контроллером.
Не всегда. Тебе "не проще", потому что научился читать/писать в порты на конкретной платформе. Другим это нах не нуно. OS даёт громадный сервис для работы с устройствами. Тот же USB имеет т.н. HID класс устройств... там можно много чего наворотить... А модемы — прошлый век. Вот кайф — ATDT9w8w77777, тоже мне высшая мудрость... ;-) А до этого нужно открыть порт, установить скорость, методы и режимы передачи... Узнать, то ли устройство, ответило ли... Гадость какая ;-)
Почему разработчик драйвера? От него ничего не зависит. Все... 21.05.07 17:27  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
> Я не знаю. На DMA свет не сошёлся, у NVidia это может быть
> даже HyperTransport. PCI контроллеры используют т.н. Bus
> Master, т.е. само устройство получает доступ к памяти и
> пишет в неё что хочет. Возможно, что и через DMA, но об
> этом должен позаботится разработчик драйвера USB HOST,
> железячный вопрос там стандартизирван на уровне соглашений
> UHCI/OHCI.

Почему разработчик драйвера? От него ничего не зависит. Все зависит от разработчика чипа. У меня в этом компе на ДМА сидят два устройства: флопик и ЕСР/ЕРР принтер порт. УСБ не использует ДМА. Конечно некоторые устройства умеют передавать информацию в двух режимах, но если устройство не умеет работать через ДМА, то тут ни один драйвер не поможет.
Третьего не дано. Либо информация передается через процессор, либо без процессора.
Я что так докопался. Скорость передачи данных через порт заведомо слишком низкая. Скорость передачи через ДМА заведомо высокая. Вот и интересно, как УСБ разгоняется до 60 мег. в сек. не работая через ДМА.

> Не всегда. Тебе "не проще", потому что научился
> читать/писать в порты на конкретной платформе. Другим это

Драйвер СОМпорта и УСБ контроллера будут работать через порты, будут обрабатывать прерывания и много чего еще.
Драйвера мышки, модема или чего-нибудь еще, как бы они не были подключены - через УСБ или через СОмпорт не будут лезть в порты, им это уже ни к чему.

> нах не нуно. OS даёт громадный сервис для работы с
> устройствами. Тот же USB имеет т.н. HID класс устройств...
> там можно много чего наворотить... А модемы — прошлый век.

Почему прошлый. Они еще долго поживут. А сколько сейчас народу в инет по модемам ходит! Пока есть дешевые коммуникации, причем уже прокинутые (сравним существующую медную пару с проброской оптического кабеля на несколько километров, а кроме оптики эзернетку на расстояние более 100 метров не прокинуть), до тех пор и будут жить модемы.

> Вот кайф — ATDT9w8w77777, тоже мне высшая мудрость... ;-) А
> до этого нужно открыть порт, установить скорость, методы и
> режимы передачи... Узнать, то ли устройство, ответило ли...
> Гадость какая ;-)

Мне самому это не нравится, а что поделать. Может я бы что и получше изобрел, а может повторил бы то, что было изобретено. Ну не дураки же модемы придумали.
Тебе нужно почитать что-нить о SuperIO чипах, и понять, что... 21.05.07 18:43  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 21.05.07 18:44  Количество правок: 1
<"чистая" ссылка>
Тебе нужно почитать что-нить о SuperIO чипах, и понять, что практически всё в компе сидит на шине PCI или напрямую, или через этот chip, из которого вылазят ноги для ISA (если надо), для флоповода, для IDE, для COM- и LPT портов, и проч, логика DMA тоже в этом чипе, но DMA "эмулируется" для старинных до-PCIных устройств навроде фопповода или ISA устройств.

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

К примеру, почитай вот это http://www.chip-news.ru/archive/chipnews/200106/3.html
Спасиб, почитаю. 21.05.07 19:20  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
Интерфейсы и протоколы передачи данных 16.05.07 15:55  
Автор: Garick <Yuriy> Статус: Elderman
<"чистая" ссылка>


Интерфейсы и протоколы передачи данных
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2022 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach