Available Languages?:

OSA : Скоростные характеристики

Здесь приведены цифры для оценки времени, требуемого операционной системе для выбора очередной задачи для запуска в разных режимах под разными компиляторами. Что это значит? Допустим, вы пишете программу для PIC16 под компилятором HTPICC, и у вас возникает вопос: "сколько временых ресурсов отнимет OSA?" или "как быстро произойдет переключение с одной задачи на другую?" (для кооперативных RTOS эти вопросы равнозначны). Ответ на этот вопрос приведен в таблице, где вы находите строку с используемым компилятором, затем столбец с используемым режимом работы (неприоритетный, приоритетный, расширенный приоритетный) и видите среднее количество тактов, требуемое OSA для переключения с одной задачи на другую (это число пропорционально зависит от количества активных задач). Далее найденное число умножаем на время выполнения инструкции и получаем время переключения.

Compiler PRIORITY_DISABLED PRIORITY_NORMAL PRIORITY_EXTENDED

PIC10 (PIC12)
Hi-tech PICC 54*N 84*N -

PIC16 (PIC12)
HT-PICC STD 49*N 80*N 123*N
microC PRO 74*N 119*N 224*N
CCS PICC 62*N 107*N 167*N

PIC18
HT-PICC18 STD 45*N 70*N 85*N
MPLAB C18 55*N 96*N 117*N
microC PRO 73*N 99*N 187*N
CCS PICC 49*N 88*N 101*N

PIC24 (dsPIC)
MPLAB C30 60*N 87*N 113*N

AVR
WinAVR 108*N 172*N 190*N
IAR 100*N 148*N 177*N

STM8
Cosmic 35*N 58*N 71*N
IAR 93*N 118*N 238*N
Raisonance 61*N 80*N 120*N

N - количество активных задач

Оценка среднего времени переключения. Пример 1 Исходные данные:

  • Контроллер PIC16F628
  • компилятор HT PICC STD
  • 4 задачи (N = 4)
  • расширенный приоритетный режим (PRIORITY_EXTENDED)
  • тактовая частота 20 МГц (т.е. время выполнения инструкции = 200нс)

Находим в таблице значение, соответствующее контроллеру, компилятору и используемому режиму. В нашем случае оно равно 123*N. N у нас равно 4, т.е. предполагается, что одновременно работают 4 задачи.

Среднее время переключения (с момента выполнения, например, OS_Yield() в одной задачи до момента получения управления другой задачей) будет:

t = 123 * 4 * 200нс = 492 * 200нс = 98.4 мкс

Оценка среднего времени переключения. Пример 2 Исходные данные:

  • Контроллер STM8S105C6
  • компилятор Cosmic
  • 8 задач (N = 8)
  • обычный приоритетный режим (PRIORITY_NORMAL)
  • тактовая частота 16 МГц (т.е. время выполнения инструкции = 62.5нс)

Находим в таблице значение, соответствующее контроллеру, компилятору и используемому режиму. В нашем случае оно равно 58*N. N у нас равно 8, т.е. предполагается, что одновременно работают 8 задач.

Среднее время переключения будет:

t = 58 * 8 * 62.5ns = 464 * 62.5ns = 29 us

 
osa/ref/appendix/speed.txt · Последние изменения: 12.03.2012 12:44 От osa_chief
 
Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki