of 88 /88
1 Systemy Mikroprocesorowe Czasu Systemy Mikroprocesorowe Czasu Rzeczywistego Rzeczywistego Dariusz Makowski Katedra Mikroelektroniki i Technik Informatycznych tel. 631 2648 [email protected] http://neo.dmcs.p.lodz.pl/smcr

Systemy Mikroprocesorowe Czasu Rzeczywistegoneo.dmcs.p.lodz.pl/smcr/wyklady_dm/SMCR1_2009.pdf · Motorola 68020 Intel, Pentium 4 Northwood. 10 Podział komputerów Mikrokomputer:

Embed Size (px)

Text of Systemy Mikroprocesorowe Czasu Rzeczywistegoneo.dmcs.p.lodz.pl/smcr/wyklady_dm/SMCR1_2009.pdf ·...

1

Systemy Mikroprocesorowe Czasu Systemy Mikroprocesorowe Czasu RzeczywistegoRzeczywistego

Dariusz MakowskiKatedra Mikroelektroniki i Technik Informatycznych

tel. 631 [email protected]

http://neo.dmcs.p.lodz.pl/smcr

mailto:[email protected]

2

1. Zaliczenie2. Laboratorium i projekt z SMCR3. Materiay do wykadu4. Odrabianie wykadw

Sprawy formalneSprawy formalne

3

LiteraturaLiteraturaLiteratura obowizkowa:Phillip A. Laplante, Real-Time Systems Design and Analysis, 3rd Edition, May 2004, Wiley-IEEE Press

A. Clements, Microprocessor Systems Design: 68000 Hardware, Software and Interfacing, 3rd Edition, PWS 97

Andrew S. Tanenbaum Strukturalna organizacja systemw komputerowych, wydanie V, Helion 2006

Literatura uzupeniajca:S. R. Ball, Embedded Microprocessor Systems Butterworth-Heinemann 1996

Noty katalogowe procesorw Freescale (np. MPC5282)

4

Definicje podstawoweDefinicje podstawowe

urzdzenie cyfrowe, sekwencyjne, potrafice pobiera dane z pamici, interpretowa je i wykonywa jako rozkazy

Procesor (ang. Central Processing Unit) Procesor (ang. Central Processing Unit)

MikroprocesorMikroprocesorukad cyfrowy wykonany jako pojedynczy ukad scalony o wielkim stopniu integracji (VLSI) zdolny do wykonywania operacji cyfrowych wedug dostarczonych mu informacjinp.: x86, Z80, 68k

MikrokontrolerMikrokontrolerkomputer wykonany w jednym ukadzie scalonym, uywany do sterowania urzdzeniami elektronicznymi. Oprcz jednostki centralnej CPU posiada zintegrowane pamici oraz urzdzenia peryferyjne, np.: Intel 80C51, Atmel Atmega128, Freescale MCF5282

5

System czasuSystem czasu rzeczywistegorzeczywistego

Systemem czasu rzeczywistego (ang. real-time system)nazywamy system, ktry musi wykona okrelone zadania w

cile okrelonym czasie.

Poprawno pracy systemu czasu rzeczywistego zaley zarwno od wygenerowanych sygnaw wyjciowych jak i

spenionych zalenoci czasowych

System, ktry nie spenia jednego lub wikszej liczby wymaga okrelonych w specyfikacji nazywany jest

systemem niesprawnym

6

System czasu rzeczywistegoSystem czasu rzeczywistego

1. Jak szybki musi by ukad przetwarzajcy dane ?2. Ile sygnaw mona przetwarza jednoczenie ?3. Obsuga sytuacji wyjtkowych ?

Przykadowe systemy sterujce: System realizujcy internetow sprzeda biletw lotniczych ? System kontrolujcy trajektori lotu samolotu pasaerskiego ? System sterujcy reaktorem jdrowym ? System sterujcy rakieta ziemia-powietrze ? System wadzy sdowniczej ?

Ktre z nich s systemami czasu rzeczywistego?

7

Historia mikroprocesorw (1)Historia mikroprocesorw (1)1940 Russell Ohl demonstracja zcza pprzewodnikowego (dioda germanowa,

bateria soneczna)

1947 Shockley, Bardeen, Brattain prezentuj pierwszy tranzystor

1958 Jack Kilby wynalaz pierwszy ukad scalony

1967 Laboratorium Fairchild oferuje pierwsz pami nieulotn ROM (64 bity)

1969 Noyce i Moore opuszczaj laboratorium Fairchild, powstaje niewielka firma INTEL. INTEL produkuje pamici SRAM (64 bit).

Pierwszy tranzystor, Bell Laboratories Pierwszy ukad scalony, TI

8

Historia mikroprocesorw (2)Historia mikroprocesorw (2)1970 - F14 CADC (Central Air Data Computer) mikroprocesor zaprojektowany przez Steve'a Gellera i Raya Holta na potrzeby armii amerykaskiej (myliwiec F-14 Tomcat)

1971 - Intel 4004 4-bitowy procesor realizujce funkcje programowalnego kalkulatora, 3200 tranzystorw. INTEL wznawia prac nad procesorami.

1972 rozpoczynaj si prace nad 8-bitowym procesorem INTEL 8008. Rynek zaczyna si interesowa ukadami programowalnymi - procesorami.

Zdjcie 4-bitowego procesora INTEL 4004 8-bitowe procesory INTEL-a

9

Historia mikroprocesorw (3)Historia mikroprocesorw (3)1974 INTEL wprowadza na rynek ulepszona wersj 8008, procesor Intel 8080. Byy pracownik INTELa zakada firm Zilog, Motorola oferuje 8-bitowy procesor MC 6800.

1976 Zilog oferuj procesor Z80, INTEL pierwsza wersje procesora 8048.

1978 Pierwszy 16-bitowy procesor 8086 (ulepszony 8080).

1979 Motorola oferuje 16-bitowy procesor 68000.

1980 Motorola wprowadza nowy 32-bitowy procesor 68020, 200.000 tranzystorw.

.........

Motorola 68020 Intel, Pentium 4 Northwood

10

Podzia komputerwPodzia komputerw

Mikrokomputer:stacjonarny (desktop, Personal Computer) urzdzenie wyposaone zwykle w silny procesor pracujcy pod kontrol systemu operacyjnego. Funkcjonalno urzdzenia zaley gwnie od posiadanego oprogramowaniawbudowany (embedded) komputer, maszyna, sterownik przeznaczony do realizacji cile okrelonego zadania, np. sterowanie pralk automatyczn. Komputer odpowiedzialny jest za zarzdzanie urzdzeniem oraz zapewnia obsug interfejsu uytkownika.

11

Komputer wbudowany Komputer wbudowany (embedded computer)(embedded computer)

Elementy wykonawcze, np. silniki, przekaniki

Czujniki, np. czujnik temperatury, obrotw, itd

Komunikacja z komputerem zewntrznym

Kamera

12

MikroprocesorMikroprocesor

ALU Jednostkasterujca

Rejestry (PC, SP, D, A)

RAM ROM

Mikroprocesor

Mikroprocesor to ukad cyfrowy wykonany jako pojedynczy ukad scalony o wielkim stopniu integracji zdolny do wykonywania operacji cyfrowych wedug dostarczonych mu instrukcji.

Dekoder rozkazw

Magistrale: adresowa, danych,sterujca.

Przerwania

Jednostka arytmetyczno-logiczna, realizuje podstawowe operacje matematyczne8, 16, 32, 64-bit

Rejestry procesora,komrki szybkiej pamici statycznej, umieszczonej,wewntrz procesora,8, 16, 32, 64, 128-bit

13

Jednostka arytmetyczno-logicznaJednostka arytmetyczno-logicznaJednostka arytmetyczno-logiczna wykorzystywana jest do wykonywania:

operacji logicznych AND, OR, NOT, XOR,dodawania,odejmowania, negacja liczby, dodawanie z przeniesieniem, zwikszanie/zmniejszanie o 1,przesunicia bitowe o sta liczb bitw,mnoenia i/lub dzielenia (dzielenie modulo).

14

Dwu-bitowa jednostka ALUDwu-bitowa jednostka ALU

Realizowane operacje:OP = 000 XOROP = 001 ANDOP = 010 OROP = 011 Addition

Inne moliwe operacje:subtraction, multiplication, division, NOT A, NOT B

15

Architektura procesora okrela najwaniejszych z punktu widzenia budowy i funkcjonalnoci cechy procesora.

Na architektur procesora skadaj si: model programowy procesora (ang. Instruction Set Architecture) - zestaw

instrukcji procesora oraz inne jego cechy istotne z punktu widzenia programisty, bez wzgldu na ich wewntrzn realizacj; stanowi granic pomidzy warstw sprztow a programow

mikroarchitektura procesora (ang. microarchitecture) - wewntrzna, sprztowa implementacja danego modelu programowego, okrelajca sposb wykonywania operacji przez procesor, szczegow budow wewntrzn procesora, itd.

Architektura procesora (1)Architektura procesora (1)

16

Architektura procesora (2)Architektura procesora (2)

17

Architektura procesora CISCArchitektura procesora CISC

Cechy architektury CISC (Complex Instruction Set Computers):

Dua liczba rozkazw (instrukcji), Niektre rozkazy potrzebuj duej liczby cykli procesora do

wykonania, Wystpowanie zoonych, specjalistycznych rozkazw, Dua liczba trybw adresowania, Do pamici moe si odwoywa bezporednio dua liczba rozkazw, Mniejsza od ukadw RISC czstotliwo taktowania procesora, Powolne dziaanie dekodera rozkazw, ze wzgldu na du ich liczb i skomplikowane

adresowanie

Przykady rodzin procesorw o architekturze CISC to:

x86 M68000 PDP-11 AMD

?

18

Architektura procesora RISCArchitektura procesora RISCCechy architektury RISC (Reduced Instruction Set Computer):

Zredukowana liczba rozkazw. Upraszcza to znacznie dekoder rozkazw. Redukcja trybw adresowania, dziki czemu kody rozkazw s prostsze, Ograniczenie komunikacji pomidzy pamici, a procesorem. Do przesyania danych

pomidzy pamici, a rejestrami su dedykowane instrukcje (load, store) . Zwikszenie liczby rejestrw (np. 32, 192, 256), Dziki przetwarzaniu potokowemu (ang. pipelining) wszystkie rozkazy wykonuj si w

jednym cyklu maszynowym.

Przykady rodzin mikroprocesorw o architekturze RISC:

IBM 801 PowerPC MIPS Alpha ARM Motorola 88000 ColdFire SPARC PA-RISC Atmel_AVR

Obecnie produkowane procesory Intela z punktu widzenia programisty s widziane jako CISC, ale ich rdze jest zgodny z RISC. Rozkazy CISC s rozbijane na mikrorozkazy (ang. microops), ktre s nastpnie wykonywane przez szybki blok wykonawczy zgodny z architektur RISC.

19

