OSDev

для всех
Текущее время: 30 апр 2024, 04:17

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
СообщениеДобавлено: 30 сен 2011, 01:03 

Зарегистрирован: 18 апр 2010, 15:59
Сообщения: 155
Народ, может кто сталкивался с системами жесткого реального времени и сможет осветить проблему.

Прежде всего систему жесткого реального времени стоит рассматривать как систему ввода-вывода, которая способна преобразовать событие на входе компьютерной системы в соответствующее событие на выходе компьютерной системы за гарантированное время. То есть временные гарантии должна предоставлять как аппаратная платформа так и операционная система так и программное обеспечение. Давайте представим на что тратиться время в такой системе.

1. Получение сигнала на входе (точка старта отсчета) -> 2. время на обработку сигнала в контроллере ввода(устройстве ввода) -> 3. время на транспорт прерывания по шине в процессор -> 4. время выполнения самой длинной не прерываемой инструкции процессора или время ожидания в критической секции с отключенными прерываниями -> 5. время приема прерывания процессором -> 6. обработка поступления прерывания ядром ОС -> 7. время затрачиваемое на преобразование события на входе в событие на выходе -> 8. транспорт ответа по шине на устройство вывода -> 9. время на обработку данных на контроллере вывода (устройстве вывода) -> 10. подача сигнала на выводе (точка конца отсчета)

Откуда разработчики систем реального времени берут тайминги аппаратуры? То есть тайминги для пунктов 2, 3, 8, 9 и условно 4?
Понятно что для пункта 7 гарантии по времени дает разработчик софта, для пункта 6 разработчики ОС и для пункта 5 их теоретически можно получить у разработчиков процессора.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 сен 2011, 01:09 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Из документации на соответствующие железяки, естественно. Аппаратные платформы под ЖРВ собираются не из абы каких компонентов, а из тех, для которых хорошо известны все нужные характеристики (известны, естественно, разработчикам; широкая публика тут рояли не играет).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 сен 2011, 02:25 

Зарегистрирован: 18 апр 2010, 15:59
Сообщения: 155
То есть я правильно понимаю, что мне не как обычному человеку не прикрытому именем какой-нибудь хорошо известной компании будет практически нереально получить доступ к сакральным данным о таймингах, ну например одноплатников от VIA, для того чтобы построить систему реального времени и гордо заявить мировой общественности о ее временных гарантиях?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 сен 2011, 03:18 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Без понятия, это надо смотреть, предоставляется ли необходимая документация. Но, вообще говоря, IA-32 и ЖРВ -- вещи несовместимые в принципе. Во всяком случае, более-менее обычные платы, на которых современные версии Винды работать могут. Главная причина этого кроется в наличии жуткого режима SMM, который используется BIOSом, причём точно сказать, что, как и когда, никто не может :) Если плата специализированная и не использует SMM, то обеспечить ЖРВ там можно, но тогда будет затруднительно (хотя и не невозможно) реализовать ACPI, без которого Винда жить не может. Однако даже в таком случае предсказуемость системы будет плохой. Правда, наихудшие времена всё равно можно точно рассчитать, но, подозреваю, что они будут не лучше, чем у в 100 раз более слабых процессоров, лишённых громоздкой кэш-системы, многочисленных микросхем обвязки и прочей фигни. Недаром во встраиваемых системах почти всегда применяются микроконтроллеры, а ПК, даже промышленные, стоят на достаточно высоких уровнях, где по-настоящему жёсткое реальное время уже не требуется.

