2013 w06 DSP BIOS Scheduling 2013zid 28363 ppt

background image

1

Procesory DSP – 2012

Procesory DSP – 2012

Materiały ilustracyjne do wykładu

Materiały ilustracyjne do wykładu

cz - VI

Planowanie działań

[Scheduling]

DSP-BIOS

Przygotowane z wykorzystaniem
materiałów
udostępnionych przez firmę Texas
Instruments
Dr inż. Krzysztof Kardach
(ver. 8.0 październik 2012)

background image

2

Wykaz wykorzystanych materiałów

Wykaz wykorzystanych materiałów

Li Tan „Digital Signal Processing – Fundamentals and
Applications” ;
DeVry University Decatur, Georgia, Elsevier 2008

S.M Kuo, B.H.Lee „Real-Time Digital Signal Processing” –
implementations, applications, and experiments with the
TMS320C55x”; John Wiley & Sons, 2006

CCS v5 WIKI -

http://processors.wiki.ti.com/index.php/Category:Code_Composer
_Studio_v5

Bruno Pillard „An Introduction To Digital Signal
Processors”;
Uniwersytet Sherbrooke

TMS320C5515 DSP System Users Guide [sprufx5d.pdf ]

TMS320C55x Technical Overview [spru393g.pdf]

TMS320C55x CPU Reference Guide [spru371f.pdf]

TMS320C55x DSP v3.x CPU Reference Guide [swpu073e.pdf]

TMS320C5515 Fixed-Point Digital Signal Processor
[sprs645e.pdf]

TMS320C55x CPU Mnemonic Instruction Set RG
[swpu067e.pdf]

TMS320C55x Assemby Language UG [spru280i.pdf]

January 3, 2013

Procesory sygnałowe 1 / VI

background image

3

Co chcemy dzisiaj zrozumieć

Co chcemy dzisiaj zrozumieć

CPU

DMA

RCVCHAN

gBufferRcv

A

D

C

DAC

McBSP2

Rcv

Xmt

XMTCHAN

gBufferXmt

COPY

+

P

o

n

g

P

o

n

g

P

i

n

g

P

i

n

g

Zamiana HWI na SWI, dodanie funkcji LED do migania

Równoległe uruchomienie wątków COPY i LED

Flash LEDs

January 3, 2013

Procesory sygnałowe 1 / VI

background image

4

Co chcemy rozpoznać …

Co chcemy rozpoznać …

Nowe wymagania systemu i możliwe rozwiązania

January 3, 2013

Procesory sygnałowe 1 / VI

Rozwiązanie w DSP/BIOS

Ustawianie zależności czasowych

Funkcje okresowe

Czas rzeczywisty i I/O – analiza

Uwagi o przykładowym programie

background image

5

TI DSP

Oczekiwania

Oczekiwania

-

-

Abstra

Abstra

k

k

c

c

yjne

yjne

życzenia

życzenia

Dotychczasowe wymagania

Przenoszenie przez DSP i dodanie sinusa

Nowe wymaganie

Dodaj inną funkcję o własnym
rytmie np. migania diodami LED

Migaj LED niezależnie od
addSine/copy

Problemy:

Czy mamy wystarczające moc
(MIPS)?

Czy procedury nie będą sobie
nawzajem przeszkadzać?

Możliwe rozwiązania ?

addSine/copy

LEDs

January 3, 2013

Procesory sygnałowe 1 / VI

background image

6

Możliwe rozwiązanie

Możliwe rozwiązanie

pętla

pętla

while

while

LEDs

addSine/copy

main
{

while(1)
{

}
}

Algorytmy działają w różnych
rytmach:

addSine/copy – 188Hz
(48KHz/256)

LEDs

– 2Hz

Co będzie, jeśli jeden z
algorytmów pozbawi inny szans
na zadziałanie lub opóźni jego
zadziałanie?

Wprowadź każdą z procedur do
niekończącej się pętli w main

January 3, 2013

Procesory sygnałowe 1 / VI

background image

7

Inne rozwiązanie

Inne rozwiązanie

użycie przerwań

użycie przerwań

TI DSP

main
{

while(1);

}

Timer1_ISR
{

}

Timer2_ISR
{

}

Gubione przerwanie…

Procedura

Okres Obliczenia Użycie CPU

addSine/copy:

5.3ms

75 s 1.4%

LEDs:

500 ms

1.1 s

~ 0%

1.4%

LEDs

addSine/copy

System sterowany przerwaniami łączy
każdą funkcję z własną procedurą ISR.

działa

Czas

1

2

3

5

4

6

7

0

LED

addSine

January 3, 2013

Procesory sygnałowe 1 / VI

Uśpiona (idle)

background image

8

Zgoda na zagłębiane przerwania

Zgoda na zagłębiane przerwania

- HWI

- HWI

Użycie obsługi HWI DSPBIOSa do
kontekstowego zachowania i odtworzenia,
umożliwienia zawieszania przerwań

Rozsądne podejście gdy ograniczona jest
liczba przerwań

Ograniczenie: liczba HWI i ich priorytetów
są ustalone statycznie – jedna funkcja HWI
do każdego przerwania

działa

Czas

1

2

3

5

4

6

7

0

Zagłębianie przerwań

pozwala sprzętowym

przerwaniom na wzajemne zawieszanie.

main
{

while(1);

}

Timer1_ISR
{

}

Timer2_ISR
{

}

LEDs

addSine/copy

January 3, 2013

Procesory sygnałowe 1 / VI

Uśpiona (idle)

background image

9

Co chcemy rozpoznać …

Co chcemy rozpoznać …

Nowe wymagania systemu i możliwe rozwiązania

Rozwiązanie w DSP/BIOS

January 3, 2013

Procesory sygnałowe 1 / VI

Ustawianie zależności czasowych

Funkcje okresowe

Czas rzeczywisty i I/O – analiza

Uwagi o przykładowym programie

background image

10

Użycie przerwań programowych

Użycie przerwań programowych

-

-

SWI

SWI

main
{ …
// return to O/S;
}
DSP/BIOS

Każdy z algorytmów niezależnym
przerwaniem programowym

Obsługę czasową SWI poprzez DSPBIOS

Funkcje HWI wyzwala sprzęt

Funkcje SWI są wyzwalane programowo
np. call to SWI_post()

Dlaczego używać SWI?

Nie ma ograniczeń liczby funkcji SWI, a
ich priorytety definiuje użytkownik

Funkcje SWI można wyzwalać
zdarzeniami sprzętowymi lub
programowymi

Można przekazywać przetwarzanie z
HWI do SWI, tzn. staruje HWI i
uruchamia SWI

LEDs

addSine/copy

Jak pracują razem funkcje HWI i SWI ?

January 3, 2013

Procesory sygnałowe 1 / VI

background image

11

HWI

HWI

wyzwalające

wyzwalające

SWI

SWI

DMA INT

HWI:

kod startowy

SWI_post();

SWI

Blokada INT

Preferowane w tym czasie

ping czy

pong?

addSine i copyData

HWI

Minimalne opóźnienie INT

Minimum przełączania

kontekstowego

Tylko wysoki priorytet

Może przywołać SWI

Może pominąć przerwanie gdy

wykonuje ISR

SWI

Dłuższa odpowiedź

Wykonuje przełączenie

kontekstowe

Wybierany priorytet

Może przywołać inny SWI

Wykonanie kierowane wg

kolejności

January 3, 2013

Procesory sygnałowe 1 / VI

background image

12

Własności

Własności

SWI

SWI

January 3, 2013

Procesory sygnałowe 1 / VI

background image

13

Obsługa priorytetu

Obsługa priorytetu

SWI

SWI

Podnieść przenieś i upuść
SWI dla zmiany priorytetu

SWI o identycznym
priorytecie działają w
kolejności przywołania

Podnieść przenieś i upuść
SWI dla zmiany priorytetu

SWI o identycznym
priorytecie działają w
kolejności przywołania

Jak przekazać informacje do SWI ?

January 3, 2013

Procesory sygnałowe 1 / VI

background image

14

Przekaz wartości do

Przekaz wartości do

SWI

SWI

poprzez

poprzez

skrzynkę

skrzynkę

HWI:

SWI_or (&SWIname, wartość);

SWI:

wartość

Po co przekaz wartości? By SWI wiedział „kto przywołał”?

SWI_or() sprawdza wartość ze skrzynki i uruchamia SWI

SWI_getmbox() wewnątrz SWI czyta stan skrzynki

Każda SWI ma własną skrzynkę

SWI może opcjonalnie użyć: SWI_inc(), SWI_dec(),

SWI_andn()

Skrzynka

[mailbox]

temp = SWI_getmbox();

Jak poprawnie używać HWI w BIOS ?

January 3, 2013

Procesory sygnałowe 1 / VI

background image

15

Przełącznik

Przełącznik

HWI

HWI

HWI_dispatchPlug(eventIdRcv, (Fxn)dmaHwi, NULL)

interrupt void dmaHwi(void)

{

}

Dla ISR używamy słowa kluczowego interrupt :

Nakazuje kompilatorowi wykonanie context save/restore

Dla aplikacji BIOS, sterowanie HWI oraz context save/restore jest

wywoływane przez prog. zarządzający [ Dispatcher], zatem musimy :

Usunąć słowo kluczowe interrupt z dmaHwi()

Użyć HWI_dispatchPlug() by uruchomić rozdzielacz dla dmaHwi() i

umieścić odpowiedni adres w tabeli wektorów HWI:

eventIdRcv: wybrane HWI przez CSL (0-31)

dmaHWI: nazwa funkcji ISR

NULL: Inne dostępne opcje (których nie używamy)

January 3, 2013

Procesory sygnałowe 1 / VI

background image

16

Co chcemy rozpoznać …

Co chcemy rozpoznać …

Nowe wymagania systemu i możliwe rozwiązania

Rozwiązanie w DSP/BIOS

Ustawianie zależności czasowych

January 3, 2013

Procesory sygnałowe 1 / VI

Funkcje okresowe

Czas rzeczywisty i I/O – analiza

Uwagi o przykładowym programie

background image

17

Przełączanie wątków w oparciu o

Przełączanie wątków w oparciu o

priorytety

priorytety

HWI 2

HWI 1

SWI 3

SWI 2

SWI 1

MAIN

IDLE

int1

rtn

post2 rtn

int2

post3

rtn

post1

rtn

rtn

rtn

Użytkownik ustala priorytety ... a BIOS realizuje przełączanie

Jak kreujemy SWI i ustalamy priorytety?

(Priorytet najwyższy)

(Priorytet najniższy)

SWI_post(&swi2);

January 3, 2013

Procesory sygnałowe 1 / VI

background image

18

Inne rozwiązanie

Inne rozwiązanie

zadania

zadania

[

[

Tasks

Tasks

]

]

(TSK)

(TSK)

main
{ …
// return to O/S;
}

DSP/BIOS

Zadania DSPBIOS [tasks] (TSK) są podobne
do SWI, ale udostępniają dodatkowe cechy

TSK jest bardziej podobny do zadań w
tradycyjnych systemach operacyjnych

Cechy TSK

Przełączanie kontekstowe SWI jest
szybsze niż TSK

Moduły TSK mają większy kod

TSK mają własny stos

Preferencje użytkownika i potrzeby
systemu decydują zwykle o użyciu SWI,
TSK lub obu

LEDs

addSine/copy

Jakie są główne różnice miedzy SWI i TSK ?

January 3, 2013

Procesory sygnałowe 1 / VI

background image

19

SWI

SWI

i

i

TSK

TSK

SWI są podobne do

przerwań sprzętowych ale

uruchamiane są przez

program w tym HWI

SWI_post()

Wszystkie SWI dzielą stos

systemowy

SWI

SWI_post

start

stop

“biegną aż do

ukończenia”

SEM_post() zwalnia TSK z

czekania zależnego od faktu

Zdarzenie odblokowuje TSK

do jednego przebiegu i

ponownego oczekiwania

Każdy TSK ma własny stos

co ułatwia wstrzymywanie

TSK

start

stop

czekanie

SEM_post

(stan

wstrzymania)

SEM_pend

January 3, 2013

Procesory sygnałowe 1 / VI

background image

20

Typy wątków

Typy wątków

DSP/BIOS

DSP/BIOS

P

rio

ry

te

ty

Do realizacji zdarzeń „

w następstwie

pracy

” HWI

SWI są

zgłaszane

przez program

Możliwe jest wiele SWI na każdym z
15 poziomów priorytetów przerwań

Do wykonania różnych programów

jednocześnie pod różnymi warunkami

TSK zależne są od zgłoszeń '

semaforów

(sygnały)

Wiele „

nieznaczących

” funkcji tła IDL

Pracują jako pętle bez końca, jak
tradycyjne while

Wszystkie przesłania BIOS do hosta
odbywają się tymi funkcjami tła

Do realizacji pilnych części zdarzeń czasu rzecz.

Wyzwalane przez przerwania sprzętowe

Ważność [priorytet] HWI ustalana jest sprzętowo

SWI

Software Interrupts

[przerw. programowe

]

HWI

Hardware Interrupts

[przerwania sprzętowe

]

TSK

Tasks

[zadania]

IDL

Background

[zadania tła

]

January 3, 2013

Procesory sygnałowe 1 / VI

background image

21

Uaktywnienie

Uaktywnienie

BIOS –

BIOS –

przejście z

przejście z

main()

main()

main
{
// return to BIOS
}

DSP BIOS

LEDs

addSine/copy

W zadaniach bez DSP/BIOSP
w main występuje pętla
while(1)

Z DSP/BIOS przechodzimy z
main() do niego przez Return

main() wraca do BIOS IDLE i
pozwala BIOS przełączać
zdarzenia, transmisję
informacji do host, etc

Pętla while() w funkcji main()
nie pozwoli uaktywnić się
BIOS

BIOS otwiera wiele możliwości …

January 3, 2013

Procesory sygnałowe 1 / VI

background image

22

DSP BIOS

DSP BIOS

składa się z:

składa się z:

Narzędzia analizy w czasie
rzecz.

Pozwala aplikacji
nieprzerwanie działać w
trakcie ekspozycji danych z
debugowania

Przełącznik czasu
rzeczywistego

Jądro przełączania wątków

We/Wy czasu rzeczywistego

Pozwala na dwukierunkową
komunikację między wątkami
lub procesorem a PC hostem.

January 3, 2013

Procesory sygnałowe 1 / VI

background image

23

Co chcemy rozpoznać …

Co chcemy rozpoznać …

Nowe wymagania systemu i możliwe rozwiązania

Rozwiązanie w DSP/BIOS

Ustawianie zależności czasowych

Przygotowanie funkcji okresowych

January 3, 2013

Procesory sygnałowe 1 / VI

Czas rzeczywisty i I/O – analiza

Uwagi o przykładowym programie

background image

24

Okres migania

LED

LED

LED

Funkcje okresowe

Funkcje okresowe

Funkcje okresowe mogą działać w systemie ze specyficzną
częstością :
- np. LED wymaga okresu 2Hz

Do dyspozycji manager zegara DSP/BIOS CLK by ustalić odstęp
w mikrosekundach na “tick”

Manager PRD pozwoli określić okres funkcji w „tick-ach”

Pozwoli na ustalenie różnych okresów do różnych funkcji

Mogą być użyte do obsługi różnych funkcji systemu (np.
mignięcie LED)

DSP/BIOS
CLK

tick

January 3, 2013

Procesory sygnałowe 1 / VI

background image

25

Tworzenie funkcji okresowych

Tworzenie funkcji okresowych

period

func1

func1

func1

DSP/BIOS

CLK

tick

January 3, 2013

Procesory sygnałowe 1 / VI

Okres migania

func1

func1

func1

DSP/BIOS
CLK

tick

background image

26

Co chcemy rozpoznać …

Co chcemy rozpoznać …

Nowe wymagania systemu i możliwe rozwiązania

Rozwiązanie w DSP/BIOS

Ustawianie zależności czasowych

Przygotowanie funkcji okresowych

Czas rzeczywisty i I/O - analiza

January 3, 2013

Procesory sygnałowe 1 / VI

Uwagi o przykładowym programie

background image

27

Wbudowane narzędzie analizy w czasie

Wbudowane narzędzie analizy w czasie

rzecz.

rzecz.

Gromadzi dane na systemie docelowym [target] (3-10 cykli
CPU )

Przesyła dane podczas BIOS IDL ( ok. 100c )

Formatowanie danych na komp. PC-host ( ok. 1000c )

Gromadzenie danych NIE zatrzymuje CPU docelowego

Execution Graph

Analizuje czas pracy

poza BIOS IDL

CPU Load Graph

Programowy analizator

logiczny

Śledzi zdarzenia i ich

priorytet

January 3, 2013

Procesory sygnałowe 1 / VI

background image

28

Wbudowane narzędzie analizy w czasie

Wbudowane narzędzie analizy w czasie

rzecz.

rzecz.

Śledzi czas procedur bez

zatrzymywania CPU

Profiling

Przesyła wiadomości z
śledzenia do host

Nie zatrzymuje DSP

Wnikliwe fizyczne
liczenie cykli DSP

Bardziej wydajny niż
tradycyjny printf()

LOG wiadomości

LOG_printf (&logTrace, “addSine ENabled”);

Jak przekazywać dane pomiędzy DSP a PC-host ?

January 3, 2013

Procesory sygnałowe 1 / VI

background image

29

Co chcemy rozpoznać …

Co chcemy rozpoznać …

Nowe wymagania systemu i możliwe rozwiązania

Rozwiązanie w DSP/BIOS

Ustawianie zależności czasowych

Przygotowanie funkcji okresowych

Czas rzeczywisty i I/O – analiza

Uwagi o przykładowym programie

January 3, 2013

Procesory sygnałowe 1 / VI

background image

30

Czy bliżej zrozumienia … ?

Czy bliżej zrozumienia … ?

CPU

DMA

RCVCHAN

gBufferRcv

A

D

C

DAC

McBSP2

Rcv

Xmt

XMTCHAN

gBufferXmt

COPY

+

P

o

n

g

P

o

n

g

P

i

n

g

P

i

n

g

Flash LEDs

January 3, 2013

Procesory sygnałowe 1 / VI

background image

31

DMA

To komentowaliśmy poprzednio

To komentowaliśmy poprzednio

CPU

buffer0

Kanał

Przekaz ramki zakończony

buffer1

Teraz jest fragmentem naszego zadania większego

Przenosi dane z urządzenia wejściowego do bufora

danych

I z bufora danych do urządzenia wyjściowego

Dodatkowo przełącza bufory

January 3, 2013

Procesory sygnałowe 1 / V

background image

32

Co to i do czego służą, jak działają?

Co to i do czego służą, jak działają?

• Execution Graph
• CPU Load Graph
• Profiling Statistics
• Massage LOG

• Bufory Ping-Pong
• Realizacja zadań w pętli
• Wykorzystanie procesora –

sposób liczenia

• HWI
• SWI
• ISR
• DSP/BIOS
• TSK
• Mailbox
• Wykres stanów

January 3, 2013

Procesory sygnałowe 1 / V


Document Outline


Wyszukiwarka

Podobne podstrony:
6 dsp bios
6 dsp bios
2013 Tapping World Summit Schedule – The Tapping Solution
Logika W2 2013 14 ppt
2013 w05 DMA HWI 2013zid 28362 Nieznany
Logika W4 2013 14 ppt
2013 03 26 W 7 TRM Przygotowanie obiektu i budowyid 28270 ppt
Urazy Stom 2013 [konspekt]ppt
Logika W7 8 2013 14 ppt
2013 03 26 W 9 TRB II Montaż w obniżonych tempid 28271 ppt
ZIF2013 2014 WSFiZ Ramowy program wykładów sem letni r ak 2013 2014 v 1 6 4 dla wszystkich studentów
Logika W6 2013 14 ppt
2007 2013 Programyid 25731 ppt
2013 03 26 W8 Technologia montażu Brygada Montażowaid 28272 ppt
Logika W5 2013 14 ppt
Logika W3 2013 14 ppt
Logika C6 2013 14 ppt
Logika W2 2013 14 ppt

więcej podobnych podstron