Teori kombineret med praktiske øvelser og kursusopgaver.
Teorien udgør ca. 50% af tiden.
Kursets varighed:
[Kurset følger ikke DTUs normale
skemastruktur]
Evalueringsform:
Bedømmelsesform:
Tidligere kursus:
EARK-U01
Anbefalede forudsætninger:
Overordnede kursusmål:
"A professional in any field of computing should not regard
the computer as just a black box that executes programs by magic.
All students of computing should acquire some understanding and
appreciation of a computer system's functional components,
their characteristics, their performance, and their interactions.
Students need to understand computer architecture in order to make
best use of the software tools and computer languages they use to
create programs.
In this course the term architecture is taken to include
instruction set architecture (the programmer’s abstraction of a
computer), organization or microarchitecture (the internal
implementation of a computer at the register and functional unit
level), and system architecture (the organisation of the computer
at the cache, and bus level).
Students should also understand the complex tradeoffs between CPU
clock speed, cache size, bus organization, number of core
processors, and so on." (ACM and IEEE 2008 CS
Curriculum)
Læringsmål:
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
redegøre for grundlæggende principper i computer aritmetik og
for digital repræsentation af tal, tekst, billeder og lyd samt
begrænsninger i sådanne repræsentationer.
forklare udførelse af maskininstruktioner, påvise hvorledes
maskininstruktioner afspejles i instruktionssæt-arkitekturen (ISA)
og demonstrere forståelse af ISA-arkitekturen gennem udarbejdelse
af simple assembler programmer.
forstå hvorledes manglende ISA ressourcer (så som registre,
instruktioner og addresseringmåder) påvirker højniveau
programmeringssprog og compiler-design.
beskrive anvendelsen af interrupts ved implementering af I/O
styring og dataoverførsler.
identificere forskellige bustyper i en computer, kende
almindelige busteknologier samt forstå egenskaber og performance of
typiske moderne busser.
redegøre for von Neumanns flaskehals og hvordan et hierarkisk
lagersystem kan mindske flaskehals-effekten samt forklare hvordan
databussen i overvejende grad bruges til genopfyldning af
bufferlageret (cache memory).
beskrive hvorledes algoritmers tidsforbrug påvirkes af
lagerreferencers karakteristika i form af 'spatial' og
'temporal locality' og demonstrere dette
eksperimentelt.
forstå hvordan computer performance måles i enheder som MIPS
eller SPECmarks og begrænsningerne i sådannne målinger og også
forstå forskellen mellem processor performance og system
performance.
beskrive hvordan processorens ydeevne kan forbedres ved at
overlappe instruktioners eksekvering ved pipelining og forklare og
gennem eksperimenter demonstrere pipelining-princippets iboende
begrænsninger (såkaldte branch hazards og data hazards)
beskrive den interne struktur i flerkerne og multitrådede
processorer og redegøre for datakonsistens og 'cache
coherence'.
beskrive den interne struktur i CUDA (Compute Unified Device
Architecture), som den ses i moderne GPU'er og give et overblik
over CUDA programmering.
Kursusindhold:
• Digital logik, computeraritmetik og datarepræsentation
• Maskininstruktioner, registerstruktur og adresseringsformer.
• Compilers, assemblers, og linkers.
• CPU design – Pipelining - RISC and CISC processors.
• Interfacing og moderne computer-busser.
• Hierarkiske memory systemer
• Flerkerne og flertrådede processorer
• CUDA og GPU'er
Litteraturhenvisninger:
David A. Patterson & John L. Hennessy
Computer Organization and Design, 4th ed. (COD)
Morgan-Kaufmann Publications, 2009
ISBN 978-0-12-374493-7
Bemærkninger:
Den studerende skal i løbet af kurset løse et antal obligatoriske
opgaver. Til hver opgave skal udarbejdes en øvelsesrapport som
opsummerer teorien og beskriver den udarbejdede løsning og
eventuelle måleresultater.
Ved eksamen skal den studerende præsentere en af de obligatoriske
opgaver. Opgaven vælges ved lodtrækning. Fremlæggelsen skal dække
relevant teori såvel som en redegørelse for den praktiske løsning
af opgaven. Eksaminationen af en studerende varer ca. 30
minutter.