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)

    C
  • Huvudområde

    Teknik
  • Betygsskala

    A, B, C, D, E, FX, F

Kurstillfällen/kursomgångar

HT12 CDATE för programstuderande

HT13 CDATE för programstuderande

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.