Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


Вопрос для Poul

Вы не вошли.

 Поиск | Регистрация | Вход 

Иван
10.03.2009 12:03:59
#1

Гость

Вопрос для Poul

Здравствуйте Poul! Хотелось бы узнать Ваше мнение по поводу темы "Пропуск данных". Данные пропускаются при RATE > 1.8 МГц не только в LGRAF2, но и в примере l7XX.tst. В нем я убрал запись в файл. Вывод sync на консоль тоже убрал. В потоке просто слежение за multi. Добавил измерение времени. Хотя можно и так убедится в неправильной работе - запускаешь регистрацию скажем на три секунды, а реально она длится где-то 6 сек. И пожалуйста без (цитирую Вас) "ответы специально коцаные чтобы задумываться". Напишите над чем мне надо задумываться. Вроде ситуация не типа "Hello World!!!"

10.03.2009 13:34:10
#2

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Вопрос для Poul

Мы тут потестировали пример ничего из него не убирая. Просто на 2000кГц ну и буфера увеличили до 3072, pages до 512 и multi с расчетом на 10 секунд или 40 Мбайт файл. По времени сбора никаких аномалий не выявили. По сбоям - их можно получить тк это просто банальный неуспев... бывает что PCI подсистема современных материнок очень медленная в программном доступе как это ни странно. Я так понимаю что при более низких частотах сбора сбоев нету...

10.03.2009 13:48:30
#3

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,495

Re: Вопрос для Poul

Проект вышеупомянутого тестового примера можно скачать с ftp://ftp.lcard.ru/pub/users/l7xx/testl783.exe

Иван
10.03.2009 13:57:35
#4

Гость

Re: Вопрос для Poul

При частоте 1 МГц и ниже сбоев нет. Я проверял и на старой материнской плате (ASUS P2B), на ней тоже пропуски. Причем через FIFO (хорошо что так явно, а то такого бы потом намерили). Больше компьютеров по руками нет.
1.Простите за дилетантский вопрос, а то что я пользуюсь VS2008 может как-то повлиять на работу PCI?
2.Есть ли какие-то способы проверить скорость PCI?
3. Подскажите ЧТО ДЕЛАТЬ-ТО?

10.03.2009 13:59:32
#5

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Вопрос для Poul

И еще. Сейчас все эти платы идут с 85 процессором и FIFO можно задать 6144. При этом снижается вклад от накладных расходов на вызов обработчика прерываний для вычитывания данных, а он существенен тк скорость сбора на 2-3 мгц соизмерима со скорость вычитывания данных с платы.
И еще - в примере неоптимальная схема записи на диск. Можно и нужно быстрее с помощью WriteFile и ключей отключающих всякое кеширование и размера кратного кластеру и тп...

Иван
10.03.2009 16:07:45
#6

Гость

Re: Вопрос для Poul

Poul! Изменил ваш сегодняшний пример, добавив измерение времени регистрации GetTickCount() и его расчет (чтобы не заморачиваться с просмотром файлов). На новом компе под ВинХР эффект удвоения времени регисрации остался, на старом и под Вин98 СОВПАДЕНИЕ с точностью около 50 мс при обшем времени 10.6 сек. До этого ваш пример l7XX.tst я компилировал в VS2008, а сегодняшний в VS6. В связи с этим повторюсь:
1.Простите за дилетантский вопрос, а то что я пользуюсь VS2008 может как-то повлиять на работу PCI?
и добавлю:
2. На компе на котором вы сегодня проверяли стоит NET Framework? Может она как-то влиять на PCI?
Когда я проверял l7XX.tst на старом компе у меня стояла ВинХР и NET Framework. Я уже начал эксперементировать с ОС. Для меня вопрос о NET Framework принципиальный, т.к. я уже написал программу на C# (2 месяца работы).
Платы у нас старые с ADSP 2186. Запись в файл нам не нужна - пишем в ОЗУ а по окончании не спеша в файл, приведя данные к используемому нами виду.

10.03.2009 16:36:19
#7

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: Вопрос для Poul

Кстати бывает (но редко), что в сетапе компьютера есть настройка типа "PCI burst enable", которую нужно разрешить для максимальной производительности PCI.

10.03.2009 19:54:41
#8

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Вопрос для Poul

1 может овлиять только если опрос счетчика заполнения тромозит и то только из-за С#, а не из-за версии студии.
2 Net стоит, но неиспользуется и потому никак повлиять не может...

Время может измениться только если целые большие половинки пропускать....

Иван
11.03.2009 17:48:00
#9

Гость

Re: Вопрос для Poul

1. Poul! IrqStep=n*FIFO<=64К или IrqStep=FIFO для L783?
2. Не могли бы вы назвать несколько материнских плат, доступных сейчас в продаже, на которых PCI не будет тормозить на высоких частотах. Хотя бы из того на чем вы все работаете, или кому-то собирали комплекс.

Арсений
11.03.2009 18:02:20
#10

Гость

Re: Вопрос для Poul

Какая у вас конфигурация PC:
Материнка, чипсет, процессор, видео, память?

Иван
11.03.2009 19:03:26
#11

Гость

Re: Вопрос для Poul

1. Материнская M3A78-EMH HDMI
2. Чипсет AMD RS780/SB700
3. ЦП DualCore AMD Athlon 64 X2, 2800 MHz (14 x 200) 5400+
4. Видео на борту ATI Radeon HD 3200 Graphics
5. Память 2х1ГБ
Тип памяти    DDR2 SDRAM
Скорость памяти    DDR2-800 (400 МГц)
Имя модуля    Kingston 99U5316-028.A00LF

11.03.2009 20:10:58
#12

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Вопрос для Poul

1 IrqStep=FIFO в примере же ясно написано. Оно конечно может быть и меньше и больше но тогда результат будет своеобразный... FIFO это половинка буфера в плате, а IrqStep шаг генерации прерывания и порция которая при этом вычитывается...

Иван
12.03.2009 12:50:07
#13

Гость

Re: Вопрос для Poul

Poul! Вы пишете: ...а IrqStep шаг генерации прерывания и порция которая при этом вычитывается...
Из платы в ОЗУ или программа из ОЗУ куда ей надо?
Я думал, что FIFO перекачивается в ОЗУ по мере заполнения независимо от параметра IrqStep, а IrqStep задает шаг с которым программа получает Sync.

12.03.2009 13:13:05
#14

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Вопрос для Poul

из платы в озу... каждый IrqStep генерится прерывание в котором вчитывается IrqStep отсчетов и прибавляется счетчик Sync...