1. neobvezna domača naloga - MiMo model CPE

Rok za oddajo: četrtek, 23. december 2021, 23.55

Na predavanjih in vajah smo predstavili zgradbo in delovanje mikroprogramirane CPE - poimenovali smo jo MiMo CPE (Mikroprogramiran Model CPE). Celotna distribucija in vsi spremljajoči dokumenti so objavljeni v poglavju s predavanji.

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

  • 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 ali trdoožičene implementacije CPE. Pri predavanjih smo naredili osnovno shemo cevovodne CPE s 5 stopnjami. Lahko poskusite z enostavnejšo realizacijo, 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 STM32F4.

Nekaj idej se nahaja tudi na Wiki strani :

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

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 - morda kar opišete v posebnem delu poročila, kjer lahko dodate 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 formatu. 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.

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, ...). 

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