Victor_VG

Tracker Mod | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору MACTEPnew Причиной низкой скорости работы может быть чип в переходнике - обычно это однокристальная микроЭВМ (SoC) т.е. микросхема на кристалле которой находятся процессор, память, тактовый генератор и каналы ввода-вывода. И тут многое зависит как от эффективности схемотехники железа - при ошибках в схеме будут большие временные задержки передачи сигналов, которые в межсоединениях могут оказаться выше чем время задержки в логических элементах, и насколько эффективны алгоритмы записанной в её ПЗУ программы. Её код может быть быстрым, но сами алгоритмы работать медленно, что даже при быстром железе снизит быстродействие устройства в целом. Недавно возился с подобным пакетом ошибок - конструктор разводя на компе шаблон чипа не учёл радиочастотные фокусы и в линиях возникла стоячая волна с завалами фронтов, а это привело к возрастанию времени срабатывания схемы почти на порядок, да и число ошибок логики из-за внутренних помех возросло в разы. Плюс программисты "порадовали" чудовищно медленным алгоритмом - в итоге изделие не было допущено до испытаний и мне пришлось разбираться в его ошибках. И как обычно, все убеждены что "У меня ошибок нет!". Ну это нормально - глаз замылился, но в итоге я пересчитал и частично переделал схему, а приятель вручную сделал разводку межсоединений - в тот раз их делала машина, и неудачно. И сейчас тот же чип работает на требуемой скорости. Вот вам и цена ошибок - в лучшем испытании до переделки время срабатывания схемы было 2,7 микросекунды, а сейчас мы получили 126 наносекунд, что укладывается в требование ТЗ на разработку "Время срабатывания устройства с момента поступления входного сигнала с датчика до момента выдачи управляющей команды на исполнительное устройство не должно превышать 130 наносекунд." - 2700 и 126 разница заметная. Тут может быть сходная причина - чип работает не на полной скорости, либо в нём искусственно ограничена скорость работы канала - это вынужденная мера для многоканальных устройств с несколькими входами и общим входом. Если её не принять, то в случае если устройство-источник монопольно захватывает канал, другие будут ждать его освобождения неопределённое время, а для устройств внешней памяти - HDD, ленточных, оптических накопителей, флеш накопителей как раз и характерен режим монопольной работы неопределённой длительности с каналом, более того для этого класса устройств это основной режим работы. Именно потому IDE диски используют режим Master-Slave и имеют не самую приятную особенность - если более медленное устройство подключено как Master, а более быстрое как Slave, то быстрое устройство будет подстраивать скорость своей работы под более медленное. Потому на IDE и не рекомендовали подключать к общему шлейфу HDD и CD/DVD, а если не повезло, то CD/DVD подключали как Slave, а HDD по возможности только как Master. И SATA в этом плане мало отличим от IDE, разница только в том, что проблема "подстройки скоростей" переехала в его контроллер получивший достаточно быстрый внешний канал, которого обычно хватает чтобы создать у нас иллюзию что все устройства меняются данными с машиной одновременно и на приличной скорости. На деле же передача данных от них идёт в режим чередования, но большими блоками, что снижает негативный эффект от разрыва передачи из-за чередования входных каналов. А то, что у каждого устройства свой кабель и ему выделяется свой буфер в памяти контроллера не меняет главного - протокол управления SATA почти не изменился со времён IDE, и как был построен по принципу "устройство отрабатывает одну команду, сообщает её статус и получает следующую", таким же и остался, с той разницей, что раньше у него не было понятия "очередь команд" - списка последовательно выполняемых операций управляемого основной машиной, таким он и остался. Это вам не SCSI где устройство получает не набор команд, а очередь программ обмена данными и выполняет её, а после докладывает SCSI контроллеру "я всё сделало, статус, готово к новой работе!" и ждёт пока его позовут, а SCSI хост-контроллер берёт на себя всю работу по управлению устройствами освобождая ЦП для счёта пользовательских задач. У IDE/SATA такой режим работы в принципе не реализуем ибо это не заложено в их природу.
---------- Жив курилка! (Р. Ролан, "Кола Брюньон") Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti |
| Всего записей: 34992 | Зарегистр. 31-07-2002 | Отправлено: 14:35 19-04-2020 | Исправлено: Victor_VG, 14:38 19-04-2020 |
|