Кстати говоря, задача программиста, создающего ОСРВ, заключается в предсказуемости поведения системы при условии предсказуемости поведения аппаратуры. Так что полноценную ОСРВ для IA-32 создать можно, просто она не будет ОСРВ на подавляющем большинстве матерей с этим самым IA-32 :) Но, понятное дело, не по своей вине, а из-за непредсказуемости железа и БИОСа.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 сен 2011, 05:25 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Видимо SII не до конца знаком со встраиваемыми решениями. Там используются процессоры аналоги x386. В них нет SMM и ACPI в таких системах тоже нет. Виндоус как ни странно работает. Но там он специальный встраиваемый.
А вот ЖРВ мне ещё не попадалось. Обычно достаточно РВ.
Да х86 не предсказуем из-за сложной архитектуры. Вот контроллер или плис контроллер вот это предсказуемо.
Особенно советую на плис посмотреть там все задержки считаются, а большая часть еще и настраивается.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 сен 2011, 13:19 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Вындовз там особый (ВинЦЕ), а отнюдь не Висла и не Семёрка, о которой, собственно, и речь, и в силу своих особенностей эти платы -- специализированное решение, абсолютно непригодное для использования в качестве основы для более-менее обычных ПК. Кстати говоря, я именно со встраиваемыми системами и работаю, и я прекрасно осведомлён о существовании подобных плат -- и полностью сознательно отверг саму идею использовать IA-32 в наших разработках. На кой ляд нам это прожорливое, неэффективное и дорогостоящее говно нужно?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 окт 2011, 14:58 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
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$.

Конечно, такие процессоры нужно использовать только там, где нужны именно такие процессоры. Всё зависит от задачи.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 окт 2011, 22:09 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Да, в плане предсказуемости можно использовать и 80386, и 80486 (суперскалярность в первом пне появилась). Однако тут другой вопрос всплывает: а нафиг вообще использовать IA-32? Если у современных процов этой архитектуры есть высокая производительность, то у этих её нет и в помине (с позиций сегодняшнего дня). С этой точки зрения, а также из соображений наличия готовой периферии (всяких там SPI, I2C, UART и прочая), ОЗУ и ПЗУ в одной микросхеме куда целесообразнее использовать микроконтроллеры, особенно ARMы (поскольку, во-первых, у них очень широкий выбор и по производительности, и по периферии; во-вторых, их производят многие фирмы, а значит, ты не становишься заложником одного поставщика: перенести ПО на другой процессор той же архитектуры куда проще, чем вообще на другую архитектуру; ну а в-третьих, их архитектура более-менее вменяема, хотя и не сказать, чтоб очень супер-пупер). В общем, ИМХО, у ИА-32 вообще нет никакого будущего, хотя применяться они будут ещё очень долго в силу уже накопленных запасов ПО.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 окт 2011, 22:14 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
SII писал(а):
Да, в плане предсказуемости можно использовать и 80386, и 80486 (суперскалярность в первом пне появилась). Однако тут другой вопрос всплывает: а нафиг вообще использовать IA-32? Если у современных процов этой архитектуры есть высокая производительность, то у этих её нет и в помине (с позиций сегодняшнего дня).

80386 и 80486 давно не производятся и обсуждать их в общем-то нет смысла. В списке
Embedded Processors на который я дал ссылку выше, нет 80386 и 80486, но зато есть более "вкусные" процы. Где они используются я точно не знаю. Исхожу только из того, что раз их производят, значит спрос есть.
SII писал(а):
В общем, ИМХО, у ИА-32 вообще нет никакого будущего, хотя применяться они будут ещё очень долго в силу уже накопленных запасов ПО.

Скорее всего, IA-32 на PC будет постепенно заменена на AMD64.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 окт 2011, 23:36 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
AMD64 -- это тот же IA-32. Кстати, Интел название архитектуры вполне резонно не поменяла. Так что мои слова относятся к архитектуре в целом независимо от разновидностей.

Что касается встраиваемых на архитектуре IA-32, то такие есть и определённым спросом действительно пользуются. Но я-то о другом говорю: о перспективах и о смысле использования с чисто технической точки зрения. Понятное дело, что, если некая фирма 20 лет использует эту архитектуру, имеет большие наработки и т.д. и т.п., то переходить ей на что-то другое довольно затруднительно, и переход имеет смысл делать только при наличии действительно очень веских причин. Ну а если городить что-то с нуля, то надо смотреть уже на технические и экономические достоинства-недостатки, а тут ИА-32 похвастаться нечем.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу 1, 2, 3, 4  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB