OBSERVERA!! Dessa sidor är numera utdaterade. Kursens websidor finns i Lisam.
Institutionen för systemteknik
Göm meny

Laboration 1 - Mikroprogrammering TSEA83

Tävling : Sortering

Uppgift 3 är en uppgift som handlar om att sortera 32 st 16-bitars 2-komplementtal. Längre ner på sidan beskrivs också en frivillig tävlingsuppgift, som går ut på att minimera exekveringstiden. Kompletterande siffror och tävlingsregler finns här nedan.

Deadline för tävlingsbidrag är sista dagen i läsperioden för vt1. Bivillkoret för att tävlingsbidraget ska räknas är dessutom att kursens övriga laborationer är slutförda innan bidraget lämnas in

Ledtråd: Det här handlar om mikroprogrammering.

Tävling : Kompletterande regler

  • Tävlingen är endast öppen för de studenter som läser kursen för första gången.
  • Ditt bidrag behöver vara under 20.000 klockcykler för att beaktas. Dvs, det är ingen ide att lämna in lablösningen med bubble-sort.
  • När jag testar era program kommer jag först att nollställa alla register och sedan trycka på kont. (Ni kan alltså inte förlagra viktiga värden i exempelvis GR0-GR3.)
  • När ert sorteringsprogram kört klart så kontrollerar jag att rätt data ligger på adress 0xE0 till 0xFF. Någon annan kontroll kommer dock inte att göras, det vill säga, det är tillåtet att ha godtyckliga värden i övriga delar av PM samt alla register. (Egentligen är detta lite orealistiskt, men jag väljer att ha med denna regel för att det blir alltför jobbigt att kontrollera någon annan typ av regel...)
  • För att behålla så mycket realism i uppgiften som möjligt så kräver jag dock att det ska gå att köra andra assemblerprogram på er mikrodator. Om ni använder den sekvens som finns i labhäftet för att hämta in instruktioner, avkoda adresseringsläge, samt avkoda instruktion så anser jag det bevisat att ni kan göra detta. (Isåfall behöver ni också bara ha med stöd för de instruktioner ni faktiskt använder i ert mikroprogram.)
  • Om ni däremot väljer att ändra på den sekvens som finns i häftet så måste ni dock bevisa att ni kan köra ett godtyckligt program genom att lägga in uppgift 2 någonstans i PM och berätta för mig hur jag kan köra denna uppgift. (Det är dock tillåtet att byta ut adresseringsläge 2 (indirekt adressering) mot ett adresseringsläge med godtycklig funktion enligt instruktionerna i labhäftet.
  • Utöver de slumpmässiga listor som jag använder så kommer jag också att kontrollera att ert program kan sortera en eller flera andra listor som antagligen innehåller en del krångliga fall. (Exempelvis största positiva och minsta negativa talet, upprepade identiska tal, osv.) Om ert program inte klarar av dessa fall så kommer de ej att beaktas. Om ni skickar in bidragen i god tid (minst ett dygn) innan slutlig deadline så kommer ni dock förhoppningsvis att hinna fixa eventuella buggar innan den slutgiltiga deadlinen.
  • Det är tillåtet att skicka in godtyckligt antal bidrag (inom rimlighetens gränser).

Informationsansvarig: Anders Nilsson
Senast uppdaterad: 2021-01-21