Kravanalys och implementering av ett realtidssystem med höga dataprestanda

Relevanta dokument
TDDC47 Realtids- och processprogrammering. Jourhavande-lärare: Mehdi Amirijoo (Telefonnummer: , ).

Lösningar modul 3 - Lokala nätverk

FÖRDJUPNINGS-PM. Nr Kommunalt finansierad sysselsättning och arbetade timmar i privat sektor. Av Jenny von Greiff

Beräkna standardavvikelser för efterfrågevariationer

Centrala Gränsvärdessatsen:

FÖRDJUPNINGS-PM. Nr Kommunalt finansierad sysselsättning och arbetade timmar i privat sektor. Av Jenny von Greiff

2B1115 Ingenjörsmetodik för IT och ME, HT 2004 Omtentamen Måndagen den 23:e aug, 2005, kl. 9:00-14:00

KURS-PM för. Namn på kurs (YTLW37) 40 Yhp. Version 1.1 Uppdaterad

Billigaste väg: Matematisk modell i vektor/matrisform. Billigaste väg: Matematisk modell i vektor/matrisform

Mätfelsbehandling. Lars Engström

Flode. I figuren har vi också lagt in en rät linje som någorlunda väl bör spegla den nedåtgående tendensen i medelhastighet för ökande flöden.

Chalmers, Data- och informationsteknik DAI2 samt EI3. Peter Lundin. Godkänd räknedosa

Moment 2 - Digital elektronik. Föreläsning 2 Sekvenskretsar och byggblock

Experimentella metoder 2014, Räkneövning 5

Optimering i samband med produktionsplanering av, och materialförsörjning vid, underhåll av flygmotorer

Utbildningsdepartementet Stockholm 1 (6) Dnr 2013:5253

Test av anpassning, homogenitet och oberoende med χ 2 - metod

Projekt i transformetoder. Rikke Apelfröjd Signaler och System rikke.apelfrojd@signal.uu.se Rum 72126

Balansering av vindkraft och vattenkraft i norra Sverige. Elforsk rapport 09:88

Tentamen i Dataanalys och statistik för I den 5 jan 2016

2014 års brukarundersökning inom socialtjänstens vuxenavdelning i Halmstads kommun

KVALITETSDEKLARATION

Snabbguide. Kaba elolegic programmeringsenhet 1364

Jag vill tacka alla på företaget som har delat med sig av sina kunskaper och erfarenheter vilket har hjälpt mig enormt mycket.

unicon ANALYS AV DATORER I KONTROLLRUM FÖR KÄRNKRAFTVERK SLUTRAPPORT UNICON FÖRENADE KONSULTER

Bankernas kapitalkrav med Basel 2

Performansanalys LHS/Tvåspråkighet och andraspråksinlärning Madeleine Midenstrand

Utbildningsavkastning i Sverige

N A T U R V Å R D S V E R K E T

Kvalitetsjustering av ICT-produkter

Tentamen (TEN2) Maskininlärning (ML) 5hp 21IS1C Systemarkitekturutbildningen. Tentamenskod: Inga hjälpmedel är tillåtna

Företagsrådgivning i form av Konsultcheckar. Working paper/pm

Monterings- och bruksanvisning. VideoTerminal

En studiecirkel om Stockholms katolska stifts församlingsordning

OBS! Dina högtalare (medföljer ej) kan skilja sig från de som visas på bild i denna bruksanvisning. modell RNV70 HIFI-SYSTEM

Beställningsintervall i periodbeställningssystem

Förstärkare Ingångsresistans Utgångsresistans Spänningsförstärkare, v v Transadmittansförstärkare, i v Transimpedansförstärkare, v i

Hur bör en arbetsvärderingsmodell

HR Kort beskrivning. 1. Leveransomfattning

Laser Distancer LD 420. Bruksanvisning

Introduktionsersättning eller socialbidraghar ersättningsregim betydelse för integrationen av flyktingar? 1

Handlingsplan mot hedersrelaterat våld och förtryck i skolan

Att identifiera systemviktiga banker i Sverige vad kan kvantitativa indikatorer visa oss?

VALUE AT RISK. En komparativ studie av beräkningsmetoder. VALUE AT RISK A comparative study of calculation methods. Fredrik Andersson, Petter Finn

Elteknik Svenska AB. FACI - trygghetslarm. Produktlista. Kontaktperson: Palle Wiklund Telefon: Fax:

A2009:004. Regional utveckling i Sverige. Flerregional integration mellan modellerna STRAGO och raps. Christer Anderstig och Marcus Sundberg

BEREDSKAP MOT ATOMOLYCKOR I SVERIGE

Partikeldynamik. Fjädervåg. Balansvåg. Dynamik är läran om rörelsers orsak.

Skoldemokratiplan Principer och guide till elevinflytande

Partikeldynamik. Dynamik är läran om rörelsers orsak.

Blixtkurs i komplex integration

Vinst (k) Sannolikhet ( )

ETE115 Ellära och elektronik, tentamen oktober 2007

rm o rs W e d n r: A e n tio stra Illu Grön Flagg-rapport Förskolan Kalven 23 jan 2014

TAOP61 Optimering av realistiska sammansatta system. Speciellt med denna kurs. Uppdateringar. Kursplan

Riktlinjer för avgifter och ersättningar till kommunen vid insatser enligt LSS

rm o rs W e d n r: A e n tio stra Illu Grön Flagg-rapport Lyckornas förskola 25 jun 2013

Om ja, hur har ni lagt upp och arbetat i Grön Flagg-rådet/samlingarna med barnen och hur har det upplevts?

Fond-i-fonder. med global placeringsinriktning. Ett konkurrenskraftigt alternativ till globalfonder? En jämförelse med fokus på risk och avkastning.

(MP) Bilaga KS 2018/ 60/2, yttrande från kommunstyrelsens förvaltning Bilaga KS 2018/60/4, yttrande kommunstyrelsens ordförande

Innehåll Etablera instrument Funktioner Tekniska data Inställningar Meddelandekoder Underhåll Garanti Säkerhetsföreskrifter Funktioner

Sammanfattning, Dag 1

När vi räknade ut regressionsekvationen sa vi att denna beskriver förhållandet mellan flera variabler. Man försöker hitta det bästa möjliga sättet

Växelström = kapitel 1.4 Sinusformade växelstorheter

Tillfälliga elanläggningar (Källor: SEK handbok 415 oktober 2007, SS kap 704, ELSÄK-FS)

Stela kroppars rörelse i ett plan Ulf Torkelsson

2 Jämvikt. snitt. R f. R n. Yttre krafter. Inre krafter. F =mg. F =mg

Arbetslivsinriktad rehabilitering för sjukskrivna arbetslösa funkar det?

rm o rs W e d n r: A e n tio stra Illu Grön Flagg-rapport Talavidskolan 15 aug 2013

Mos. Statens väg- ochtrafi V" NationalRoad&Traffic Research Institute- $-58101Li: Lä & t # % p. i E d $ åv 3 %. ISSN

Tillämpningar av dekomposition: Flervaruflödesproblemet. Flervaruflödesproblemet: Lagrangeheuristik

Gymnasial yrkesutbildning 2015

Grön Flagg-rapport Tryserums förskola 3 dec 2014

Industrins förbrukning av inköpta varor (INFI) 2008

Optimering av underhållsplaner leder till strategier för utvecklingsprojekt

FK2002,FK2004. Föreläsning 5

GRÄNSBETECKNINGAR _ ALLMÄN PLATS KVARTERSMARK :B,H ' =-'.=.' ~ 1-~.1-._. - J. K Ll_ ,0 Föreskriven höjd över nollplanet.

Maskininlärningsbaserad koreferensbestämning för nominalfraser applicerat på svenska texter

Ringanalys VTI notat VTI notat Analys av bindemedel

Lektion 8 Specialfall, del I (SFI) Rev HL

Skolbelysning. Ecophon, fotograf: Hans Georg Esch

Stresstest för försäkrings- och driftskostnadsrisker inom skadeförsäkring

Övningsexempel och lösningar för. TDDC47 Realtids- och processprogramering

IN1 Projector. Snabbstart och referenshandbok

En kort introduktion till principalkomponenttransformation och kanonisk diskriminantanalys av multispektrala data

Viktig information från din kommun!

1. a Vad menas med medianen för en kontinuerligt fördelad stokastisk variabel?

Grön Flagg-rapport Idala förskola 30 dec 2014

Sammanfattning av kvalitetsrapporter - kommunala skolorna

Grön Flagg-rapport Förskolan Linden 6 sep 2015

Utveckling av en optimeringsmodell för upphandlingar inom telefoni

Manual ADSL INDD[VE ] PDF [VE ] VERSION [ ]

Industrins förbrukning av inköpta varor INFI

Förklaring:

Grön Flagg-rapport Förskolan Näckrosen 9 dec 2014

Beräkna standardavvikelser för efterfrågevariationer

Grön Flagg-rapport Vallaskolan 4 jul 2014

Steg 1 Arbeta med frågor till filmen Jespers glasögon

Grön Flagg-rapport Rots skola 30 dec 2014

Grön Flagg-rapport Berga förskola 2 jun 2015

Transkript:

Examensarbete Kravanalys och mplementerng av ett realtdssystem med höga dataprestanda Patrk Lantto LTH-IDA-Ex-9709 1997-03-04

PATRIK LANTTO Kravanalys och mplementerng av ett realtdssystem med höga dataprestanda Examensarbete utfört vd Lnköpngs Teknska Högskola och OPQ Systems AB, Lnköpng. Examnator: Anders Törne Handledare: Olof Atterfors

Sammanfattnng Denna rapport presenterar ett examensarbete utfört på OPQ Systems AB Lnköpng. OPQ konstruerar system för mätnng av ett antal olka parametrar på vägar. Beräknngarna görs realtd, huvudsaklgen på sgnalprocessorer. Nya beräknngar med högre prestandakrav än dagens system kan tllgodose, och önskemål om att bättre kunna utnyttja gemensamma beräknngar för olka mätparametrar gör att OPQ undersöker hur ett nytt system skulle kunna konstrueras. Syftet med examensarbetet är att undersöka vlka krav som bör ställas på ett nytt system, främst utgående från teorn om realtdssystem. Därefter föreslås lösnngar som uppfyller kraven, och delar av systemet mplementeras på en av OPQ utvald processor. Resultatet vsar att den utvalda processorns prestanda är fullt tllräcklga för att kunna ersätta dagens system och uppfylla nya önskemål, och att de mplementerade lösnngarna uppfyller de krav som ställts. Även om en annan processor väljs bör ett nytt system utvecklas baserat på teorn om realtdssystem, och då är de förslagna lösnngarna är en bra utgångspunkt.

Abstract Ths report presents a master degree thess carred out at OPQ Systems AB n Lnköpng, Sweden. OPQ develops systems for measurement of a number of road surface parameters. The calculatons are performed n real-tme, prmarly on dgtal sgnal processors. New calculatons wth hgher demands on performance than can be met by the current system, and the wsh to be able to share calculatons that are common for dfferent parameters has led to OPQ s nvestgatng how a new system could be desgned. The purpose of ths thess s to analyse the requrements for a new system, prmarly based on the theory of real-tme systems. Proposed solutons to fulfl the requrements are presented, and parts of the system are also mplemented on a processor selected by OPQ. The result shows that the chosen processor and the new system are fully capable of replacng the current system, and that the mplemented solutons fulfl the presented requrements. Even f another processor s chosen, a new system should be developed based on the real-tme theory, and the proposed solutons are then an adequate bass for such development. v

Innehåll Sammanfattnng Abstract v Innehåll v Fgurer och tabeller v 1 Inlednng 1 1.1 Bakgrund 1 1.2 Syfte 3 Realtdsegenskaper 3 Implementerng 4 1.3 Avgränsnngar och genomförande 4 1.4 Läsanvsnngar 4 Formler 5 Språk 5 2 Teoretsk referensram 6 2.1 Samtdg exekverng 6 Processtllstånd 7 Klassfcerng 8 2.2 Realtdssystem 10 Tllgång tll klocka 11 v

INNEHÅLL v Fördröjnng av processer 11 Maxtder 12 Tdsgränser 12 2.3 Restrktoner på realtdssystem 12 2.4 Schemaläggnng av processer 13 Tdsattrbut för processer 13 2.5 Statska algortmer 14 Cyclc executve 14 Preemptve preference prorty-based schedulng 14 Rate-monotonc schedulng 15 Deadlne monotonc schedulng 15 Krtskt ögonblck 15 Optmal prorty assgnment 16 Tdsförluster systemet 17 2.6 Dynamska algortmer 18 2.7 Schemaläggnng av slacktd 18 3 Kravanalys 19 3.1 Krav på processor 19 Datanläsnng 19 Beräknngar på data 20 Applkatonsspecfka beräknngar 21 Övrg processortd 22 Sammanfattnng av processorkrav 22 3.2 Krav på schemaläggare 23 Tdsgränser 24 Uppstart av processer 24 Uppmätnng av beräknngstd 24 Sammanfattnng av systemkrav 25 4 Undersöknng och desgn 26 4.1 Undersöknng av processor 26 Prestanda 27 Datanläsnng 27 Övrgt 27 4.2 Schemaläggare 28 Algortm 28 Schemaläggnng av slacktd 29 Uppstart av processer 30 5 Systemmplementerng 31 5.1 Prortetstlldelnng 31 5.2 Realtdssystem 36

INNEHÅLL v Aktverng av processer 36 Schemaläggare 37 Dspatcher 37 Uppstart av processer 38 Uppmätnng av beräknngstd 38 6 Resultat och slutsatser 40 6.1 Resultat 40 Test av schemaläggnng 42 Tdsåtgång systemet 43 6.2 Slutsatser och rekommendatoner 43 A Programkod 45 A.1 Optmal prorty assgnment 45 Referenser 48 Index 50

Fgurer och tabeller Fgurer Fgur 1: Dataflödesmodell 3 Fgur 2: Processövergångar 7 Fgur 3: Tdsattrbut för processer 14 Fgur 4: Omvandlng från tds- tll spataldomän 21 Fgur 5: Tdsdagram över exekverng av Audsleys processuppsättnng 42 Fgur 6: Tdsdagram över exekverng av fktva mätapplkatoner 43 Tabeller Tabell 1: Processer från Audsleys rapport (tder ms) 41 Tabell 2: Processer motsvarande mätapplkatoner (tder ms) 42 v

1 Inlednng Detta kaptel ger en bakgrund tll examensarbetet, en presentaton av företaget, en kommentar om avgränsnngar och genomförande samt läsanvsnngar för rapporten. 1.1 Bakgrund Företaget, på vlket examensarbetet utförs, heter OPQ Systems AB och har drygt 10 års td sysslat med konstrukton av utrustnng för mätnng av olka parametrar på vägar. Mätutrustnngen är monterad en skåpbl, och huvudprncpen är att mätnngen ska kunna utföras utan att störa övrg trafk, samt att behovet av efterbehandlng ska vara så ltet som möjlgt. Detta ställer två krav på mätsystemet; dels måste det hantera hastgheter krng 90 km/h och dessutom vsa upp realtdsegenskaper när det gäller att ta hand om de data som kommer n systemet. Mätutrustnngen består av ett stort antal gvare, t. ex. laserkameror för att mäta vägytan, accelerometrar, nklnometrar och gyro för att mäta hur blen gungar, lutar respektve svänger, samt hjulpulsräknare för att hålla 1

KAPITEL 1 INLEDNING 2 reda på hastghet och dstans. Data från gvarna tas n tll DSP-kort (processorkort som bygger på en DSP, dgtal sgnal processor) som realtd utför beräknngar på data. Exempel på mätapplkatoner är textur som mäter vägens kornghet för olka våglängder, IRI (nternatonal roughness ndex) som mäter jämnhet enlgt en nternatonellt fastställd standard, sprckmätnng som räknar och kategorserar olka sprcktyper, längs- och tvärprofl för vägens lutnng, samt vattendjup som beräknar hur mycket vatten som kan samlas eventuella hjulspår. För att kompensera bort blens rörelser används olka metoder; texturapplkatonen mäter på så korta våglängder att blens gungnngar kan fltreras bort med ett högpassflter. För IRI däremot används en accelerometer för att kunna kompensera laservärdet mot blens gungnngar. De DSP-kort som används är utvecklade av OPQ, och är baserade på två stycken TMS320C26-processorer från Texas Instruments. Då korten konstruerades 1989 var dessa processorer bland de snabbare på marknaden, och eftersom dessa hastgheter nte var tllräcklga för mer än en process på varje processor var det nte aktuellt att lägga ner utvecklngstd på ett operatvsystem för processorerna. Istället utvecklades ett övergrpande system, MCA, som styr alla DSP-kort, och dess funkton har vssa lkheter med den funkton ett operatvsystem har, dvs. meddelandehanterng, dataprotokoll m.m. Den databuss över vlken DSP-korten och MCA kommuncerar är tllräcklgt snabb för överförng av färdgberäknade data från applkatonerna tll MCA, men där lgger också dess gräns. Även om vssa beräknngar är gemensamma för flera applkatoner, räcker nte databussen tll för att överföra resultat från en applkaton tll en annan. Detta nnebär att vssa beräknngar måste utföras parallellt på flera olka processorer. Utöver de parametrar som mäts dag fnns även önskemål om nya mätparametrar med betydlgt högre prestandakrav. Med dagens hårdvara kan många av dessa nte mplementeras utan att dra ner på noggrannheten, eller genom att gå från kraven på realtdsegenskaper och utföra efterbehandlng av data. För att undvka redundanta beräknngar, och för att motsvara nya krav vll OPQ undersöka hur ett nytt system kan konstrueras.

KAPITEL 1 INLEDNING 3 1.2 Syfte Bland de sgnalprocessorer som fnns på marknaden dag fnns många processorer som är flera gånger snabbare än de TMS320C26-processorer som används av OPQ dag. Ett byte skulle möjlggöra mer exakta mplementerngar för mätnng av parametrar med höga prestandakrav, men framför allt kan flera applkatoner dela på en processor, och därgenom ges bättre förutsättnngar att utnyttja gemensamma beräknngar. Att låta flera applkatoner utnyttja data från samma beräknng skulle nte bara spara processorkraft, utan också framtvnga tydlgare avgränsnngar mellan de olka beräknngsstegen en applkaton. Att på detta sätt nföra en högre abstraktonsgrad kommer också medföra enklare testnng och en tydlgare kopplng mellan algortm och mplementerng. Detta kommer, förhoppnngsvs, resultera kortare utvecklngstd för nya applkatoner. En modell över dataflödet som är önskvärd att använda, men som dag nte är applcerbar, vsas fgur 1. Varje delkomponent har ett tydlgt gränssntt mot andra komponenter; ett dataflöde n och ett ut. Genom att dela upp varje applkaton sådana delkomponenter kan beräknngar enkelt återanvändas genom att»ansluta«en komponent tll önskat dataflöde. D atanläsnng Förbehandlng och dv. flter G r änssnt t mot värddator Applkatonsalgor t mer Fgur 1: Dataflödesmodell Realtdsegenskaper De realtdsegenskaper som krävs under mätnng har dagens system analyserats genom att varje applkaton mplementera olka grad av funkton för att upptäcka då tden nte räcker tll. Därefter har applkatonerna provkörts för att undersöka om alltng hnns med som det är tänkt, eller om delar av applkatonen måste mplementeras om för att bl snabbare. Så länge man bara har en process på varje processor är

KAPITEL 1 INLEDNING 4 denna analysmetod fullt tllräcklg. I ett system med multprocesshanterng på processorerna ökar dock komplexteten markant. Alla applkatoner blr beroende av varandra, och undersöknngar både praktska och teoretska måste göras med alla applkatoner samtdgt. Syftet med detta examensarbete är att utreda dessa problem, dvs.: att undersöka vlka krav som måste ställas på ett nytt system baserat på en snabbare processor som delas mellan flera applkatoner; att utfrån vald algortm ta fram analysmetoder för undersöknng av systemets realtdsegenskaper; att mplementera valda delar av systemet för att kunna utvärdera de olka lösnngarna. Implementerng Implementerngen sker på en av OPQ redan utvald processer, ADSP-2106x SHARC från Analog Devces. Att vsa att dess prestanda är tllräcklga ngår som en deluppgft examensarbetet, och detta görs genom att jämföra med prestandakrav baserade på dagens system och önskade förbättrngar. 1.3 Avgränsnngar och genomförande De avgränsnngar som görs examensarbetet gäller huvudsaklgen mplementerng av de olka delarna systemet. För att hålla ner omfattnngen på en rmlg nvå mplementeras bara de mest grundläggande delarna schemaläggaren. Målet är att ändå kunna vsa att ställda krav uppfylls genom att provköra systemet. Systemet körs på ett utvärderngskort, EZ-LAB från Bttware Research Systems. Kortet är utrustat med en ADSP-21062, som är den mndre varanten av processorn (med 2 stället för 4 Mbt mnne), och stter som nstckskort en PC. 1.4 Läsanvsnngar Efter nlednngen, som övergrpande presenterar problemen och syftet med arbetet, följer ett kaptel med den teor som lgger tll grund för hela arbetet. Kaptel 3 presenterar sedan problemen mer ngående utfrån den

KAPITEL 1 INLEDNING 5 presenterade teorn. De metoder som används mplementerngen beskrvs och motveras kaptel 4, och kaptel 5 behandlas mer ngående själva mplementerngen. Slutlgen sammanställs resultat och slutsatser kaptel 6. Den programkod som producerats under arbetet ngår nte sn helhet rapporten, men de delar som dskuteras mer ngående ges även stt sammanhang blaga A. Formler De formler som ges använder samma notaton som övrg ltteratur på området. Av dessa kan två skrvsätt behöva en förklarng: Intervall anges med hakparentes för ett slutet ntervall och med vanlg parentes för ett öppet, t.ex. betyder [ ab, ) alla tal x med a x< b. a nnebär det heltal b sådant att b a. Språk Även om dataområdet allmänhet, och mer specfka delar som realtdssystem synnerhet, har många engelska termer som ännu nte översatts, har jag valt att skrva denna rapport på svenska. I första hand för att vsa att teknska rapporter nte behöver skrvas på engelska bara för att termnologn är engelsk, men även för att kunna kombnera den strngens ämnet kräver med ett varerat och ntressant språk som nte»tråkar ut«läsaren. Det senare har jag svårt att uppnå på annat språk än svenska. De svenska termer som används är valda med omsorg; förekommande fall utfrån befntlg ltteratur, och vssa fall med hjälp från TNC, Teknska nomenklaturcentralen. Vd första användandet av en ny term ges även motsvarande engelska term nom parentes för att ge läsaren möjlghet att jämföra med engelsk ltteratur på området. I ndex fnns också hänvsnngar från engelska termer tll svenska termer. Vssa namn på algortmer har fått behålla sna engelska namn, trots att de ofta är en beskrvnng av algortmen som skulle kunna översättas. Namnen är dock så väl vedertagna på området att man snarare kan se dem som egennamn än beskrvnngar. Dessa namn är satta med kursvt typsntt.

2 Teoretsk referensram Grunden realtdssystem är samtdg exekverng av processer (concurrent executon). Något förenklat fnns egentlgen bara en skllnad mellan ett generellt operatvsystem med samtdg exekverng och ett realtdssystem tdsbegreppet. I det här kaptlet ges en teoretsk bakgrund tll projektet genom att förklara begreppen samtdg exekverng samt dess utvdgnng tll realtdssystem. Beskrvnngen av samtdg exekverng fnns med som bakgrund tll genomgången av realtdssystem. Utöver detta ges en genomgång av några utvalda algortmer för schemaläggnng av processer. 2.1 Samtdg exekverng Concurrent programmng s the name gven to programmng notaton and technques for expressng potental parallelsm and solvng the resultng synchronzaton and communcaton problems. (Ben-Ar, 1982) 6

KAPITEL 2 TEORETISK REFERENSRAM 7 Samtdg exekverng nnebär som ctatet ovan antyder nte nödvändgtvs att flera saker utförs samtdgt, men att möjlgheten fnns att de gör det. Grunden samtdg exekverng är processer, som kan ses som sekventella program. Beroende på hur samtdg exekverng mplementeras kommer en mängd processer att exekveras, antngen genom att turas om på en processor, eller genom att en eller flera processer exekveras på olka processorer ett multprocessorsystem. Bara det senare fallet fnns möjlgheten tll äkta parallell exekverng av två processer. De olka algortmer som fnns för att låta flera processer dela på en processor, dvs. schemaläggnng (schedulng), tas nte upp det allmänna fallet. Istället behandlas algortmer som tar hänsyn tll td avsntt 2.4. Processtllstånd Mängden av processer som exekveras ett multprocessorsystem brukar delas n ett antal delmängder som betecknar det tllstånd processen är ; exekverande (runnng), körbara (ready), och väntande (watng). De exekverande processerna är de som för stunden exekveras på processorerna systemet, dvs. högst en för varje processor. De körbara processerna är de som är färdga att exekvera på processorn när den blr ledg, och de väntande är de som väntar på någon ntern eller extern händelse, t. ex. meddelande från annan process eller någon användarstyrd händelse. Övergångarna mellan de olka mängderna vsas fgur 2. Exekverande Körbara Väntande Fgur 2: Processövergångar Den streckade plen mellan de exekverande processerna och de körbara beror på hur schemaläggnngen mplementeras. Bara om en process kan avbrytas av schemaläggaren nnan processen är färdg, s. k. preemptve schedulng, kan en exekverande process övergå tll en körbar.

KAPITEL 2 TEORETISK REFERENSRAM 8 Klassfcerng När man ska konstruera ett system med samtdg exekverng fnns det ett antal faktorer som påverkar hur systemet mplementeras (Burns och Wellngs, 1990): struktur (structure); nvå (level); granulartet (granularty); ntalserng (ntalzaton); termnerng (termnaton); representaton (representaton). Strukturen för ett system är antngen statsk eller dynamsk. Statsk struktur nnebär att systemet har ett fxt antal processer som är bestämt vd ntalserng. Med dynamsk struktur kan processer skapas när som helst vlket nnebär att antalet processer endast är känt under exekverng. Nästa faktor påverkar nte systemet sg så mycket, utan mer programspråket: ett systems nvå anger var processer är defnerade. Om processer kan defneras alla nvåer av systemet säger man att systemet har nästad nvå. Motsatsen, då processer bara kan defneras systemets översta nvå kallas plan nvå. Nästad nvå nnebär t. ex. att processer kan skapas som underprocesser andra processer och dela funktoner och varabler. Med granulartet karaktärseras antalet processer, samt deras lvslängd. Om det är få processer med lång lvslängd har systemet grov granulartet, med många processer som bara utför några få saker sägs granularteten vara fn. Ett exempel på fn granulartet är konstruktonen cobegn programspråket Edson 1. Beräknngarna av X och Y kommer att utföras parallellt nedanstående program: cobegn X := sn(v); Y := sn(v); coend Intalserng av en ny process kan ske antngen genom att skcka med parametrar tll processen, eller genom att kommuncera med processen när den har startats upp. 1. Ett programspråk avsett för nbyggda system (embedded systems) med flera processorer (Burns och Wellngs, 1990).

KAPITEL 2 TEORETISK REFERENSRAM 9 Termnerng av processer kan ske: efter den ssta raden processens program; genom att processen»begår självmord«, dvs. anropar någon form av avslutnngsfunkton; genom att en process termnerar en annan process; vd fel som nte tas om hand av processen, t.ex. ogltg nstrukton; aldrg, processen består av en cke-termnerande loop; när processen nte längre behövs. Den enklaste typen av termnerng att mplementera ett system är naturlgtvs att förutsätta att processer aldrg avslutas. Utöver det blr antalet mplementerade varanter en kompromss mellan systemkraven och mplementerngens komplextet. Att låta en process avsluta en annan ställer t.ex. krav på att systemet kan frgöra de resurser som allokerats av den process som termneras. Den ssta egenskapen är representaton hur samtdg exekverng representeras programspråket. Det fnns tre grundläggande metoder: fork och jon, cobegn, och explct deklaraton av processer. Den enklaste varanten att mplementera är fork och jon, då den nte kräver någon specell programspråkskonstrukton, utan kan mplementeras som funktonsanrop. I nedanstående exempel programspråket Mesa 2 kommer den del av programmet som lgger mellan fork och jon att exekveras parallellt med funktonen F. Värdet som returneras av fork är en dentferare för den nya process som skapas. Denna dentferare ges sedan som argument tll jon som väntar på att den dentferade processen termnerar. functon F return... ; procedure P;... C := fork F;.. J := jon C;... end P; 2. Ett programspråk som används av Xerox deras kontorsmaskner (Burns och Wellngs, 1990).

KAPITEL 2 TEORETISK REFERENSRAM 10 Den andra varanten, cobegn (se exempel på fn granulartet ovan), ger stöd för att uttrycka t.ex. parallella algortmer på ett tydlgt sätt. Implementerngsmässgt kräver den dock både stöd programspråket och en systemkonstrukton som kan hantera fn granulartet. Den ssta grundläggande varanten är explct deklaraton av processer. Med fork och jon, och cobegn exekveras en procedur parallellt om den anropas med fork respektve om den anropas mellan cobegn och coend. Med explct deklaraton är det stället proceduren själv som anger att den ska utföras parallellt. Ett anrop tll en sådan procedur kommer att skapa en ny process vlken proceduren utförs. Följande exempel Modula-1 skapar två processer: MODULE man; PROCESS control(pos : nteger); BEGIN... END control; BEGIN control(0); control(1); END man. 2.2 Realtdssystem... any nformaton processng actvty or system whch has to respond to externally-generated stmul wthn a fnte and specfed perod. (Young, 1982) I Youngs defnton av realtdssystem httar man två grundläggande kännetecken för ett realtdssystem: systemet styrs av externa händelser och svarstdens längd är av betydelse. För att ett samtdgt exekverande system även ska uppfylla defntonen för ett realtdssystem måste alltså begreppet td nföras, vlket kan beskrvas med följande krav (Burns och Wellngs, 1990): Tllgång tll en klocka för att kunna mäta tdsntervall. Möjlghet att fördröja en process en bestämd td. Programmerbara maxtder (tme-outs) för att kunna upptäcka och

KAPITEL 2 TEORETISK REFERENSRAM 11 hantera när en händelse nte sker nom ett defnerat tdsntervall. Möjlghet att specfcera tdsgränser (deadlnes) för processer samt en schemaläggare som tar hänsyn tll dessa. De fyra kraven bygger på varandra, varför alla måste mplementeras ett system. Däremot behöver nte alla mplementeras så att de är tllgänglga på processnvå. T. ex. för ett system med enbart perodska processer (se avsntt 2.4) behöver nte de två första kraven vara tllgänglga för processerna. Tllgång tll klocka Att mplementera en klocka kräver naturlgtvs första hand en realtdsklocka hårdvara. Den enklaste varanten är processorns nterna klocka. I de fall då det fnns två klockor processorn kan en av dessa helt avsättas tll att hålla reda på tden. I annat fall krävs vss eftertanke då samma klocka trolgen även måste användas tll schemaläggaren. En andra varant är att använda sg av en extern klocka, och lägga n stöd systemet för att kommuncera med den. En nackdel med extern klocka är dock att man gör sg beroende av ytterlgare hårdvara. När man bestämt sg för vlken hårdvaruklocka man ska använda sg av återstår att bestämma sg för hur tden ska representeras för processerna. Noggrannheten, dvs. mnsta tdsenheten, får vägas mot hur lång td som maxmalt ska kunna representeras, samt hur många btar man använder för värdet. Om tden representeras med t. ex. ett 32-btars tal och en mnsta tdsenhet på 1 µs kommer den maxmala tden som kan representeras att vara drygt 70 mnuter. Fördröjnng av processer För att förhndra att processer fördröjer sg själva genom att lgga en loop och vänta på att klockräknaren får ett vsst värde (s. k. busy wat) måste stöd för fördröjnng mplementeras systemet så att en annan process kan exekveras den td som den första väntar. Vktgt att notera är att fördröjnngen kan bl längre, men nte kortare, än önskad td beroende på andra processers prortet. Detta är dock ngen skllnad mot busy wat eftersom processer med högre prortet även det fallet kan avbryta exekverngen strax nnan klockräknaren slår om tll det värde som nväntades.

KAPITEL 2 TEORETISK REFERENSRAM 12 Maxtder Om en process ska kunna upptäcka avsaknaden av en extern händelse, t.ex. för att upptäcka om en gvare nte ger några mätvärden, måste de funktoner som väntar på en händelse utökas med en maxtd. En funkton som väntar på en angven extern händelse skulle då utökas med ett argument för maxtden, och ndkerar genom returvärdet om någon händelse nträffade, eller om maxtden passerades. Även här är det vktgt att notera att den td det tar nnan funktonen returnerar kan vara längre än den maxtd som specfcerades. Däremot bör den td med vlken händelsen jämförs vara den som angavs. Detta nnebär att en händelse kan ha nträffat även då funktonen returnerar för att tden tog slut, men så fall efter maxtden. Tdsgränser De tre krav som beskrvts ovan ger en process möjlgheten att upptäcka om en beräknng tagt för lång td, eller om en extern händelse nte nträffat nnan en specfcerad maxtd. Även om en process utför en vss beräknng tllräcklgt snabbt fnns det nget som garanterar att processen får tllgång tll processorn så lång td som den behöver, eller att den får det td. Därför måste processer även kunna specfcera hur lång td de behöver exekvera samt när beräknngen måste vara färdg. Att utfrån dessa specfkatoner schemalägga processerna så att önskemålen, den mån det är möjlgt, uppfylls, samt att på något bestämt sätt hantera de fall när tden nte räcker tll är den vktgaste funktonen ett realtdssystem. Då forsknngen på området fortfarande är relatvt ung fnns det ngen självklar lösnng av problemet. Ett antal, mer eller mndre olka algortmer fnns presenterade forskarrapporter (se avsntt 2.4 nedan). Utfrån systemkraven får man välja någon lämplg algortm och sedan göra eventuella anpassnngar. 2.3 Restrktoner på realtdssystem Om man ska kunna förutsäga ett realtdssystems egenskaper krävs det att de tder som är specfcerade för varje process är så noggranna som möjlgt. Anger man för snäva tdsgränser kan ett system fungera på papperet, men nte verklgheten. Om man stället anger för höga värden kan det resultera låg nyttjandegrad (andel processortd som används av processer). För att mnmera skllnaden mellan det högsta och lägsta värdet ( vssa

KAPITEL 2 TEORETISK REFERENSRAM 13 fall för att överhuvudtaget kunna räkna ut ett högsta värde) måste vssa system- och programspråkskonstruktoner undvkas. Dessa är bl. a. dynamsk allokerng av mnne, dynamsk processtruktur (se avsntt 2.1 ovan), och rekurson. Man kan dock tänka sg att tllåta dessa om de används under en ntalserngsfas nnan tdsgränser har specfcerats. 2.4 Schemaläggnng av processer Vd schemaläggnng ett realtdssystem brukar man dela n processerna två grundtyper: perodska och aperodska processer. Exempel på perodska processer är processer som samlar n data, och som måste hämta nya värden från gvare med jämna mellanrum. Typskt för aperodska processer är att deras exekverng är beroende av externa händelser, som t.ex. nterakton med användare. I det generella fallet görs nga specfkatoner om hur ofta en aperodsk process aktveras. Detta medför att man nte kan göra något antagande om processens maxmala krav på beräknngstd, varför man ofta brukar defnera en mnmtd mellan två aktverngar av en aperodsk process. För att sklja dessa processer från generella aperodska kallas de för sporadska processer (Burns och Wellngs, 1990). Ytterlgare en dstnkton för processer är hur vktgt det är att den klarar sna tdsgränser. Även om gränsen är flytande brukar man dela n processerna hårda och mjuka processer. En hård process kan nte mssa någon tdsgräns, då msslyckas processen. Om systemet används t. ex. ett flygplan skulle en mssad tdsgräns kunna vara katastrofal. En mjuk process kan däremot hantera en sådan stuaton; om datanläsnng görs från en buffert förloras nte data så länge man bara mssar tdsgränsen med kort td. Det som gör gränsen flytande är att man även talar om feltoleranta processer, där en process klarar en mssad tdsgräns förutsatt att en specell rutn anropas av systemet. Även dessa brukar dock benämnas som hårda processer. Tdsattrbut för processer Som grund för schemaläggnngen används ett antal attrbut för varje process τ. Vss varaton förekommer beroende på algortm, men de grundläggande är perodtd (perod), tdsgräns (deadlne) och beräknngstd (computaton tme). Perodtden T betecknar den önskvärda cykeltden för aktverng av process τ ; tdsgränsen D är den tdpunkt relatvt aktverng då τ måste vara färdg; beräknngstd C, är hur mycket processortd τ behöver värsta fall. För att klara av tdsgränsen krävs

KAPITEL 2 TEORETISK REFERENSRAM 14 alltså tllgång tll processorn C tdsenheter under alla ntervall [ nt, nt + D ] (se fgur 3). D D D Exekver ng 0 T 2T Fgur 3: Tdsattrbut för processer 3T 2.5 Statska algortmer Statska algortmer för schemaläggnng kännetecknas av att schemaläggnngen huvudsaklgen görs off-lne, t. ex. under komplerng av programmet, externt nnan systemet startas upp, eller systemet nnan processerna börjar exekvera. Motsatsen, då den större delen av schemaläggnng görs samtdgt som systemet exekverar, kallas för dynamska algortmer. Det är dock ngen tydlg gräns dem emellan; en större eller mndre del av schemaläggnngen kan göras statskt respektve dynamskt. De algortmer som brukar kallas statska utgår från ett fxt antal processer utfrån vlka en tur- eller prortetsordnng bestäms. Denna ordnng används sedan av den, mycket enkla, dynamska del som exekveras på processorn. Cyclc executve Den mest statska metoden är att vd komplerng bestämma turordnngen för alla processer, och sedan mplementera dem som ett enda program, cyclc executve. Alla processer utförs sekventellt, och vd behov väntar man n en vss tdpunkt nnan programmet fortsätter. Vanlgtvs används en tabell med olka tdpunkter, och den funkton som ska anropas. Nackdelen med en cyclc executve är att den kan bl svår att överblcka, och nföra förändrngar. Den används därför mest mndre system. Preemptve preference prorty-based schedulng En algortm som behåller processbegreppet som ensklda program, men som fortfarande är relatvt enkel att mplementera är preemptve preference prorty-based schedulng. Den körbara process som har högst prortet får exekvera på processorn, och om en annan process med högre prortet än den exekverande blr körbar, avbryts den första processen.

KAPITEL 2 TEORETISK REFERENSRAM 15 Algortmen är enkel att överblcka eftersom processerna mplementeras som ensklda delar, men dess predkterbarhet vd hög belastnng är otllräcklg de flesta fall; den enda process som med säkerhet klarar sna tdsgränser är den som har högst prortet (under förutsättnng att processorns prestanda är tllräcklga). Det har vsats att algortmen kan msslyckas med att schemalägga en mängd processer vd en nyttjandegrad så låg som 60 procent (Burns och Wellngs, 1990). Rate-monotonc schedulng År 1973 presenterade Lu och Layland en algortm som gav förbättrade egenskaper för preemptve preference prorty-based schedulng som kallas ratemonotonc schedulng (Lu och Layland, 1973). I stället för att sätta processernas prortet utfrån programmerarens önskemål sätts de omvänt mot perodtden T ; kortare perod ger högre prortet. Genom denna enkla förändrng ökas den undre gränsen för nyttjandegraden så att alla mängder av processer med nyttjandegrad lägre än 69 procent kan schemaläggas. Algortmen är optmal hänseendet att om en statsk algortm kan schemalägga en mängd processer kan man göra det med rate-monotonc schedulng. För att det ska gälla måste dock ett antal krav uppfyllas, bl.a. att det ska vara ett fxt antal processer, att samtlga ska vara perodska med D = T, dvs. tdsgräns satt tll peroden, och att alla processer aktveras vd tdpunkt noll. Deadlne monotonc schedulng En annan algortm, som även hanterar fall där D < T är deadlne monotonc schedulng (Audsley, 1990). I den sätts prorteten omvänt mot tdsgränsen D stället för T. Även denna algortm är optmal med samma krav som rate-monotonc schedulng med undantaget att även D < T tllåts (för D = T blr algortmen dentsk med rate-monotonc schedulng). Vdare utvecklng av de statska algortmerna har lättat även på andra krav. I en sammanställnng om forsknngen krng statsk schemaläggnng (Burns, 1995) ges översktlga beskrvnngar, samt hänvsnngar tll förbättrngar. Bl. a. tllåts både hårda och mjuka aperodska processer, varatoner av beräknngstd, C och T och fall där D > T. Krtskt ögonblck Värsta fallet vd schemaläggnng är då alla processer aktveras samtdgt, s. k. krtskt ögonblck (crtcal nstant). Om samtlga processer aktveras vd tdpunkt noll (enlgt krav för rate-monotonc schedulng) kommer

KAPITEL 2 TEORETISK REFERENSRAM 16 krtska ögonblck att nträffa för varje tdpunkt t = m lcm( T 1, T 2,..., T n ) där lcm är mnsta gemensamma multpel (least common multple). För att bevsa att en uppsättnng processer kan schemaläggas räcker det därför med att vsa att ngen process mssar sn tdsgräns efter aktverng vd ett krtskt ögonblck, dvs. smulera systemet för t = [ 0, P) där P = max( D1, D2,..., D n ). Optmal prorty assgnment Ett krav för att både rate-monotonc schedulng och deadlne monotonc schedulng ska vara optmala är att alla processer aktveras vd tdpunkt noll. Det fnns dock tllfällen då det är önskvärt att vänta med aktverngen av en process, t.ex. för att vänta n data som beräknas av en annan process. Därför har man nfört ett attrbut för fördröjnng (offset), O. Med nförandet av fördröjnng är det nte längre säkert att krtska ögonblck nträffar, varför bevset för att en mängd processer kan schemaläggas försvåras. Dessutom gäller alltså nte optmalteten för deadlne monotonc schedulng och rate-monotonc schedulng. Som lösnng på dessa problem har Audsley (1991) presenterat optmal prorty assgnment, en algortm som är optmal även för O 0. Utgångspunkten för algortmen är två satser. Om är en mängd av n processer, och Φ X en funkton för prortetstlldelnng sådan att Φ X ( τ A ) = n (observera att lägre prortet, dvs. mndre vktg, motsvaras av ett högre värde), så gäller följande satser: Sats 1: Om τ A har lägsta prortet, n, och nte klarar sna tdsgränser, fnns ngen prortetsordnng med Φ( τ A ) = n för vlken kan schemaläggas utan att mssa någon tdsgräns. Sats 2: Om τ A har lägsta prorteten, n, och klarar sna tdsgränser gäller att om någon prortetsordnng för exsterar för vlken kan schemaläggas utan att mssa någon tdsgräns, så fnns en prortetsordnng där τ A tlldelas lägsta prortet. Dessa satser gör att en algortm nte behöver prova alla prortetsordnngar, utan kan ttta på en prortetsnvå taget, den lägsta. Om man httar en process som klarar sna tdsgränser för lägsta prortet n, med godtycklg ordnng på de n 1 övrga processerna, kan den tlldelas prortet n. Därefter tttar man på prortet n 1, och då behöver de processer som redan är tlldelade prortet nte räknas med. Om ngen process httas för någon nvå kan algortmen avbrytas eftersom ngen prortetsordnng då exsterar.

KAPITEL 2 TEORETISK REFERENSRAM 17 För att hantera fördröjnngar måste systemet smuleras längre td än för t = [ 0, P) enlgt ovan. Audsley vsar att en tllräcklg perod är t = [ S, S + P ) där S och P ges av: S O O O = T = T T max max T där Omax = ( O1, O2,..., O 1) och under antagandet att O P = lcm( T, T,..., T ) 1 2 = 0 Antagandet att O = 0 kan sättas genom omfördela fördröjnngstderna. En noggrannare beskrvnng av hur detta görs tllsammans med övrga delar optmal prorty assgnment presenteras avsntt 5.1. Tdsförluster systemet De algortmer som nämnts har alla utgått från varje process tdsattrbut vd schemaläggnng. När det är dags att köra systemet tllkommer dock processortd för schemaläggaren och systemet sg, t. ex. byte av exekverande process och hanterng av avbrott för externa händelser. I smulerngar för att undersöka om en prortetstlldelnng klarar alla tdsgränser brukar tden för byte av process tllföras den process man byter tll. För optmal prorty assgnment blr det lte annorlunda eftersom man vd smulerng bara undersöker tdsgränsen för den process som har lägst prortet. Prortetsordnngen på de övrga ska då, enlgt sats 1 nte spela någon roll. För att kunna lägga tll tden för byte krävs dock att man känner tll antalet byten, och det kan varera beroende på ordnngen på de övrga processerna. Om sats 1 fortfarande ska gälla måste man beräkna det största antalet byten genom att testa alla kombnatoner, och då har man förlorat vtsen med algortmen. Lösnngen är att stället utöka beräknngstden med både byte tll ny process och byte tllbaka tll föregående process. Mängden tllförd td för schemaläggnng blr då densamma oberoende av processernas prortetsordnng, och optmal prorty assgnment kan användas oförändrad. Den td som går åt för hanterng av avbrott är normalt mycket lten, men om nte så är fallet kan tden modelleras som en sporadsk process, dvs. en process där T är satt tll den mnsta tden mellan två aktverngar, och där C är tden för att hantera avbrottet.

KAPITEL 2 TEORETISK REFERENSRAM 18 2.6 Dynamska algortmer I dynamska algortmer görs schemaläggnngen samtdgt som systemet exekverar genom att för varje tdpunkt bestämma vlken process som ska exekveras härnäst. Den stora fördelen är att aperodska processer hanteras lka bra som perodska; nackdelen är att algortmen nte tttar nog långt framåt tden för att veta om mängden processer klarar alla tdsgränser eller nte. Den gör det den anser är bäst vd varje tdpunkt, varför algortmer av den här typen även kallas best-effort schedulng. De två vanlgaste dynamska algortmerna är earlest deadlne frst (EDF) och least slack tme. I EDF exekveras den process vars tdsgräns lgger närmast tden; least slack tme den process som har mnst slacktd kvar, dvs. td kvar nnan processen måste börja exekvera för att hnna färdgt nnan sn tdsgräns. Nästan alla kommersella realtdssystem bygger dag på statska algortmer, vlket främst beror på de dynamska algortmernas oförmåga att nog långt förväg förutsäga överbelastnng. Mycket forsknng bedrvs dock för att förbättra predkterbarheten de dynamska algortmerna, främst utgående från EDF. 2.7 Schemaläggnng av slacktd När alla hårda processer har fått den processortd de behöver kan det fnnas td över nnan nästa process ska påbörja exekverng, s. k. slacktd. Denna td kan utnyttjas för t. ex. exekverng av mjuka aperodska processer eller olka beräknngar för att förbättra schemaläggnngen av de övrga processerna, mprecse computatons (Burns, 1995). För att exekvera processer slacktden fnns ett antal metoder. Den som är enklast att mplementera kräver ngen förändrng av schemaläggaren; alla mjuka processer får helt enkelt lägre prortet än de hårda processerna. Mer avancerade metoder som t. ex. håller reda på hur mycket slacktd som fnns vd varje tdpunkt har presenterats av bl. a. Lehoczky och Ramos-Thuel (1995).

3 Kravanalys I detta kaptel presenteras de krav som ställs på systemet utgående från dagens system och önskade förbättrngar. Kraven på schemaläggaren specfceras utfrån den teor som presenterats kaptel 2, och några av de problem som kan tänkas uppkomma vd desgnbeslut dentferas. 3.1 Krav på processor De krav som ställs på den processor som ska användas baseras främst på den mängd data som ska tas om hand samt komplexteten på de beräknngar som ska utföras. Kommunkaton mellan processer analyseras nte så noggrant; den datamängd som kommer n systemet reduceras kraftgt första beräknngsledet varför datamängden mellan processer antas relatvt lten. Datanläsnng De data som kommer n dagens system är 16-btars dataord 32 khz. De 19

KAPITEL 3 KRAVANALYS 20 olka gvarna varerar från system tll system, men en grunduppsättnng består av följande gvare (se avsntt 1.1 för en kort beskrvnng av de olka gvarna): 15 20 laserkameror; 2 accelerometrar; 2 nklnometrar; gyro; hjulpulser (hastghet och dstans). Datahastgheten på en sådan uppsättnng blr antal gvare 32 khz 16 bt vlket resulterar c:a 12 Mbt/s. För att slppa lgga och vänta, och läsa ett värde taget fnns det dag ett mnne med FIFO-arktektur (frst n frst out) mellan processorns och den databuss på vlken gvarna är nkopplade. En önskvärd funkton den nya processorn är en höghastghetsport samt möjlghet tll DMA-överförng (drect memory access) mellan port och mnne, för att ersätta det externa FIFO-mnnet med tllhörande logk. Eftersom önskemål fnns om att öka frekvensen tll 64 khz, samt att möjlggöra ett större antal gvare uppemot 50 st. måste porten ha en kapactet på mnst 50 Mbt/s. Beräknngar på data De beräknngar som utförs på data kan delas n två delar; förbehandlng och applkatonsspecfka beräknngar. Under förbehandlngen sorteras ogltga data bort, men den vktgaste uppgften är att konvertera data från tdsdomän (lka lång td mellan två värden) tll spataldomän (lka långt avstånd mellan två värden), dvs. kompensera data för blens hastghet för att vara oberoende av densamma. Ur matematsk synvnkel ger det ett mer korrekt resultat att göra kompensatonen drekt på nkommande data än senare beräknngskedjan, t. ex. med flterkoeffcenter som funkton av hastgheten. I det senare fallet kommer fltret aldrg rktgt svänga n då dess egenskaper tll vss del förändras hela tden. Beräknngarna kan vsserlgen utföras med heltal, men att slppa analysera talområden och noggrannhet skulle reducera utvecklngstden och sannolkheten för fel mplementerngen. Därför bör processorn hantera flyttal. Omvandlngen från tds- tll spataldomän görs genom att nterpolera fram de två sdovärdena, och sedan räkna fram ett medelvärde över de två sdovärdena och alla värden däremellan genom att beräkna arean under

KAPITEL 3 KRAVANALYS 21 kurvan (se fgur 4). nterpolerade punkter tdsekvdstanta sampel ar ea för medelvär desbldnng över dstans Fgur 4: Omvandlng från tds- tll spataldomän Avståndet mellan två värden spataldomän beror på vlken applkaton som ska använda värdet. Ungefär hälften av laserkamerorna behöver omvandlas tll 0,5 mm dstans, och för resterande räcker det med 25 mm. Parallellt med omvandlngen beräknas även ett medelvärde över en längre dstans, 100 mm. Den hastghet som systemet ska klara av är mnst 90 km/h (25 m/s). För 0,5 mm dstans nnebär det en omvandlngsfrekvens på 50 khz, och fallet 25 mm en frekvens på 1 khz. De steg, och antal nstruktoner som krävs omvandlngen är: mnnesåtkomst: 2 antal värden; detekterng av ogltga värden samt omvandlng tll flyttal: 2 antal värden; nterpolaton: 4 nstruktoner; medelvärdesbldnng: 4 (antal värden + 1); medelvärdesbldnng över längre dstans: 1 antal värden. Antal nstruktoner som ska utföras blr en funkton av antalet värden, x, ett ntervall; f ( x ) = 8+ 9 x. Multplcerat med antal gvare och omvandlngsfrekvens (för 90 km/h) får man ett krav på 10 mljoner nstruktoner per sekund (Mps) för 0,5 mm dstans och 6 Mps för 25 mm dstans. Sffrorna är naturlgtvs mycket ungefärlga, och kan varera mycket beroende på t.ex. nstruktonsuppsättnng. Applkatonsspecfka beräknngar Av de applkatonsspecfka beräknngarna är det de som använder sg av

KAPITEL 3 KRAVANALYS 22 spataldata på 0,5 mm dstans som kräver hög processorkapactet. Idag fnns två applkatoner som kräver den noggrannheten: textur och sprckmätnng. Den mplementerng av textur som används dag utgår från data tdsdomän och räknar sedan om flterkoeffcenter utfrån hastgheten. Beräknngen görs parallellt för 1 4 lasrar. Med data spataldomän skulle mplementerngen reduceras tll ett andra gradens IIR flter. Antalet nstruktoner för att mplementera ett sådant flter är ungefär 8 nstruktoner per sampel. Om textur beräknas på 5 lasrar ger detta ett krav på 8 5 50 khz = 2 Mps. Sprckmätnngens funkton är att räkna antalet sprckor nom olka kategorer (djup och bredd). Varje sampel jämförs med ett löpande medelvärde för marknvån. Om det understger värdet med ett vsst djup räknar man antal sampel tll värdet går upp gen. De två parametrar som sedan används för att kategorsera sprckorna är maxdjupet och längden. Att uppskatta dess tdsåtgång är extra svårt då den är kontextberoende, dvs. utför olka saker beroende på aktuellt tllstånd, men utfrån befntlg kod uppskattas tdsåtgången tll 20 nstruktoner per sampel. Sprckor beräknas dag på upp tll 6 lasrar, vlket ger ett krav på 20 6 50 khz = 6 Mps. Eftersom övrga beräknngar använder sg av data med den längre sampeldstansen blr tdsåtgången betydlgt mndre, även med ganska hög komplextet på beräknngarna. Med t. ex. 25 mm sampeldstans räcker 1 Mps tll 1000 nstruktoner per sampel, vlket mer än väl räcker tll för t. ex. mnsta- kvadratanpassnng för alla 20 lasrar (för att få fram vägens lutnng). En uppskattnng som väl bör täcka dessa beräknngar är 5 Mps. Övrg processortd Utöver de rena beräknngarna tllkommer td för schemaläggnng samt kommunkaton mellan processer och värddator. En schemaläggare bör maxmalt utnyttja några procent av processorns kapactet, och detta tllsammans med kommunkaton mellan processer och mellan processer och värddator uppskattas tll c:a 5 Mps. Sammanfattnng av processorkrav Summan av kraven kan nu summeras tll ungefär 35 Mps. Som tdgare nämnts är det många faktorer som spelar n på denna sffra, så jämförelsen kan nte göras drekt med en tlltänkt processor, utan även nstruktonsuppsättnngen bör beaktas. Processorns prestanda bör dock, oavsett nstruktonsuppsättnng, nte vara lägre än denna sffra.

KAPITEL 3 KRAVANALYS 23 En sammanfattnng av de krav som ställts är att: den bör vara av flyttalstyp; processorns prestanda bör vara mnst 35 Mps (Mflops); den ska vara utrustad med höghastghetsport, >50 Mbt/s, för datanläsnng; DMA-överförng ska fnnas från höghastghetsport tll mnne. 3.2 Krav på schemaläggare De processer som kommer att vara aktuella ett nytt system kan delas n tre grupper: processer som behandlar data tdsdomän, processer som behandlar data spataldomän, och övrga processer. Processer de två första grupperna är perodska och de övrga är aperodska. Processerna som arbetar med data tdsdomän, dvs. de som gör omvandlngen från tds- tll spataldomän, har en perodtd som är beroende av datafrekvensen och storleken på mnnesbufferten för ndata. Då beräknngarna är enkla bör varatonerna beräknngstden vara små. Något som är svårare att modellera på ett exakt sätt är de processer som arbetar med data spataldomän. Även här är perodtden beroende av datafrekvens och buffertstorlek, men datafrekvensen är nte längre konstant utan varerar med blens hastghet. Detta medför att perodtd och/eller beräknngstd kommer att varera, med högre prestandakrav ju snabbare blen kör. Om man schemalägger processerna med någon algortm för perodska processer måste man sätta perodtd och beräknngstd utfrån blens maxmala hastghet. Detta kan vara alltför pessmstska värden som leder tll dålg nyttjandegrad vd normala hastgheter. Så länge hela systemet kan köra på en processor är dålg nyttjandegrad nget problem, men en alltför pessmstsk beräknng kan ange att en processors kapactet nte räcker tll, och då kan man felaktgt tro att systemet måste utökas med fler processorer. Den ssta gruppen av processer, de aperodska processerna, kommer att hantera sgnaler för att markera kontrollpunkter mätnngarna. Sgnalen kan genereras av t. ex. fotoceller placerade vd vägen, eller av knapptrycknngar. Dessa sgnaler nnebär nte att något ska förändras för övrga processer, utan bara att någon slags markerng ska göras för tdpunkten. Dess beräknngstd blr därför mycket kort förhållande tll övrga processer systemet. Om man förutsätter att systemet noterar tdpunkten för när en händelse nträffar kan dessutom dessa processers

KAPITEL 3 KRAVANALYS 24 tdsgränser ses som mjuka. Tdsgränser De perodska processernas tdsgränser beror på ndatafrekvensen och storleken på de buffertar där ndata lagras. Genom att varera fyllnadsgraden av dessa buffertar kan man förändra vlken typ av tdsgräns processen har. Med 50 procent fyllnadsgrad, dvs. data behandlas på en halv buffert taget, får man D = T ; beräknngarna på en halva får nte ta längre td än det tar att fylla den andra halvan. Ökar man fyllnadsgraden får man D < T, och med mnskad fyllnadsgrad D > T. Det ssta fallet kan också utnyttjas tll vss feltolerans; om fyllnadsgraden är 40 procent och D = T kan en tdsgräns passeras med 20 procent enstaka gånger utan att data förloras. Något krav på vlken typ av tdsgräns som ska användas ställs nte, men den bör väljas så att man kan undersöka om en uppsättnng processer är möjlg att schemalägga förväg. En sådan funkton är också ett krav på mplementerngen antngen externt, eller realtdssystemet samband med uppstart av nya processer. En sådan funkton kan också komma tll nytta om systemet utökas med flera processorer för att fördela processer mellan processorerna. Uppstart av processer Oavsett om en statsk eller en dynamsk algortm används kan problem uppstå om en process schemaläggs som vktg under uppstart. I en prortetsstyrd algortm kommer den process som har högst prortet blockera alla andra under hela dess ntalserng. Detta kan ta betydlgt längre td än vssa andra processers perodtd, och det resulterar mssade tdsgränser. Detta problem bör lösas genom att processen markerar när den börjar med sn tdskrtska del, t.ex. genom att sätta en flagga den struktur som beskrver processen. Först därefter schemaläggs den för att klara sna tdsgränser. Med en sådan lösnng man också tllåta några av de konstruktoner som normalt förbjuds realtdssystem (se avsntt 2.3) så länge processen nte befnner sg den tdskrtska delen av programmet. Uppmätnng av beräknngstd Av de processattrbut som assoceras med varje process kan perodtd T och tdsgräns D räknas ut som en funkton av ndatafrekvens och buffertstorlek. Beräknngstd C är däremot svårare att bestämma

KAPITEL 3 KRAVANALYS 25 teoretskt. Det är därför önskvärt att utrusta systemet med en funkton för uppmätnng av en processers beräknngstd. En sådan funkton skulle också kunna möjlggöra detekterng av överbelastnng systemet under drft. Även om syftet med statska algortmer är att upptäcka det redan vd prortetstlldelnngen, och att schemaläggaren nte ska behöva hålla reda på det, så kan det vara användbart vd felsöknng systemet. Sammanfattnng av systemkrav De krav som ställs på schemaläggaren och systemet är: extern analys av hur systemet klarar tdsgränserna; möjlghet att tllfällgt låta en process arbeta utan tdsgränser under t. ex. uppstart; uppmätnng av beräknngstd för processer.

4 Undersöknng och desgn I detta kaptel undersöks den av OPQ utvalda processorn för att vsa att dess prestanda är tllräcklga, och desgnbeslut om val av algortm för schemaläggare presenteras och motveras. 4.1 Undersöknng av processor Den processor som valts ut av OPQ är ADSP-2106x SHARC från Analog Devces (Analog Devces, 1995). Då den har både mnne, dverse n- och utportar, stöd för sammankopplng av flera processorer och gränssntt mot värddator ntegrerat på chpet är det förhållandevs enkelt att konstruera egna system utfrån den, vlket också är den prmära anlednngen att den valts ut. Processorn fnns två modeller, ADSP-21060 och ADSP-21062, där skllnaden är storleken på mnnet; 4 respektve 2 Mbt. Klockfrekvensen är 40 MHz. 26

KAPITEL 4 UNDERSÖKNING OCH DESIGN 27 Prestanda Processorns prestanda är enlgt Analog Devces själva 80 Mflops, med 120 Mflops topprestanda. Sffrorna nås genom att cykeltden är 25 ns, och att vssa nstruktoner kan utföra upp tll tre flyttalsoperatoner parallellt. Dessa multfuncton computatons är konstruerade för vanlga algortmer, t. ex. fnns en nstrukton för parallell multplkaton och medelvärdesbldnng, Fx=Fy*Fz, Fa=(Fb+Fc)/2, som lämpar sg utmärkt för ntegralskattnng enlgt trapetsregeln. Samtlga beräknngsnstruktoner kan även kombneras med en mnnesaccess för att ladda eller spara regster. Dessa specalnstruktoner gör att den uppskattade tdsåtgången för beräknngarna (se avsntt 3.1) flera fall kan reduceras. För omvandlngen från tds- tll spataldomän kan beräknngstden reduceras tll en tredjedel, c:a 6 Mps. Även övrga beräknngars tdsåtgång reduceras något, varför processorns 40 Mps bedöms som tllräcklga prestanda för att exekvera samtlga applkatoner som körs dag. Datanläsnng Främst för att kunna överföra data mellan processorer, men även för extern nläsnng, har SHARC:en sex 4-btars länkportar (lnk ports) som var och en hanterar datahastgheter upp tll 320 Mbt/s. Portarna kan kopplas tll DMA-kanaler, som sn tur har en funkton, DMA channg, som möjlggör automatsk ntalserng av en ny överförng när den förra är färdg. På så sätt kan nläsnng av data göras helt automatsk efter en första ntalserng. Det nterna mnnet har separat adress- och databuss för DMA-överförng vlket nnebär att exekverngen på processorn nte påverkas av nläsnngen. Hastgheten på en port är nog hög för att nte utgöra någon begränsnng. Teoretskt sett räcker hastgheten tll för över 70 gvare med 32-btars data 128 khz. Övrgt Utöver det som nämnts ovan har SHARC:en ytterlgare några egenskaper som kan vara användbara: sereportar, multprocessorstöd, och värddatorgränssntt. Vssa gvare passar nte n den generella beskrvnngen med t. ex. 16-btars dataord 32kHz. Som exempel fnns planer på postonsbestämnng med GPS, Global Postonng System, och den mottagare som företaget har dag kommuncerar serellt. I ett framtda system kan denna enkelt kopplas drekt tll en av SHARC:ens två sereportar.