Studentprosjektforslag - Models of Computation

Sverres home


Introduksjon

SW development projects:

Programmeringsprosjekt (Flere oppgaver)

Elevator automatic FAT for TTK4145

Procedural Generation: Game Worlds

Procedural Generation: Music

Programvare design av simulator

Dynamic deployment system for real-time tasks

Measurement-based real-time system

Bibliotek for meldingssending

Teoretical projects:

Implementing Lingua-Franca programs on real-time operating systems

Models of Computation

Salvaging XC features

Schedulability proof for message passing systems

Dynamic deployment system for real-time tasks

Bruk av online eksekveringstidsestimater

Real-time systems not based on timing requirements

Programering av tunge tråder ved nonpreemptive scheduling.

Deling av CPU og Nettverk

Morsomme sensorer og applikasjoner:

Døvehørsel

Blindesyn

Bike trainer app

Eksterne oppgaver:

Models of Computation

I got this when asking around in my colloquium group for interesting tasks. Check. If anything here sounds interesting, please make contact and we'll find an interesting project for you.

Jeg har tenkt litt på noen oppgaver ifbm vår InterPRET multi-core CPU. Har tenkt på disse oppgavene som kan være fine:

  1. MicroPython på InterPRET.
  2. Rust på InterPRET.
  3. Edwards Sparse Synchronous Model på InterPRET.
  4. Software-defined devices på InterPRET
  5. Thread scheduling på InterPRET.
  6. Actor runtime på InterPRET
  7. CSP runtime på InterPRET

1,2,3 handler om å få ulike programmeringsspråk til å kjøre på InterPRET (og dermed FlexPRET som er den underliggende CPUen). (3) er nok mest krevende, er dette språket vi diskuterte sist artikkelmøte.

(4) handler om å implementere digitale grensesnitt i software, slik som XMOS gjør. Hadde vært kult til å få til Ethernet og/eller USB.

(5) er å implementere en klassisk real-time scheduler på FlexPRET. F.eks en basert på periodiske tasker med rate monotonic scheduling. Med InterPRET har vi forutsigbar blir scheduleringsbevis enklere siden vi har mer kontroll på WCET.

(6) er en annen tanke som er å implementere en Actor-basert runtime på InterPRET. Istedenfor å gå for determinisme og konsistenthet så omfavner vi bare asynkron kommunikasjon. Hver HW tråd vil kjøre en separat Actor runtime med en event-løkke og en switch case for å håndtere innkommende meldinger. Flere actors can merges sammen til en actor ved å kombinere switch case'en.

(7) er jo mer din og Øyvinds domene. Dette blir naturligvis veldig likt XMOS. Men kan være et kult prosjekt å implementere synkrone kanaler på InterPRET.

Alle disse prosjektene er ganske krevende fordi vi tar utgangspunkt i et CPU design. Så kan være bugs i CPUen også. Men det er ekstra gøy fordi det er ingen svarte bokser med magi. Man syntetiserer CPU designet til en C++ simulator og så kan man emulere et program der. Man kan inspiserer hvert eneste register og hvert eneste signal CPUen mens den kjører. Man kan også få den opp å kjøre på en FPGA for å gjøre ting i den virkelige verden.

Jeg har utelatt en oppgave om å kjøre LF på InterPRET fordi det er noe jeg vil gjøre selv.

Hva tror du? Kan godt ta en prat for å forklare oppgavene litt nærmere, og kanskje få litt feedback. Ideelt sett så kom det 2-4 flinke studenter også kunne vi hatt et ukentlig gruppemøte og fått litt synergier osv

Editor: Associate Professor Sverre Hendseth Contact Address: Sverre.Hendseth...ntnu.no Last Modified: 18/3-2022