Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Скорость записи PCI -> жесткий диск
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > ISA/PCI/PCI-X/PCI Express
lexl

Решил собрать контроллер АЦП для PCI шины.
Требования следующие - один канал с частотой дискретизации 28 МГц и разрядностью 16 бит.
В Master-режиме для PCI скорость передачи самих данных до 120 Мбайт/с (реальная ли это скорость для ОС Windows XP???)
Как я понимаю это скорость записи данных в ОЗУ, но не на жесткий диск. Время доступа к HDD по моему не превышает нескольких миллисекунд.
Если это так, то какая же максимальная скорость продолжительной записи данных (разрядность данных 16 бит) с шины PCI на среднестатический HDD.
v_mirgorodsky
В Вашем случае bottleneck будет не PCI, а среднестатический HDD, потому как скорость записи на блины среднестатистического ХОРОШЕГО HDD составляет 50-55MB/s из которых необходимо вычесть накладные затраты на файловую систему, свопинг и т.д. и т.п., что на круг даст Вам порядка 45-47MB/s чистой пропускной способности для записи данных. Отсюда и считайте. Можно еще пробовать писать в RAW-режиме, но для этого придется нагородить нехилый драйвер, что само по себе будет проблемой.

Если же речь идет о непродолжительных сеансах накопления данных и неспешный сброс их на диск в паузах - то такое возможно. Может кто-то попозже скажет что-то более конкретное о скоростных возможностях самой PCI, но мне кажется что двойного запаса по пропускной способности PCI должно хватить даже в самом плохом случае.
Genn
Если у вас стоит задача непрерывной регистрации потока данных в масштабе реального времени, то задача разбивается на две части:
1. определить конфигурацию HDD (одно устройство IDE или SATA, RAID для устройств IDE или SATA, SCSI...)
2. определить конфигурацию системы.
По первому вопросу все просто: пропускная способность подсистемы HDD должна быть не менее 56 Мбайт/с (28МГц х 16 бит). Время доступа здесь особого значения не имеет, посколь данные буферизируются как в ОЗУ (Bus-master), таки в самом HDD. С такой задачей справится RAID-0 с использованием HDD на интерфейсах IDE и SATA (реально была получена скорость ввода данных около 70 мБайт/с - Windows XP).
Второй вопрос несколко сложнее и касается архитектуры ЭВМ, в которую вы будете устанавливать свою плату: если слоты PCI и конроллер HDD располагаются на одном и том же канале PCI, то они совместно используют проупускную способность канала и нагрузка возрастет до 112 Мбайт/с (и это без учета накладных расходов на арбитраж, установку адресов и т.д.). Такая нагрузка для одного канала PCI (обычный слот 33МГц/32бита) - явный перебор, т.е. в записи будут разрывы (пропуск данных и переполнение буферов), потому что реальная пропускная способность не превышает 100 Мбайт/с (Latency Timer = 32).
Выход один - искать ЭВМ с архитектурой, где шина слоты PCI и контроллер HDD находятся на разных каналах. Этому условию удовлетворяют все современные серверные платформы, где есть слоты PCI 64/66 или PCI-X,
включая достаточно недорогие однопроцессорные системы с использованием обычного P4 (не Xeon). Что касается обычных ПЭВМ, то они точно не подойдут для этой задачи. Слотов PCI 66/64 и PCI-X бояться не надо - они в обязательном порядке поддерживают режим PCI 33МГц/32 бита, единственное что плата должна уметь работать в сигнальном окружении 3.3В (иметь ключ 3.3 В).
Realking
интересно что это за АЦП разрядностью 16 бит и частотой дискр. 28МГц?
vvs157
Цитата(Genn @ May 3 2005, 21:28)
.... Время доступа здесь особого значения не имеет, посколь данные буферизируются как в ОЗУ (Bus-master), таки в самом HDD. С такой задачей справится RAID-0 с использованием HDD на интерфейсах IDE и SATA (реально была получена скорость ввода данных около 70 мБайт/с - Windows XP).
*