Architektura systemu komputerowegoArchitektura systemu komputerowegoArchitektura polega na cisym podziale komputera na trzy podstawowe czci:

procesor, pami (zawierajca dane oraz program), urzdzenia wejcia/wyjcia (I/O).

PROCESOR

PAMI PODSTAWOWA URZDZENIA ZEWNTRZ.

20

Magistrale komputeraMagistrale komputera

Magistrala adresowa

Magistrala danych

Magistrala sterujca

1. Rodzaj magistrali2. Szeroko magistrali3. Czstotliwo zegara szybko transmisji

21

Przykadowy komputer 8-bitowyPrzykadowy komputer 8-bitowy

22

Architektura von NeumannaArchitektura von NeumannaCechy architektury von Neumanna:

rozkazy i dane przechowywane s w tej samej pamici, nie da si rozrni danych o rozkazw (instrukcji), dane nie maja przypisanego znaczenia, pami traktowana jest jako liniowa tablica komrek, ktre identyfikowane s przy pomocy dostarczanego przez procesor adresu,

procesor ma dostp do przestrzeni adresowej, dekodery adresowe zapewniaj mapowanie pamici na rzeczywiste ukady.

Magistrala adresowa

Magistrala danych

23

Architektura HarwardzkaArchitektura Harwardzka

Magistrala adresowa

Magistrala danych

Pami programu Pami danych

Magistrala adresowa

Magistrala danych

Prostsza (w stosunku do architektury Von Neumanna) budowa przekada si na wiksz szybko dziaania - dlatego ten typ architektury jest czsto wykorzystywany w procesorach sygnaowych oraz przy dostpie procesora do pamici cache.

Cechy architektury Harwardzkiej: rozkazy i dane przechowywane s w oddzielnych pamiciach, organizacja pamici moe by rna (inne dugoci sowa danych i rozkazw),

moliwo pracy rwnolegej jednoczesny odczyt danych z pamici programu oraz danych,

stosowana w mikrokontrolerach jednoukadowych.

24

Zmodyfikowana architektura harwardzkaZmodyfikowana architektura harwardzkaZmodyfikowana architektura harwardzka (architektura mieszana) - czy w sobie cechy architektury harwardzkiej i architektury von Neumanna. Oddzielone zostay pamici danych i rozkazw, lecz wykorzystuj one wsplne magistrale danych i adresow. Architektura umoliwia atwe przesyanie danych pomidzy rozdzielonymi pamiciami.

Przykad mikrokontrolera z rodziny 8051 wraz z zewntrznymi pamiciami

Pami danych Pami programu

25

Komputer uniwersalny (1)Komputer uniwersalny (1)

ISAPCIPCIeAGP

26

Oprogramowanie mikrokomputerw Oprogramowanie mikrokomputerw

Komputery osobiste, uniwersalne:jzyki wysokiego poziomu (Asembler, C/C++, Pascal, Java, Basic...)

Komputery wbudowane, sterowniki:jzyk niskiego poziomu Asembler,jzyki wysokiego poziomu (C/C++, Basic, Ada).

Hardware

Firmware

System Operacyjny

Aplikacje inter.

Komputer uniwersalny

Hardware

Firmware

System Operacyjny

Aplikacje nie inter.

Zoony komputer wbudowany

Hardware

FirmwareAplikacje

Prosty komputer wbudowany

27

Systemy operacyjne dla urzdze Systemy operacyjne dla urzdze wbudowanych (1)wbudowanych (1)

Rosncy poziom zoonoci zada wykonywanych przez wspczesne systemy wbudowane

Implementacje skomplikowanych algorytmw przetwarzania danych

Programowanie wspczesnych urzdze peryferyjnych ze wzgldu na zoono sprztu stao si zadaniem trudnym i czasochonnym. Brak zunifikowanych interfejsw oraz rnorodno udostpnianych przez producentw funkcji sprawia, e kod rdowy nie jest bezporednio przenony nawet pomidzy rnymi platformami tego samego producenta.

Dlaczego potrzebny jest system Dlaczego potrzebny jest system operacyjny ?operacyjny ?

28

Systemy operacyjne dla urzdze Systemy operacyjne dla urzdze wbudowanych (2)wbudowanych (2)

Systemy z procesorem wyposaonym w jednostk zarzdzania pamici (MMU)odpowiednio zmodyfikowane odmiany systemu

Linux, MontaVista Linux

Systemy z procesorem bez ukadu zarzdzania pamici

Clinux, PetaLinux, RTEMS

29

Systemy operacyjne dla urzdze Systemy operacyjne dla urzdze wbudowanych (3)wbudowanych (3)

Dlaczego brak ukadu zarzdzania Dlaczego brak ukadu zarzdzania pamici jest problemem?pamici jest problemem?

Brak obsugi pamici wirtualnej Brak moliwoci dynamicznego zmieniania rozmiaru pamici przydzielonej danemu procesowi Brak sprztowej ochrony pamici Brak obsugi obszaru wymiany Fragmentacja pamici przy dynamicznej alokacji

30

Mikrokontrolery jednoukadoweMikrokontrolery jednoukadowe

Atmel AT89C51, DIP 40 Atmel AT90S2313, DIP 20

31

Mikrokontroler AT89C51Mikrokontroler AT89C51

Cechy mikrokontrolera Zgodny z architektur '51

Wewntrzna pami FLASH 4 kB

Wewntrzna pami SRAM 128 B

Czstotliwo taktowania 0 Hz do 24 Mhz

UART zgodny z RS 232

Programowalne porty I/O, 32 linie

Dwa 16 bitowe liczniki/timery

Sze rode przerwa

32

Mikrokontroler AT90S2313Mikrokontroler AT90S2313

Cechy mikrokontrolera Zgodny z architektur AVR/RISC Wewntrzna pami

FLASH 2 kB / 128 B EEPROM Wewntrzna pami

SRAM 128 B Czstotliwo taktowania

0 Hz do 10 Mhz UART zgodny z RS 232, SPI,

Watchdog, komparator Programowalne porty I/O,

15 linii (AT90S8535 32-linie) Dwa 8/16 bitowe liczniki/timery Jedenacie rode przerwa

33

Porwnanie mikrokontrolerwPorwnanie mikrokontrolerw

Zadanie:Zrealizowa operacj sumowania dwch 16-bit liczb

R1 | R0 + R3 | R2 => R1 | R0

;Program procesora rodziny '51

MOV A, R0

ADD A, R2

MOV R0, A

MOV A, R1

ADDC A, R3

MOV R1, A

1 instrukcja = 12 clk

f = 12 Mhz => 6 us

;Program procesora rodziny AVR

ADD R0, R2

ADDC R1, R3

1 instrukcja = 1 clk

f = 12 Mhz => 0.16 us

ADDC A, R3 A

34

Motorola, czy Freescale Motorola, czy Freescale

Mikrokontroler Freescale, MCF520x, BGA 256

Procesor Motorola, 68k DIP 64

35

Systemy Mikroprocesorowe Czasu Rzeczywistego -

laboratorium

36

Mikrokontroler MCF5282Mikrokontroler MCF5282 Maksymalna czstotliwo

pracy 80MHz 16 32-bitowych rejestrw

oglnego przeznaczenia i adresowych

2k pamici cache danych lub instrukcji

64k pamici RAM 512k pamici Flash Tryby pracy z obnionym

poborem mocy (4 tryby pracy) Do 142 programowalnych

bitowych portw I/O Programowalny watch-dog

37

Schemat blokowy moduu COBRASchemat blokowy moduu COBRA

COBRA = ColdFire Board for Rapid Applications

38

Modu COBRA wraz z analizatorem BDMModu COBRA wraz z analizatorem BDM

39

Pytka bazowa zestawu uruchomieniowegoPytka bazowa zestawu uruchomieniowego

UART 0 UART 1

40

Pytka z dodatkowymi peryferiamiPytka z dodatkowymi peryferiami

41

Rejestry procesoraRejestry procesora

Rejestry dzielimy na:

rejestry danych - do przechowywania danych np. argumentw i wynikw oblicze,rejestry adresowe - do przechowywania adresw (wskanik stosu, wskanik programu, rejestry segmentowe),rejestry oglnego zastosowania (ang. general purpose), przechowuj zarwno dane, jak i adresy,rejestry zmiennoprzecinkowe - do przechowywania i wykonywania oblicze na liczbach zmiennoprzecinkowych (koprocesor FPU),

Rejestry procesora stanowi komrki wewntrznej pamici procesora o niewielkich rozmiarach (najczciej 4/8/16/32/64/128 bitw) suce do przechowywania tymczasowych wynikw oblicze, adresw danych w pamici operacyjnej, konfiguracji, itd.

Cechy rejestrw procesora:

stanowi najwyszy szczebel w hierarchii pamici (najszybszy rodzaj pamici komputera),Realizowane w postaci przerzutnikw dwustanowych,Liczba rejestrw zaley od zastosowania procesora.

Rejestry procesora z rodziny Motorola ColdFire

42

Charakterystyka jdra ColdFire 2/2MCharakterystyka jdra ColdFire 2/2M 32-bitowa magistrala adresowa (4 GB) 32-bitowa magistrala danych Rdze procesora RISC o zmiennej dugoci rozkazw (16-, 32- oraz 48 bitowe sowa) Procesor posiada zoptymalizowan pod wzgldem wydajnoci list rozkazw

bazujc na procesorze rodziny Freescale (Motorola) 68k Lista rozkazw zoptymalizowana pod ktem jzykw wysokiego poziomu 16 rejestrw oglnego przeznaczenia (D0 D7, A0 A7) Jednostka eMAC (Multiply Accumulate) przypieszajca obliczenia staoprzecinkowe

(tylko ColdFire2M) Tryb pracy dedykowanego uytkownika Supervisor mode umoliwiajcy podniesienie

bezpieczestwa pracy systemw operacyjnych Sterownik zewntrznej pamici SRAM/DRAM Mechanizm podrcznej pamici Cache 12 trybw adresowania pamici zgodnych z rodzin Freescale (Motorola) 68k Pene wsparcie debugowania programu w czasie rzeczywistym

43

Architektura jdra ColdFire 2/2MArchitektura jdra ColdFire 2/2M

44

Rozszerzona lista instrukcji ColdFire V2Rozszerzona lista instrukcji ColdFire V2

45

Model programowy procesora ColdFire

46

Model programowy procesora ColdFireModel programowy procesora ColdFire

47

Model programowy procesora Model programowy procesora Motorola ColdFireMotorola ColdFire

48

Rejestry mikrokontrolera MCF5282Rejestry mikrokontrolera MCF5282

NKB przeniesienie/poyczkaU2 przeniesienie/poyczka

Liczba ujemna w kodzie U2

49

Kolejno bajtw w pamici (1)Kolejno bajtw w pamici (1)

Endianess

Big-endian Little-endianmiddle-endian

Motorola, SPARC, ARM Intel x86, 6502 VAX

Bajt najmniejsza adresowalna jednostka pamici komputerowej

podobnie jak w jzyku polskim, angielskim

podobnie jak w jzykach arabskich, hebrajski

liczby zmiennoprzecinkowe podwjnej precyzji

VAX and ARM

Bi-EndianARM, PowerPC (za wyjtkiem PPC970/G5), DEC Alpha, MIPS, PA-RISC oraz IA64

...pod najmodszym adresem umieszczony

jest najstarszy bajt

...pod najstarszym adresem umieszczony

jest najstarszy bajt

50

Kolejno bajtw w pamici (2)Kolejno bajtw w pamici (2)

0x0000.0001 0x0000.0000

0x0000.0002 0x0000.0003 0x0000.0004

Byte 1 Byte 2 Byte 3 Byte 4 Byte 5

0x0000.0001 0x0000.0000

0x0000.0002 0x0000.0003 0x0000.0004

0x12 0x34

0x560x780x90

07

Architektura 8-bitowa07

51

Kolejno bajtw w pamici (3)Kolejno bajtw w pamici (3)

0x0000.0004 0x0000.0000

0x0000.0008 0x0000.000C 0x0000.0010

Byte 4 Byte 3 Byte 2 Byte 1Byte 8 Byte 7 Byte 6 Byte 5Byte 12 ... ... ...

Big-endian

Little-endian

0x0000.0004 0x0000.0000

0x0000.0008 0x0000.000C 0x0000.0010

Byte 1 Byte 2 Byte 3 Byte 4Byte 5 Byte 6 Byte 7 Byte 8Byte 9 ... ... ...

Byte 4 ... Byte 1MSB LSB

52

Kolejno bajtw w pamici (4)Kolejno bajtw w pamici (4)

0x0000.0004 0x0000.0000

0x0000.0008 0x0000.000C 0x0000.0010

0x12 0x34 0x56 0x78

Byte 5 Byte 6 Byte 7 Byte 8Byte 9 ... ... ...

0x0000.0004 0x0000.0000

0x0000.0008 0x0000.000C 0x0000.0010

0x78 0x56 0x34 0x12Byte 8 Byte 7 Byte 6 Byte 5Byte 12 ... ... ...

Podwjne sowo (DW): 0x1234.5678

08 716 1524 2332

08 716 1524 2332

Big-endian

Little-endian

53

Kolejno bajtw w pamici (5)Kolejno bajtw w pamici (5)

#define LITTLE_ENDIAN 0#define BIG_ENDIAN 1

int machineEndianness(){ long int i = 1; /* 32 bit = 0x0000.0001 */ const char *p = (const char *) &i; /* wskanik do ......? */

if (p[0] == 1) /* Lowest address contains the least significant byte */ return LITTLE_ENDIAN;

else return BIG_ENDIAN;}

Jak rozpozna architektur procesora oraz rozkad bajtw w pamici?

54

Przykad uycia rejestrw danychPrzykad uycia rejestrw danych

ACC = wsp. temp.

ACC = ACC * ADC

ACC = ACC + wsp. skalujacy

y = ACC

D0 = wsp. temp.D1 = wsp. skalujacy

D2 = ADCD2 = D0 * D2 y = D2 + D1

y = wsp. temp. * ADC + wsp. skalujcy

55

Przykad uycia rejestrw adresowych (1)Przykad uycia rejestrw adresowych (1)

Zapisanie tablicy adresw przerwa

VBR

256

kom

rek

Adres 1

Adres 2

Adres 256

4 B

VBR = 0x500.000

A1 = VBR(A1) = adres procedury przerwaniaA1 = A1 + 1

56

Przykad uycia rejestrw adresowych (2)Przykad uycia rejestrw adresowych (2)

y = A0 + A1

y

n ko

mr

ek

Dana 1

Dana 2

Dana n

4 B

A1 = adres 1 A2 = adres 2A3 = adres 3D0 = 0

(A3, D0) = (A1, D0) + (A2, D0)

A = adres 2 ACC = (A)A = adres 1ACC = ACC + (A)A = adres 3(A) = ACC

A0, A1

n ko

mr

ek

Dana 1

Dana 2

Dana n

4 B

...MOVE.L 0(%A1,%D0*1), %D1MOVE.L (%A1), %D1MOVE.L %D1, (%A1)+...

57

Struktura stosu (1)Struktura stosu (1)Stos (ang. stack lub LIFO Last-In, First-Out) liniowa

struktura danych, w ktrej dane odkadane s na wierzch stosu i z wierzchoka stosu s zdejmowane. Ide stosu

danych mona zilustrowa jako stos pooonych jedna na drugiej ksiek nowy egzemplarz kadzie si na wierzch

stosu i z wierzchu stosu zdejmuje si kolejne egzemplarze. Elementy stosu poniej wierzchoka stosu

mona wycznie obejrze, aby je cign, trzeba najpierw po kolei cign to, co jest nad nimi.

Przeciwiestwem stosu LIFO jest kolejka, bufor typu FIFO (ang. First In, First Out; pierwszy na wejciu, pierwszy na

wyjciu), w ktrym dane obsugiwane s w takiej kolejnoci, w jakiej zostay dostarczone (jak w kolejce do

kasy).

58

Struktura stosu (2)Struktura stosu (2)0x0000.0000

0x1000.0000A7 USPA7* SSP

Ostatnio odoona danan-1

pole wolne

MOVE.W (%A7)+, %D0 | zdjcie sowa ze stosu i zapisanie D0.W, po przesaniu danej| rejestr A7 jest zwikszany o 2

pole wolneA7 USPA7* SSP Zawarto rejestru D0.W

%A7 - wskanik stosu

MOVE.W %D0, -(%A7) | zmniejszenie A7 o 2, odoenie zawartoci D0.W na stos,

59

Struktura stosu (2)Struktura stosu (2)

0x0000.0000

0x1000.0000

A7 USPA7* SSP

Ostatnio odoona danan-1

pole wolne

pole wolneA7 USPA7* SSP Zawarto rejestru D0.W

MOVE.W (%A7)+, %D0 | zdjcie sowa ze stosu i zapisanie D0.W, po przesaniu danej| rejestr A7 jest zwikszany o 2

A7 - wskanik stosu

MOVE.W %D0, -(%A7) | zmniejszenie A7 o 2, odoenie zawartoci D0.W na stos,

60

Model programowy procesora ColdFireModel programowy procesora ColdFire

Rejestry dostpne w trybie superuytkownika

020

IPSBAR INTERNAL PERIPHERAL SYSTEM BASE ADDRESSREGISTER

BA31 BA30 VAL16 0

019

61

Format instrukcji asembleraFormat instrukcji asemblera

ADD.L #1, #2

operacja typ operandu: L podwjne sowo (32 bit)W pojedyncze sowo (16 bit)B bajt (8 bit)

Operand rdowy

Operand docelowy

18,33cm16 bit

16 bit

32 bit48 bit1

6

48 b

it

62

Przykad instrukcji asembleraPrzykad instrukcji asemblera

ADD.L #$1000, (A0)

Adresowanie natychmiastowe

Adresowanie porednie rejestrowe

Dodawanie

Jakie operacje musi wykona procesor ?

Umie liczb 0x1000 pod adresem wskazywanym przez rejestr A0

1. Pobranie kodu instrukcji z pamici,2. Zdekodowanie pobranej instrukcji,3. Pobranie argumentu zapisanego pod adresem wskazywanym przez A0,4. Wykonanie operacji dodawania 0x1000+(A0),5. Zapisanie wyniku dodawania w komrce pamici wskazywanej przez A0.

63

Instrukcja dodawaniaInstrukcja dodawania

64

ADD operacja dodawaniaADD operacja dodawania

Tryby adresowania argumentu docelowego x:

(Ax), (Ax)+, -(Ax), (d16,Ax), (d8,Ax,Xi), (xxx).W/L, + zoone tryby adresowania dla 68020, 68030, 68040

Tryby adresowania argumentu rdowego y:

Dy, Ay, (Ay), (Ay)+, -(Ay), (d16,Ay), (d8,Ay,Xi), (xxx).W/L, #, (d16,PC), (d8,PC,Xi), + zoone tryby adresowania dla 68020, 68030, 68040

Liczba Rejestr 000 D0 001 D1 010 D2 011 D3 100 D4 101 D5 110 D6 111 D7ADD.L D0,D1 => D280

65

Instrukcja porwnujca argumentyInstrukcja porwnujca argumenty

66

Instrukcja skoku warunkowegoInstrukcja skoku warunkowego

67

Modu arytmetyczny EMAC (1)Modu arytmetyczny EMAC (1)

Enhanced Multiply-ACcumulate Unit

68

Modu arytmetyczny EMAC (2)Modu arytmetyczny EMAC (2)

69

Systemy Mikroprocesorowe Czasu Rzeczywistego

70

System mikroprocesorowySystem mikroprocesorowy

Sygnay wejciowe Sygnay wyjciowe

System komputerowy

Czujnik 1

Czujnik 2

Czujnik n

Sygna sterujcy 1

Sygna sterujcy 2

Sygna sterujcy m

Sygnay z kamery cyfrowej Sygnay wizyjny

71

System sterujcySystem sterujcy

Sygnay wejciowe Sygnay wyjciowe

System sterujcy

Obiektsterowany

ADC DACProcesor

72

System operacyjnySystem operacyjny

System Operacyjny OS (Operating System) - oprogramowanie, ktre zarzdza sprztem oraz aplikacjami komputera (procesora). Podstaw wszystkich systemw operacyjnych jest wykonywanie podstawowych zada takich jak: zarzdzanie pamici, przydzia czasu procesora, obsuga urzdze, ustalanie pocze sieciowych oraz zarzdzanie plikami. Moemy wyrni trzy gwne elementy systemu operacyjnego: jdro systemu wykonujce ww. zadania,

powoka - specjalny program komunikujcy uytkownika z systemem operacyjnym,

system plikw - sposb zapisu struktury danych na noniku.

73

System operacyjny czasu rzeczywistegoSystem operacyjny czasu rzeczywistego

Systemem czasu rzeczywistego okrela si taki system, ktrego wynik przetwarzania zaley nie tylko od jego logicznej poprawnoci, ale rwnie od czasu, w jakim zosta osignitySystem czasu rzeczywistego odpowiada w sposb przewidywalny na bodce zewntrzne napywajce w sposb nieprzewidywalnyPoprawno pracy systemu czasu rzeczywistego zaley zarwno od wygenerowanych sygnaw wyjciowych jak i spenionych zalenoci czasowychZ pojciem czasu rzeczywistego wie si wiele naduy. Terminu tego uywa si potocznie dla okrelenia oblicze wykonywanych bardzo szybko, co nie zawsze jest prawd.

74

System czasu rzeczywistegoSystem czasu rzeczywistego

Czas reakcji systemu przedzia czasu potrzebny systemowi operacyjnemu na wypracowanie decyzji (sygnau wyjciowego) w odpowiedzi na zewntrzny bodziec (sygna wejciowy)Czas reakcji systemu moe waha si w granicach od uamkw sekund (np.: system akwizycji danych z kamery) do kilkudziesiciu godzin (np.: system sterowania poziomem wody w zbiorniku retencyjnym)Charakterystyka rnych zada aplikacji musi by znana a prioriSystemy czasu rzeczywistego, w szczeglnoci systemy dynamiczne, musz by szybkie, przewidywalne, niezawodne i adoptowalne

75

Podzia systemw czasu rzeczywistegoPodzia systemw czasu rzeczywistego

Systemy o ostrych ograniczeniach czasowych (ang. hard real-time) przekroczenie terminu powoduje katastrofalne skutki (zagroenie ycia lub zdrowia ludzi, uszkodzenie lub zniszczenie urzdzenia). Nie jest istotna wielko przekroczenia terminu, a jedynie sam fakt jego przekroczenia

Systemy o mikkich lub agodnych ograniczeniach czasowych (ang. soft real-time) - gdy przekroczenie terminu powoduje negatywne skutki. Skutki s tym powaniejsze, im bardziej termin zosta przekroczony

Systemy o mocnych ograniczeniach czasowych (ang. firm real-time) - gdy fakt przekroczenia terminu powoduje cakowit nieprzydatno wypracowanego przez system wyniku. Fakt niespenienia wymaga czasowych nie stanowi jednak zagroenia dla ludzi lub urzdzenia (bazy danych czasu rzeczywistego)

76

Dlaczego Linux nie jest systemem czasu Dlaczego Linux nie jest systemem czasu rzeczywistegorzeczywistego

Zastosowany algorytm szeregowania z podziaem czasuNiska rozdzielczo zegara systemowegoNie wywaszczalne jdro (nie dotyczy wersji > 2.6)Wyczanie obsugi przerwa w sekcjach krytycznychZastosowanie pamici wirtualnejOptymalizacja wykorzystania zasobw sprztowych

77

Po co stosowa system operacyjny dla urzdze Po co stosowa system operacyjny dla urzdze wbudowanych?wbudowanych?

Zoono implementowanych algorytmw Zoono procesw sterowania Przenono aplikacji

78

Podzia systemw operacyjnych dla urzdze Podzia systemw operacyjnych dla urzdze wbudowanychwbudowanych

System operacyjny dla procesora (mikrokontrolera) z ukadem zarzdzania pamici

Linux, MontaVista Linux

System operacyjny dla procesora (mikrokontrolera) bez ukadu zarzdzania pamici

Clinux, PetaLinux, RTEMS

79

Dlaczego brak ukadu zarzdzania pamici jest Dlaczego brak ukadu zarzdzania pamici jest problemem?problemem?

Brak obsugi pamici wirtualnejBrak sprztowej ochrony pamiciBrak moliwoci dynamicznego zmieniania iloci pamici przydzielonej danemu procesowiBrak obsugi obszaru wymianyFragmentacja pamici przy dynamicznej alokacji

80

System operacyjny czasu rzeczywistego System operacyjny czasu rzeczywistego RTEMSRTEMS

RTEMS Real-Time Executive for Multiprocessor Systems

(Real Time Executive for Missile Systems) System operacyjny czasu rzeczywistego RTOS

(Real Time Operating System) rozwijany jako projekt Open Source na licencji GPL. RTEMS zosta opracowany jako wydajny system

operacyjny dla urzdze wbudowanych. Dostpne s implementacje RTEMS, tzw. BSP (Board

Support Packages), dla wielu procesorw: ARM, ColdFire, MC68000, Intel i960, Intel i386, MIPS, LEON, itd...

81

Cechy systemu operacyjnego RTEMSCechy systemu operacyjnego RTEMS Zgodno ze standardami

POSIX 1003.1b API wraz z wtkamiTCP/IP wraz z gniazdami BSDuITRON 3.0 API

Podstawowe cechy jdra systemuWielozadaniowo Wywaszczanie bazujce na priorytetach i zdarzeniachKomunikacja i synchronizacja midzyprocesowaDynamiczna alokacja pamiciMoliwo penej konfiguracji systemu

Wsparcie dla jzykw skryptowychPython

82

Cechy systemu operacyjnego RTEMSCechy systemu operacyjnego RTEMS

Stos TCP/IPTCP, UDPICMP, DHCP, RARPRPC, CORBATFTP, FTPD, HTTPD

Wsparcie dla systemw plikwIn-Memory Filesystem (IMFS)TFTP Client FilesystemFTP Client FilesystemFAT Filesystem (IDE and CompactFlash)

83

Procesory wspierane przez RTEMS (1)Procesory wspierane przez RTEMS (1)

Yes

No

Yes

No

No

Partial

Yes

No

No

4.74.7

YesYesYesMIPS including multiple ISA levels

NoNoYesIntel i960

YesYesYesIntel/AMD x86 (i386 and above)

NoNoYesHP PA-RISC

NoNoYesAMD A29K

PartialPartialNoAtmel AVR

YesYesYesARM with many CPU models

YesYesNoADI Blackfin

YesYesNoAltera NIOS II

CVSCVS4.84.84.64.6ArchitectureArchitecture

Yes

No

Yes

No

No

Partial

Yes

No

No

4.74.7

YesYesYesMIPS including multiple ISA levels

NoNoYesIntel i960

YesYesYesIntel/AMD x86 (i386 and above)

NoNoYesHP PA-RISC

NoNoYesAMD A29K

PartialPartialNoAtmel AVR

YesYesYesARM with many CPU models

YesYesNoADI Blackfin

YesYesNoAltera NIOS II

CVSCVS4.84.84.64.6ArchitectureArchitecture

84

Procesory wspierane przez RTEMS (2)Procesory wspierane przez RTEMS (2)

No

Yes

Yes

Yes

Yes

No

Yes

Yes

Yes

4.84.8

YesYesYesSPARC including ERC32 and LEON

YesNoYesTI C3x/C4x

YesYesYesReneas SuperH including SH1, SH2, SH3, and SH4

YesYesYesReneas H8/300

YesYesYesPowerPC including 4xx, 5xx, 6xx, 7xx, 8xx, 52xx, and 74xx

NoNoYesOpenCores OR32

YesYesYesFreescale Coldfire

YesYesYesFreescale MC683xx

YesYesYesFreescale MC68xxx

CVSCVS4.74.74.64.6ArchitectureArchitecture

No

Yes

Yes

Yes

Yes

No

Yes

Yes

Yes

4.84.8

YesYesYesSPARC including ERC32 and LEON

YesNoYesTI C3x/C4x

YesYesYesReneas SuperH including SH1, SH2, SH3, and SH4

YesYesYesReneas H8/300

YesYesYesPowerPC including 4xx, 5xx, 6xx, 7xx, 8xx, 52xx, and 74xx

NoNoYesOpenCores OR32

YesYesYesFreescale Coldfire

YesYesYesFreescale MC683xx

YesYesYesFreescale MC68xxx

CVSCVS4.74.74.64.6ArchitectureArchitecture

85

Procesory wspierane przez RTEMS (2)Procesory wspierane przez RTEMS (2) System RTEMS wspiera trzy rodzaje API (ang. Application Programming Interface)

Natywne API systemu operacyjnego (Classic API),rtems_status_code rtems_semaphore_create( rtems_name name, uint32_t count, rtems_attribute attribute_set, rtems_task_priority priority_ceiling, rtems_id *id );

API zgodne z standardem POSIX (z pewnymi ograniczeniami)

int sem_init( sem_t *sem, int pshared, unsigned int value );

API zgodne z standardem ITRONER cre_sem( ID semid, T_CSEM *pk_csem );

86

Architektura systemu operacyjnego Architektura systemu operacyjnego RTEMSRTEMS

GUIs

SAPI

Board Support PackageSuperCore

SuperCore CPULibCHIP

Hardware

LibCPU

Classic API POSIX Threads ITRON API

BSD TCP/IP Stack

POSIX Compliant Filesystem

RPC/XDR

tftp ftpd

PPP

SNMP

Ada95

CORBA

Performance Monitoring API

Remote Debugging

httpd

DHCP BOOTPICMP

MicroWindows

NanoX

OpenGUI

FLTK

picoTk

Add-on Libraries

Tclncurses

libavlreadline

zlibIMFS TARFSGNAT

Classic API

Bindings

FAT TFTP clientNFS client

telnetd

87

20.80 (1.90)13.90 (1.68)VxWorks

17.48 (1.69)8.17 (3.74)RTEMS

Loaded System

9.65 (0.91)6.10 (1.58)VxWorks

6.80 (0.96)5.04 (3.45)RTEMS

Idle System

Context Switching(usec)Maximum (Average)

Interrupt latency (usec)Maximum (Average)

MVME5500

20.80 (1.90)13.90 (1.68)VxWorks

17.48 (1.69)8.17 (3.74)RTEMS

Loaded System

9.65 (0.91)6.10 (1.58)VxWorks

6.80 (0.96)5.04 (3.45)RTEMS

Idle System

Context Switching(usec)Maximum (Average)

Interrupt latency (usec)Maximum (Average)

MVME5500

Porwnanie czasu obsugi przerwa oraz Porwnanie czasu obsugi przerwa oraz przeczenia kontekstuprzeczenia kontekstu

88

RTEMS - PodsumowanieRTEMS - Podsumowanie

W przypadku pracy bez obcienia zarwno RTEMS jak i VxWorks wykazuj podobne opnienia czasoweW przypadku pracy z obcieniem RTEMS wykazuje niewiele wiksz stabilno opnie ni system WxVorksJeeli chodzi o wydajno i stabilno RTEMS jest systemem porwnywalnym do komercyjnych systemw czasu rzeczywistegoRTEMS jest systemem elastycznym, niezawodnym oraz odpowiednim nawet do zastosowa o ostrych wymaganiach czasowychRTEMS jest nieustannie rozwijany co potwierdza stale zwikszajca si lista obsugiwanych procesorwRTEMS nie jest tak popularnym systemem jak Linux, jednake gwarantuje wysok wydajno i stao opnie czasowych nawet w przypadku bardzo obcionego systemu. Tego typu parametry s mniej przewidywalne w przypadku systemu LinuxDostp do implementacji RTEMS dla danej platformy sprztowej jest gwarantowany nawet jeeli nie jest ona wspierana w kolejnych wersjach systemu

Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31Slide 32Slide 33Slide 34Slide 35Slide 36Slide 37Slide 38Slide 39Slide 40Slide 41Slide 42Slide 43Slide 44Slide 45Slide 46Slide 47Slide 48Slide 49Slide 50Slide 51Slide 52Slide 53Slide 54Slide 55Slide 56Slide 57Slide 58Slide 59Slide 60Slide 61Slide 62Slide 63Slide 64Slide 65Slide 66Slide 67Slide 68Slide 69Slide 70Slide 71Slide 72Slide 73Slide 74Slide 75Slide 76Slide 77Slide 78Slide 79Slide 80Slide 81Slide 82Slide 83Slide 84Slide 85Slide 86Slide 87Slide 88