OSDev http://osdev.su/ |
|
Cистемы жесткого реального времени http://osdev.su/viewtopic.php?f=5&t=446 |
Страница 1 из 4 |
Автор: | ZarathustrA [ 30 сен 2011, 01:03 ] |
Заголовок сообщения: | Cистемы жесткого реального времени |
Народ, может кто сталкивался с системами жесткого реального времени и сможет осветить проблему. Прежде всего систему жесткого реального времени стоит рассматривать как систему ввода-вывода, которая способна преобразовать событие на входе компьютерной системы в соответствующее событие на выходе компьютерной системы за гарантированное время. То есть временные гарантии должна предоставлять как аппаратная платформа так и операционная система так и программное обеспечение. Давайте представим на что тратиться время в такой системе. 1. Получение сигнала на входе (точка старта отсчета) -> 2. время на обработку сигнала в контроллере ввода(устройстве ввода) -> 3. время на транспорт прерывания по шине в процессор -> 4. время выполнения самой длинной не прерываемой инструкции процессора или время ожидания в критической секции с отключенными прерываниями -> 5. время приема прерывания процессором -> 6. обработка поступления прерывания ядром ОС -> 7. время затрачиваемое на преобразование события на входе в событие на выходе -> 8. транспорт ответа по шине на устройство вывода -> 9. время на обработку данных на контроллере вывода (устройстве вывода) -> 10. подача сигнала на выводе (точка конца отсчета) Откуда разработчики систем реального времени берут тайминги аппаратуры? То есть тайминги для пунктов 2, 3, 8, 9 и условно 4? Понятно что для пункта 7 гарантии по времени дает разработчик софта, для пункта 6 разработчики ОС и для пункта 5 их теоретически можно получить у разработчиков процессора. |
Автор: | SII [ 30 сен 2011, 01:09 ] |
Заголовок сообщения: | Re: Cистемы жесткого реального времени |
Из документации на соответствующие железяки, естественно. Аппаратные платформы под ЖРВ собираются не из абы каких компонентов, а из тех, для которых хорошо известны все нужные характеристики (известны, естественно, разработчикам; широкая публика тут рояли не играет). |
Автор: | ZarathustrA [ 30 сен 2011, 02:25 ] |
Заголовок сообщения: | Re: Cистемы жесткого реального времени |
То есть я правильно понимаю, что мне не как обычному человеку не прикрытому именем какой-нибудь хорошо известной компании будет практически нереально получить доступ к сакральным данным о таймингах, ну например одноплатников от VIA, для того чтобы построить систему реального времени и гордо заявить мировой общественности о ее временных гарантиях? |
Автор: | SII [ 30 сен 2011, 03:18 ] |
Заголовок сообщения: | Re: Cистемы жесткого реального времени |
Без понятия, это надо смотреть, предоставляется ли необходимая документация. Но, вообще говоря, IA-32 и ЖРВ -- вещи несовместимые в принципе. Во всяком случае, более-менее обычные платы, на которых современные версии Винды работать могут. Главная причина этого кроется в наличии жуткого режима SMM, который используется BIOSом, причём точно сказать, что, как и когда, никто не может :) Если плата специализированная и не использует SMM, то обеспечить ЖРВ там можно, но тогда будет затруднительно (хотя и не невозможно) реализовать ACPI, без которого Винда жить не может. Однако даже в таком случае предсказуемость системы будет плохой. Правда, наихудшие времена всё равно можно точно рассчитать, но, подозреваю, что они будут не лучше, чем у в 100 раз более слабых процессоров, лишённых громоздкой кэш-системы, многочисленных микросхем обвязки и прочей фигни. Недаром во встраиваемых системах почти всегда применяются микроконтроллеры, а ПК, даже промышленные, стоят на достаточно высоких уровнях, где по-настоящему жёсткое реальное время уже не требуется. Кстати говоря, задача программиста, создающего ОСРВ, заключается в предсказуемости поведения системы при условии предсказуемости поведения аппаратуры. Так что полноценную ОСРВ для IA-32 создать можно, просто она не будет ОСРВ на подавляющем большинстве матерей с этим самым IA-32 :) Но, понятное дело, не по своей вине, а из-за непредсказуемости железа и БИОСа. |
Автор: | pavia [ 30 сен 2011, 05:25 ] |
Заголовок сообщения: | Re: Cистемы жесткого реального времени |
Видимо SII не до конца знаком со встраиваемыми решениями. Там используются процессоры аналоги x386. В них нет SMM и ACPI в таких системах тоже нет. Виндоус как ни странно работает. Но там он специальный встраиваемый. А вот ЖРВ мне ещё не попадалось. Обычно достаточно РВ. Да х86 не предсказуем из-за сложной архитектуры. Вот контроллер или плис контроллер вот это предсказуемо. Особенно советую на плис посмотреть там все задержки считаются, а большая часть еще и настраивается. |
Автор: | SII [ 30 сен 2011, 13:19 ] |
Заголовок сообщения: | Re: Cистемы жесткого реального времени |
Вындовз там особый (ВинЦЕ), а отнюдь не Висла и не Семёрка, о которой, собственно, и речь, и в силу своих особенностей эти платы -- специализированное решение, абсолютно непригодное для использования в качестве основы для более-менее обычных ПК. Кстати говоря, я именно со встраиваемыми системами и работаю, и я прекрасно осведомлён о существовании подобных плат -- и полностью сознательно отверг саму идею использовать IA-32 в наших разработках. На кой ляд нам это прожорливое, неэффективное и дорогостоящее говно нужно? |
Автор: | Himik [ 01 окт 2011, 14:58 ] |
Заголовок сообщения: | Re: Cистемы жесткого реального времени |
SII писал(а): Без понятия, это надо смотреть, предоставляется ли необходимая документация. Но, вообще говоря, IA-32 и ЖРВ -- вещи несовместимые в принципе. Да, в основном из-за того, что у них суперскалярная архитектура. Но в i386 ещё этих наворотов не было, поэтому он вполне пригоден для ЖРВ, если не использовать страничный механизм. При необходимости, с помощью регистра cr0 можно отключить и кэширование памяти. Система в процессе работы может не использовать BIOS и ACPI, поэтому SMM не помешает. Старые процессоры изготавливались по старой технологии. Процессор i386 был дорогим очень и очень давно, а сейчас он ничего не стоит. И если его изготавливать по современной технологии, то энергии он не будет потреблять почти вообще. Вот например список процессоров для встроенных устройств, раздел "Embedded Processors" http://ark.intel.com К примеру, http://ark.intel.com/products/family/29 ... r/embedded Intel® Atom™ Processor Z510P (512K Cache, 1.10 GHz, 400 MHz FSB) потребляет всего 2,2Вт и стоит 20$. Конечно, такие процессоры нужно использовать только там, где нужны именно такие процессоры. Всё зависит от задачи. |
Автор: | SII [ 01 окт 2011, 22:09 ] |
Заголовок сообщения: | Re: Cистемы жесткого реального времени |
Да, в плане предсказуемости можно использовать и 80386, и 80486 (суперскалярность в первом пне появилась). Однако тут другой вопрос всплывает: а нафиг вообще использовать IA-32? Если у современных процов этой архитектуры есть высокая производительность, то у этих её нет и в помине (с позиций сегодняшнего дня). С этой точки зрения, а также из соображений наличия готовой периферии (всяких там SPI, I2C, UART и прочая), ОЗУ и ПЗУ в одной микросхеме куда целесообразнее использовать микроконтроллеры, особенно ARMы (поскольку, во-первых, у них очень широкий выбор и по производительности, и по периферии; во-вторых, их производят многие фирмы, а значит, ты не становишься заложником одного поставщика: перенести ПО на другой процессор той же архитектуры куда проще, чем вообще на другую архитектуру; ну а в-третьих, их архитектура более-менее вменяема, хотя и не сказать, чтоб очень супер-пупер). В общем, ИМХО, у ИА-32 вообще нет никакого будущего, хотя применяться они будут ещё очень долго в силу уже накопленных запасов ПО. |
Автор: | Himik [ 01 окт 2011, 22:14 ] |
Заголовок сообщения: | Re: Cистемы жесткого реального времени |
SII писал(а): Да, в плане предсказуемости можно использовать и 80386, и 80486 (суперскалярность в первом пне появилась). Однако тут другой вопрос всплывает: а нафиг вообще использовать IA-32? Если у современных процов этой архитектуры есть высокая производительность, то у этих её нет и в помине (с позиций сегодняшнего дня). 80386 и 80486 давно не производятся и обсуждать их в общем-то нет смысла. В списке Embedded Processors на который я дал ссылку выше, нет 80386 и 80486, но зато есть более "вкусные" процы. Где они используются я точно не знаю. Исхожу только из того, что раз их производят, значит спрос есть. SII писал(а): В общем, ИМХО, у ИА-32 вообще нет никакого будущего, хотя применяться они будут ещё очень долго в силу уже накопленных запасов ПО. Скорее всего, IA-32 на PC будет постепенно заменена на AMD64. |
Автор: | SII [ 01 окт 2011, 23:36 ] |
Заголовок сообщения: | Re: Cистемы жесткого реального времени |
AMD64 -- это тот же IA-32. Кстати, Интел название архитектуры вполне резонно не поменяла. Так что мои слова относятся к архитектуре в целом независимо от разновидностей. Что касается встраиваемых на архитектуре IA-32, то такие есть и определённым спросом действительно пользуются. Но я-то о другом говорю: о перспективах и о смысле использования с чисто технической точки зрения. Понятное дело, что, если некая фирма 20 лет использует эту архитектуру, имеет большие наработки и т.д. и т.п., то переходить ей на что-то другое довольно затруднительно, и переход имеет смысл делать только при наличии действительно очень веских причин. Ну а если городить что-то с нуля, то надо смотреть уже на технические и экономические достоинства-недостатки, а тут ИА-32 похвастаться нечем. |
Страница 1 из 4 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |