Preskoči na glavno vsebino
Učilnica FRI 23/24
  • Domov
  • Več
Zapri
Preklopi iskalni vnos
Slovenščina ‎(sl)‎
English ‎(en)‎ Slovenščina ‎(sl)‎ Македонски ‎(mk)‎ Русский ‎(ru)‎ 한국어 ‎(ko)‎
Trenutno uporabljate gostujoči dostop
Prijavite se
Domov
Course Activities
Forumi Naloge Viri
Nedavno dostopani predmeti
You are not enrolled in any courses
  1. or
  2. 1. neobvezna domača naloga - MiMo model CPE

1. neobvezna domača naloga - MiMo model CPE

Zahteve zaključka
Rok za oddajo: petek, 29. december 2023, 23.55

Na predavanjih in vajah smo predstavili zgradbo in delovanje mikroprogramirane CPE - poimenovali smo jo MiMo CPE v1 (Mikroprogramiran Model CPE). Celotna distribucija in vsi spremljajoči dokumenti so objavljeni v poglavju s predavanji. Hkrati pa nastaja tudi nekaj cevovodnih različic MiMo modela (imenujemo jih v2.x), ki nudijo kar nekaj zanimivih izzivov in jih lahko rešujete tudi namesto obveznega dela 1. domače naloge - kot t.i. Mini seminar. Najbolje, da se pred pričetkom dogovorimo o ideji in vsebini dela.

Nekaj idej za razširitve obstoječega modela CPE - MiMo v1:

  • dodajte implementacije bolj kompleksnih ukazov (npr. mehanizem za klice podprogramov, morda celo gnezdenje, sklad, prekinitve)
  • lahko dodate kakšen element tudi v Logisim-u in ga uporabite v vašem programu (recimo priklop in prižiganje LED diode, uporaba Terminala, prikazovalnik FB z višjo ločljivostjo ali več vzporednih).
  • lahko dodate strojni ukaz, ki še ni podprt s strani zbirnika. V tem primeru seveda morate popraviti tudi zbirnik, ki je napisan kot Perl skripta (objavljen je tudi zbirnik v Pythonu), da ga bo pravilno prevedel v strojni jezik (predvsem operacijsko kodo in registre oz. operande).
  • lahko naredite tudi zbirni jezik bolj podoben ARMovemu, morda kaj spremenite tudi v samem modelu, da bi se lahko delovanju ARM-a še bolje približali (npr. dolžina registrov, vpliv na zastavice, pogojno izvajanje ukazov, različno dolgi pomnilniški operandi, razširjanje do polne dolžine v registrih, itd...). Lahko tudi opravite analizo in opišete tiste poglavitne razlike, ki nam otežujejo implementacijo arhitekture ARM na MiMo organizacijskem modelu CPE.
  • lahko sprogramirate mikro-zbirnik ali zbirnik v drugih programskih jezikih - npr. Pythonu. Za osnovo lahko uporabite obstoječa programa, napisana v Perlu.
  • lahko naredite kakšen korak v smeri cevovodne implementacije CPE. Pri predavanjih smo naredili osnovno shemo cevovodne CPE s 5 stopnjami. Lahko poskusite z enostavnejšo realizacijo (manjša podmnožica ukazov), ki postavi osnovne stopnje.
  • lahko dodate kakšno zanimivo vhodno/izhodno napravo z registri, preko katerih krmilimo njeno delovanje. Zgledujete se lahko tudi po realizacijah PIO ali GPIO priključkov ali drugih naprav pri FRI-SMS ali STM32.

Nekaj idej se nahaja tudi na Wiki strani :

https://ucilnica.fri.uni-lj.si/mod/wiki/view.php?pageid=348

Kar nekaj primerov pa imate že v MiMo v1 distribuciji.

Nekaj idej za dopolnitve/razširitve/meritve cevovodnih različic modela CPE - MiMo v2.x:

  • vse različice so še v piljenju podrobnosti, zato bo vaša pomoč neprecenljiva. Lahko preizkušate delovanje, dopolnjujete/spreminjate zgradbo, dodajate predikcijske metode ali druge izboljšave in merite njihov učinek s preizkusnimi programi.
  • lahko naredite tudi svoje različice modela in pripravite vse vsebine za njihovo uporabo.

Pri delu se lahko se združite tudi v skupine. Seveda se v tem primeru poskuša oceniti prispevek vsakega posameznika. V tem primeru naj bodo iz poročila jasni prispevki vsakega člana - opišite to v zaključnem delu poročila, kjer dodajte tudi opis poteka dela v skupini.

Seveda lahko naredite tudi karkoli po lastni ideji oziroma zamisli. Rešitve nalog oddajte v obliki poročil v PDF ali kateremkoli objavljivem formatu. Pri tem poročilo oblikujte v obliko predstavitve, ki se lahko objavi na spletu. Po možnosti dodajte tudi vizualne vsebine s prikazi delovanja. Vsebine vseh pomembnejših datotek naj bodo v prilogi poročila in oddanem .zip arhivu.

Dodatno delo oziroma izvrstnost rešitev bo nagrajeno in upoštevano pri končni oceni, lahko tudi v celoti nadomesti obvezni del 1. domače naloge.

Z oddajo domače naloge jamčite vaše izvirno avtorstvo. Vso zunanjo pomoč (viri,...) navedite v poročilu in referencah. Po možnosti vsebine objavite na katerem od javnih portalov (Youtube, Github, BitBucket, GitBook, Wordpress, ...). 

Seveda vam z veseljem pomagam pri vašem delu, zato vprašajte in pridite na diskusijo.

◄ 1. domača naloga - MiMo model CPE
MiMo: Assembler in Python (Loboda) ►
Trenutno uporabljate gostujoči dostop (Prijavite se)
Pridobi mobilno aplikacijo Obvestilo o avtorskih pravicah
Stran poganja Moodle