bild
Skolan för
elektroteknik
och datavetenskap

DD2377, Maskinnära programmering och datorarkitektur 7,5 hp 2010 (maskin10)

Aktuell kursomgång: maskin12 period 3 11/12

Föregående kursomgångar

Senaste nytt (ändrad 2010-03-23) finns här

Denna kurs samläses som tre kurser:

Kursledare

Stefan Nilsson <snilsson@nada.kth.se>.

Föreläsningar

Länkar till dessa föreläsningar kommer att aktiveras allt efter som.

Examination

Kursen examineras i tre moment: en tentamen och två labkurser. Lab 1 och 2 utgör labkurs 1. Lab 3 utgör labkurs 2. Samtliga moment betygsätts med betyg A - E. Betyget på labkurs 1 bestäms genom att poängen för lab 1 och lab 2 vägs samman.

Betyg

För godkänt måste alla moment vara godkända (betyg E). Slutbetyg på kursen vägs samman från alla tre moment. Detta betyder att:

Betyg     kräver minst
AA+A+B
BA+A+E, A+B+D, A+C+C eller B+B+C
CA+D+E, B+C+E eller C+C+D
DC+E+E eller D+D+E
EE+E+E

Tentamen

Fredag 19 mars 8-13 i sal V21, V22

Omtentamen

Nästa ordinarie skriftliga tenta ges i samband med kursen nästa år. Efter överenskommelse med kursledaren kan man göra en muntlig omtentamen. Denna måste i så fall ske under ordinarie tentaperiod.

Extentor

Kurslitteratur

För detaljerad läsanvisning se följande.
Huvudlitteratur för kursen är första halvan av:

Computer Systems: A Programmer's Perspective (CS:APP)
Computer Systems: A Programmer's Perspective (CS:APP), International Edition,
Randal E. Bryant and David R. O'Hallaron, Prentice-Hall, 2003. ISBN 0-13-178456-0

Till C-delen av kursen rekommenderas (boken finns eventuellt också på svenska):
The C Computer Language
The C Programming Language, Second Edition,
Brian W. Kernighan and Dennis M. Ritchie, Prentice-Hall, 1988. ISBN 0-13-110362-8

Böckerna finns på kårbokhandeln.

Läsanvisning

I kursen ingår följande material:
  • Utdelat material:
    • Föreläsningsanteckningar
    • Labinstruktioner
  • Ur kursboken (Computer Systems, a programmers perspective) ingår följande:
    • Kapitel 1:
      Ingår:1.1 - 1.2, 1.4
      Kursivt:1.0, 1.3
    • Kapitel 2:
      Ingår:Allt utom nedanstående.
      Kursivt:"Intel IA32 Floating-Point Arithmetic"
    • Kapitel 3:
      Ingår:Allt utom nedanstående.
      Kursivt:3.0, 3.1, 3.13
      Ingår ej:3.14, 3.15
    • Kapitel 4:
      Ingår:Allt
    • Kapitel 5:
      Ingår:Allt
    • Kapitel 6:
      Ingår:Allt utom nedanstående.
      Kursivt:6 - 6.1.2

Laborationer

Ni kan göra laborationerna ensama eller, hellre, två och två. Hur laborationen redovisas finns beskrivet i respektive laborationsinstruktion. Varje laboration som redovisas i tid (lab 1 2010-02-03, lab 2 2010-02-17, lab 3 2010-03-18) ger 1 bonuspoäng vardera till tentamen. Alla Laborationer skall ha redovisats senast 2010-03-18. Det kommer att vara möjlikt att redovisa senare men då endast för betyg godkänt.

Innan ni gör laborationerna måste ni göra följande förberedelser:

  1. Logga in på kursen med kommandot:
    • course join maskin10
    Logga ut från datorn och logga in igen. Om ni är två, så måste båda göra detta.
  2. Om ni är två skall efter detta båda göra:
    • course labdir maskin10 <användarnamn för den andre gruppmedlemmen>
    Detta kommer att skapa en underkatalog maskin10 i era hemkataloger där ni båda har samma rättigheter. Om ni sedan skapar underkataloger i denna så får ni båda samma rättigheter också i dessa kataloger.
Dessutom måste ni registrera er i Rapp-databasen där era resultat kommer att synas allteftersom de rapporteras in. Ni kommer åt Rapp-databasen på följande webb-address: http://nestor.nada.kth.se:8090/rapp

Laboration 2 görs på assembler.nada.kth.se som är en X86-maskin som kör GNU/Linux. För att komma åt assembler, använd kommandot ssh:

    ssh userid@assembler.nada.kth.se
  1. Bitpussel. Hantering av data på bitnivå i ord.
  2. Binär bomb. Läsa maskinkod med hjälp av debugger etc. Senaste resultat på labben
  3. Datorarkitektur. Experiment med simulerade implementationer. Simulatorn finns beskriven här

Uppdatering

På del A i labb 3 räcker det att göra den första deluppgiften (sum.ys) för att få full poäng (15) på den delen av labben. (Du får förstås gärna göra även rsum.ys och copy.ys om du har lust.)

Jag har lovat att testa ett nytt system för inlämning och rättning av uppgifter och ber dig därför att lämna in labb 1 (som redan är godkänd och klar) en andra gång. Gör så här:

  • Gå till EduJudge och skapa ett konto genom att klicka på länken "login".
  • Lämna in filen bits.c från labb 1. (Du behöver en "enrolment key" [sic] som du får av mig på föreläsningen.)
  • Fyll i enkäten.

Datorarkitektur schema VT 2010

 Dag              Tid   Plats  Ämne   Litteratur     
Tisdag 19/1 10-12 V3 Kursadministration, översikt
F1: Genomgång av C, huvudsakligen för dem som kan Python eller Java men inte C
CS:APP kap 1
Prog. Lang. C
Onsdag 20/1 15-17 V3 F2: Bitar och bytes CS:APP kap 2
Torsdag 21/1 10-12 V3 F3: Numbers Flyttal CS:APP kap 2
Fredag 22/1 10-12 V3 Assemblerkod: F4A: Introduktion,
Fredag 22/1 13-17 Gul, Brun Laboration 1: Bit-pussel
Måndag 25/1   8-10 V3 Assemblerkod: F4B: Kontrollstrukturer CS:APP kap 3
Tisdag 26/1 13-15 V3 Assemblerkod: F5: Procedurer CS:APP kap 3
Torsdag 28/1   8-10 Gul, Grön Laboration 1: Bit-pussel forts.
Fredag 29/1 15-17 Gul, Brun Laboration 1: Bit-pussel forts.
Måndag 1/2  8-10 V3 Assemblerkod: F6A: Sammansatta data, F6B: Sammanfattning CS:APP kap 4
Tisdag 2/2 13-15 V3 Datorarkitektur: F7A: ISA F7B: Logisk design CS:APP kap 4
Torsdag 4/2   8-10 Orange, Grön Laboration 2: Binär bomb GDB
Fredag 5/2   8-10 Röd, Orange Laboration 2: Binär bomb GDB
Måndag 8/2 13-15 V2 Datorarkitektur: F8: Sekventiell implementation CS:APP kap 4
Tisdag 9/2   8-10 V3 Datorarkitektur: F9: Pipeline implementation, F10: Sammanfattning CS:APP kap 4
Onsdag 10/2 15-17 Röd, Orange Laboration 2: Binär bomb forts.
Fredag 12/2 15-17 Gul, Brun Laboration 2: Binär bomb forts.
Måndag 15/2   8-10 V3 F11: Maskinoberoende kodoptimering CS:APP kap 5
Tisdag 16/2 13-15 V3 F12: Maskinberoende kodoptimering CS:APP kap 5
Torsdag 18/2   8-10 Röd, Orange Laboration 3: Datorarkitektur Simulator
Fredag 19/2 15-17 Gul, Brun Laboration 3: Datorarkitektur Simulator
Måndag 22/2 13-15 E2 F13: Minneshierarkin CS:APP kap 6
Tisdag 23/2 13-15 V3 F14: Cacheminnen CS:APP kap 6
Torsdag 25/2   8-10 Röd, Orange Laboration 3: Datorarkitektur forts. Simulator
Fredag 26/2 15-17 Gul, Brun Laboration 3: Datorarkitektur forts. Simulator
Fredag 19/3   8-13 V21, V22 Tentamen Allt
Copyright © Sidansvarig: Stefan Nilsson <snilsson@nada.kth.se>
Uppdaterad 2012-01-17