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 |
A | A+A+B |
B | A+A+E, A+B+D, A+C+C eller B+B+C |
C | A+D+E, B+C+E eller C+C+D |
D | C+E+E eller D+D+E |
E | E+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),
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 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:
- Kapitel 5:
- 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:
- Logga in på kursen med kommandot:
Logga ut från datorn och logga in igen. Om ni är två, så måste
båda göra detta.
-
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
-
Bitpussel. Hantering
av data på bitnivå i ord.
-
Binär bomb. Läsa maskinkod med hjälp av debugger etc.
Senaste resultat på labben
-
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 |