IS1500 Datorteknik och komponenter 9,0 hp
Computer Organization and Components
Kursen ger grundläggande kunskaper om hur en dator fungerar och är uppbyggd.
Med utgångspunkt från kunskaper i programmering visas hur program skrivna i C motsvaras av instruktioner i assemblerspråk. Instruktionerna hämtas och utförs av maskinvara uppbyggd med digitala komponenter.
- I kursen används maskinnära programmering med C och assembler för att visa grundfunktionerna i en processor med pipeline. Kursen behandlar också hur cacheminnen utnyttjas för att förbättra en processors prestanda, samt hur parallell programkörning får flera olika programmerade uppgifter att utföras samtidigt.
- Sanningstabell, grindar, logiska ekvationer.
- Kombinationskretsar och logiska funktionsblock.
- Sekvenskretsar, minnen och bussystem.
- Datorns funktionssätt – vad är ett program och hur exekveras det i en processor
- Språket C för dig som kan programmera i Java
- Subrutiner/funktioner/metoder – i C, i assemblerspråk och i processorn
- Maskinaritmetik: representation av heltal och flyttal – hur utförs beräkningar i en dator
- Maskinnära programmering: blandad C- och assemblerkod
- Globala och lokala variabler på C- och assemblernivå
- Parameteröverföring: pekare, referens- och värdeanrop
- Kommunikation mellan processor, minne och IO-enheter i ett enkelt bussystem
- Kommunikation, avbrottshantering och direktminnesåtkomst (DMA), blockvis dataöverföring
- Uppbyggnad av en processor med pipeline, försedd med cacheminnen
Laborationskursen behandlar digitala komponenter, assemblerprogram, pollad in- och utmatning, maskinnära programmering med C, avbrott, cacheminnen, samverkan mellan program.
Utbildningsnivå
GrundnivåKursnivå (A-D)
CHuvudområde
Teknik
Betygsskala
A, B, C, D, E, FX, F
Kurstillfällen/kursomgångar
HT12 CDATE för programstuderande
Perioder
HT12 P1 (3,0 hp), P2 (6,0 hp)
Anmälningskod
50843Kursen startar
2012-08-24Kursen slutar
2013 vecka: 1Undervisningsspråk
SvenskaCampus
KTH CampusAntal föreläsningar
24 (preliminärt)Antal övningar
24 (preliminärt)Undervisningstid
DagtidUndervisningsform
NormalAntal platser *
40 - 200*) Kurstillfället kan komma att ställas in om antalet antagna understiger minimiantalet platser. Vid fler sökande än platser kommer urval att ske.
Schema
Schema (nytt fönster)Kursansvarig
Fredrik L R Lundevall <flu@kth.se>
Lärare
Fredrik Lundevall, Johan Wennlund
Målgrupp
Obligatorisk för CDATE2 (KIN,JAP,INT) men öppen för alla program utom TIDAB, TIEDB, CINTE, TKOMK
Del av program
HT13 CDATE för programstuderande
Perioder
HT13 P1 (3,0 hp), P2 (6,0 hp)
Anmälningskod
50284Kursen startar
2013 vecka: 34Kursen slutar
2014 vecka: 1Undervisningsspråk
SvenskaCampus
KTH CampusAntal föreläsningar
24 (preliminärt)Antal övningar
24 (preliminärt)Undervisningstid
DagtidUndervisningsform
NormalAntal platser *
40 - 200*) Kurstillfället kan komma att ställas in om antalet antagna understiger minimiantalet platser. Vid fler sökande än platser kommer urval att ske.
Schema
Schema (nytt fönster)Kursansvarig
Fredrik L R Lundevall <flu@kth.se>
Lärare
Fredrik Lundevall, Johan Wennlund
Målgrupp
Obligatorisk för CDATE2 (KIN,JAP,INT) men öppen för alla program utom TIDAB, TIEDB, CINTE, TKOMK
Del av program
Lärandemål
Kursen ger grundläggande kunskaper om hur en dator fungerar och är uppbyggd.
Med utgångspunkt från kunskaper i programmering visas hur program skrivna i C motsvaras av instruktioner i assemblerspråk. Instruktionerna hämtas och utförs av maskinvara uppbyggd med digitala komponenter.
I kursen används maskinnära programmering med C och assembler för att visa grundfunktionerna i en processor med pipeline. Kursen behandlar också hur cacheminnen utnyttjas för att förbättra en processors prestanda, samt hur parallell programkörning får flera olika programmerade uppgifter att utföras samtidigt.
Efter kursen ska studenten kunna
- Förklara hur en dator är uppbyggd och hur delarna arbetar
- Identifiera och använda symboler för logiska grindar och funktionsblock
- Beskriva skillnaden mellan kombinationskretsar och sekvenskretsar
- Förklara uppbyggnaden av enkla bussystem och minnen
- Beskriva talsystem för datorer, och omvandla givna tal mellan olika talsystem
- Förklara hur datorns processor är uppbyggd, speciellt för processor med pipeline
- Förklara och använda samband mellan programkod i C, i assemblerspråk och i körbar maskinkod
- Skriva program i assembler för enkla beräkningar
- Skriva program i assembler och/eller C för in- och/eller utmatning med pollning och handskakning
- Skriva program i assembler och/eller C för avbrottsstyrd in- och/eller utmatning
- Förklara hur cacheminnen arbetar, och beräkna den förväntade andelen cacheminnesträffar vid körning av ett givet datorprogram
- Förklara hur en eller flera processorers exekvering kan fördelas mellan flera olika program eller programdelar
- Förklara synkronisering, semaforer och/eller andra metoder för att flera olika program och programdelar ska kunna samverka på ett kontrollerat sätt vid körning på en eller flera processorer
Kursens huvudsakliga innehåll
Kursen ger grundläggande kunskaper om hur en dator fungerar och är uppbyggd.
Med utgångspunkt från kunskaper i programmering visas hur program skrivna i C motsvaras av instruktioner i assemblerspråk. Instruktionerna hämtas och utförs av maskinvara uppbyggd med digitala komponenter.
I kursen används maskinnära programmering med C och assembler för att visa grundfunktionerna i en processor med pipeline. Kursen behandlar också hur cacheminnen utnyttjas för att förbättra en processors prestanda, samt hur parallell programkörning får flera olika programmerade uppgifter att utföras samtidigt.
Sanningstabell, grindar, logiska ekvationer.
Kombinationskretsar och logiska funktionsblock.
Sekvenskretsar, minnen och bussystem.
Datorns funktionssätt – vad är ett program och hur exekveras det i en processor
Språket C för dig som kan programmera i Java
Subrutiner/funktioner/metoder – i C, i assemblerspråk och i processorn
Maskinaritmetik: representation av heltal och flyttal – hur utförs beräkningar i en dator
Maskinnära programmering: blandad C- och assemblerkod
Globala och lokala variabler på C- och assemblernivå
Parameteröverföring: pekare, referens- och värdeanrop
Kommunikation mellan processor, minne och IO-enheter i ett enkelt bussystem
Kommunikation, avbrottshantering och direktminnesåtkomst (DMA), blockvis dataöverföring
Uppbyggnad av en processor med pipeline, försedd med cacheminnen
Laborationskursen behandlar digitala komponenter, assemblerprogram, pollad in- och utmatning, maskinnära programmering med C, avbrott, cacheminnen, samverkan mellan program.
Behörighet
Grundläggande behörighet samt Matematik D, Fysik B och Kemi A
Rekommenderade förkunskaper
DD1340 Introduktion till datalogi, eller motsvarande.
Studenten ska kunna skriva, förklara och felsöka program i imperativa programspråk, exempelvis Java, C eller C++, upp till programstorlekar omkring 100 programrader.
Litteratur
David A Patterson och John L Hennessy: Computer Organization and Design – The Hardware/Software Interface, Fourth Edition. Morgan Kaufmann 2009. ISBN 978 0 12 374493 7.
Nios II Processor Reference Manual, Altera.
Föreläsningsanteckningar, exempelsamling, laborationsinstruktioner och andra kompendier.
Examination
- ANN1 - Komponentuppgift, 1,5 hp, betygsskala: P, F
- LAB1 - Laborationer, 4,5 hp, betygsskala: P, F
- TEN1 - Tentamen, 3,0 hp, betygsskala: A, B, C, D, E, FX, F
Krav för slutbetyg
- ANN1 – Komponentuppgift, 1,5 hp. Betygsskala: P, F
- LAB1 – Laborationskurs, 4,5 hp. Betygsskala: P, F
- TEN1 – Tentamen, 3 hp. Betygsskala: A, B, C, D, E, FX, F
Ges av
ICT/Programvaruteknik och Datorsystem
Examinator
Fredrik L R Lundevall <flu@kth.se>
Versionsinformation
Kursplan giltig från och med
HT10.
Examinationsinformation giltig från och med
HT10.