Время доступа начинает играть свою роль, как только объем записываемых данных начинает превышать объем как системного (Windows) так и дискового кеша. Попробуте создать на диске файл размером в несколько GB и замерьте время. 70 MB/сек Вы точно не получите. Не зря супостаты на платах скоростного сбора ставят гигабайты памяти, доводя стоимость таких плат до десятков K$ (см. например http://www.gage-applied.com)
Genn
Цитата(vvs157 @ May 4 2005, 23:51)
Цитата(Genn @ May 3 2005, 21:28)
.... Время доступа здесь особого значения не имеет, посколь данные буферизируются как в ОЗУ (Bus-master), таки в самом HDD. С такой задачей справится RAID-0 с использованием HDD на интерфейсах IDE и SATA (реально была получена скорость ввода данных около 70 мБайт/с - Windows XP).
*


Время доступа начинает играть свою роль, как только объем записываемых данных начинает превышать объем как системного (Windows) так и дискового кеша. Попробуте создать на диске файл размером в несколько GB и замерьте время. 70 MB/сек Вы точно не получите. Не зря супостаты на платах скоростного сбора ставят гигабайты памяти, доводя стоимость таких плат до десятков K$ (см. например http://www.gage-applied.com)
*




Поскольку есть неясность, попробую ответить.

1.Время доступа (время доступа объявляемое производителем) является "синтетическим" параметром, зависящим от методики измерения, и его величина напрямую зависит от этой методики. Но в любом случае оно напрямую зависит от скорости позиционирования головок, причем доступ осуществляется в физически разнесенные участки диска. При последовательной записи в файл этот параметр актуален только в начале процесса, когда головка позиционируется на кластер начала файла, а затем при переходе на соседние участки(!) этот параметр на скорость записи (последовательной !) определяющего влияния не оказывает (конечно если диск не сильно фрагментирован). Для процесса чтения все аналогично.

2.Постановка задачи - регистрация непрерывного потока данных, т.е. практически никакого параллельного доступа к HDD, на котором производится запись, нет.
Для такой постановки задачи предложенная мной конфигурация является достаточной. Реально такая скорость была получена в конфигурации: сервер 2 х Xeon DP 2.4GHz / 2xHDD Seagate Barracuda 120GB SATA - RAID 0, хотя для получения этого результата в двухпроцессорном сервере не было необходимости (просто ничего другого не было).
Что касается Вашего замечания, то оно было бы справедливым, если бы стояла задача по организации большой корпаративной БД с большим количеством запросов и задачей обеспечения заданной пропускной способности при их обработке. В этом случае, действительно время доступа играет определяющую роль в быстродействии и скорости обработки данных, где и применяются платы за десятки к$. Далее все понятно..
Как пример для можно привести копирование файла размером 8,35Gb (образ DVD) с одного HDD (WD 7200 rpm) на другой HDD (Seagate 7200 rpm), никакго RAIDа нет, винчестеры подключены к разным каналам IDE, файловая система NTFS (кластер 4096), CPU - AthlonXP2500+. Время копирования составило 4 мин. 15с. Нетрудно посчитать, что скорость превысила 30 Мб/с (в конфигурации SATA RAID-0 она увеличится не менее, чем в два раза). Такую проверку я произвел непосредственно перед ответом (дефрагментации дисков не производил).

Возможно, в каких-то деталях есть неточности, но ,во всяком случае, результат был получен и я его привел. Надеюсь, что приведенная информация поможет автору темы решить свои задачи.
vvs157
Тоже провел тест. Создание файла 1 GB на сервере 2 шт Xeon 3 GHz аппаратный RAID-5 (4 шт Maxtor Atlas 10000 оборотов 73 GB, SCSI) 139 секунд - то есть 7 мбайт в секунду.
Genn
Цитата(vvs157 @ May 12 2005, 17:44)
Тоже провел тест. Создание файла 1 GB на сервере 2 шт Xeon 3 GHz аппаратный RAID-5 (4 шт Maxtor Atlas 10000 оборотов 73 GB, SCSI) 139 секунд  - то есть 7 мбайт в секунду.
*


Что касается Вашего результата, то могу сказать следующее: он действительно мог получиться таким из-за следующих причин:
операционная система, используемая на Вашем сервере либо не умеет оптимально работать с HDD, либо Вами не найдены методы такой работы.
У нас в конфигурации 2 x Xeon DP 3 GHz, SCSI RAID 0 -> 2 x HDD Seagate 73GB(15000 rpm) скорость ввода достигала 100 МБ/с при регистрации непрерывного потока данных при объемах более 1ГБ (при использовании Windows XP prof.)
Если у Вас действительно существует проблема со скоростью записи на HDD, то объявите новую тему в разделе форума, где обсуждаются вопросы программирования, и я думаю что Вы получите более полную информацию по данной теме.
grandos
Цитата(vvs157 @ May 12 2005, 17:44)
Тоже провел тест. Создание файла 1 GB на сервере 2 шт Xeon 3 GHz аппаратный RAID-5 (4 шт Maxtor Atlas 10000 оборотов 73 GB, SCSI) 139 секунд  - то есть 7 мбайт в секунду.
*


Скорее всего проблема здесь в RAID-5, тк у него скорость записи намного меньше скорости считывания.
Лучше использовать RAID-0
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.