12.07.2015 Views

Bilder1

Bilder1

Bilder1

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Datorarkitektureroch operativsystem7,5 högskolepoängLektioner, övningar, laborationeroch projektredovisning.Tentamenhttp://www.ch.lth.se/~stefann/EDT621/


Kursens mål• pipelining• cacheminne• virtuellt minne• operativsystem


- och förstå hur de samverkar i en modernminnesarkitekturDu kommer också att kunna jämföra olikaarkitekturer vad gäller instruktionsuppsättning,minnesarkitektur och pipelining.


DatorarkitekturerSchemalagd tid på torsdagar:8-12: Vissa veckor: föreläsningar +övningar.Laborationer vissa veckor.


• Föreläsningar:◦ Stöd för inlärning◦ Kompletterar boken• Övningar• Laborationer:◦ RISC-processorn MIPS◦ AVR-processorn Maskinspråk,◦ Arkitekturer, jämförelse◦ Pipelining och cacheminnen• Examination:◦ Godkända laborationer◦ Godkänd projektredovisning◦ Tentamen


Datorsystem – en klassifikation• Superdatorer – när räknekapaciteten ärviktigare än kostnaden.• Persondatorer – PC, arbetsstationerm.m.När kostnadseffektiviteten är viktigast• Inbyggda datorer – Sådana som sitter idin mikrovågsugn, telefon eller TV


Datorsystem• von Neuman arkitektur◦ En central kontrollenhet◦ En lagringsplats för instruktioner och data◦ In och ut kommunikation◦ En extern lagringsplats, för långtidslagring avdata och program◦ En kommunikationslinje mellan de olika delarna


I datorns inrevon Neuman arkitekturCacheProcessorMinneDiskBildskärmNätverkBuss


Datorsystem• Harvardarkitektur◦ Samma som von Neuman, förutom attprogram och data lagras i separata minnen.


I datorns inreHarvardarkitekturCacheProcessorDataMinneProgramMinneDiskBildskärmNätverkBuss


Minnet lagrar program och data• Primärminne◦ Minneskretsar• ROM (Read Only Memory)• RAM (Random Access Memory)• Sekundärminne◦ Magnetiska skivor◦ Optiska skivor◦ SSD (Solid State Disk)


Minne• ROM (Read Only Memory)• Programmeras av tillverkaren• PROM (Programmable Read Only Memory)• Kan programmeras en gång av användaren• EPROM (Eraseable PROM)• Ett EPROM kan programmeras flera gånger. Raderas medUV-ljus.• EEPROM (Electrically Eraseable PROM)• Ett EEPROM kan programmeras flera gånger. Raderas meden elektrisk puls direkt via en dator.


Minne• RAM (Random Access Memory)◦ DRAM (Dynamiskt RAM)◦ SRAM (Statiskt RAM)◦ SDRAM (Synkront DRAM)• Synkroniserad utmatning av data ochprograminstruktioner. Nödvändigt vid ’Pipelining’.


Processorn utför instruktioner• Processorn:◦ hämtar en instruktionfrån minnet◦ utför instruktionen◦ hämtar nästainstruktion, o.s.v.• Instruktioner:◦ Utför enkel aritmetik◦ Förflyttar data frånminne till processor el.tvärtom◦ Styr programmetMIPS R10000 chip


In- och utenheterEtt videokort• Användarna köpertill de in-/utenheter detycker behövs• In-/utenheternaansluts med enbusskontaktBusskontakt


Men programvara då?CacheProgram finnspå diskenProcessorMinneDiskBildskärmNätverkBuss


CacheProgrammetkopieras tillminnet och körsdärProcessorMinneDiskBildskärmNätverkBuss


Arduino


Processorer (CPU)• Två huvudgrupper:◦ CISC (Complex Instruction Set Computer)◦ RISC (Reduced Instruction Set Computer)• OISC (One Instruction Set Computer)• En instruktion som hårdvaruprogrammeras med digitalakretsar eller FPGA.• ZISC (Zero Instruction Set Computer)• Varje processor jämför ett inmatat tal med ett lagrat och gerutsignal om de matchar. (fungerar som en nervcell)


Processorer (CPU)• CISC-processorer◦ Komplexiteten ligger i hårdvaran t.ex., Intelx86• RISC-processorer◦ Komplexiteten ligger i mjukvaran t.ex., ARM,AVR


Datorsystem• Persondatorer◦ Klarar medeltunga beräkningar◦ Kan styra yttre enheter◦ Grafiskt gränssnitt◦ Hanterar vardags-data (t.ex., text, musik, video,spel o.s.v...)• Processorer:• Intel, AMD, SUN,


Datorsystem• Superdatorer◦ Klarar extremt tunga beräkningar• Parallellprocessorer• Flera processorer som arbetar parallellt och samtidigt medett gemensamt program• Cluster• Flera datorer i ett nätverk som samarbetar i ett gemensamtprogram◦ Simulering och analysdata (t.ex., inommeteorologi, klimat, avkryptering)


Datorsystem• Inbyggda datorer◦ Styrning och kontroll av yttre system◦ Mikrokontrollers◦ Används i en stor mängd olika apparater ochsystem (t.ex., TV, hemmabio, bilar, kylskåp,tvättmaskiner, diskmaskiner, ....)• Processorer t.ex., AVR, Arduino, Microchip, ....


Datorsystem• Programnivåer1. Applikationer (Webbrowser, Word, e-mailklient, operativsystem, etc...)2. Högnivåspråk (C, C++,C#, Java, Basic, Pascal,Fortran, Forth, ....)a) Bytekod3. Assembler4. Maskinkod (binära koder)5. Hårdvara (digitala kretsar)


MIPS-arkitekturen


Instruktionsmodellen hos MIPSGenerella register Programräknare Minne$0$1$2$3----$29$30$31PC• 32 generella register $0-$31 (32 bitars)• ($0) = 0, $31 används vid subrutinanrop• Programräknaren, PC, innehåller adressen tillnästa instruktion som ska utföras• Minnet innehåller både instruktioner och data


◦ Aritmetiska/logiska instruktioner –utför databearbetning◦ Dataöverföringsinstruktioner – överfördata från minnet till processorn ellerfrån processorn till minnet◦ Hoppinstruktioner – styr programflödet


Några instruktioner• Alla instruktioner är 32 bitar stora:InstruktionVad den göradd $3,$4,$5 $3 = $4 + $5addi $3,$4,456 $3 = $4 + 456lw $4,12($10)$4 = M.w[12+$10]sw $5,16($11) M.w[16+$11] = $5lui $2,0xA000ori $2,$2,0x0020beq $4,$5,L1nopjal subrnopjr $31nop$2 = 0xA0000000$2 = $2 | 0x00000020if ($4 == $5) goto L1Hoppa till subrutin subr. Kom ihåg adressen tillefterföljande instruktion i register $31Hoppa tillbaka från subrutin (till den adress somstår i register $31)


–lui $8, 0x8004ori $8, 0x0020 # lägg adressen för x i reg $8–lw $16, 8($8)nop# läs in z–addi $17, $16, -32 # reg $17 = z-32 (16-bitarstal)–lw $18, 4($8)nop–add $19, $17, $18–sw $19, 0($8)x# läs in y# addera y med (z-32)# skriv resultatet på adressen för


Aritmetiska instruktionerMIPS-namnadd $rd,$rs,$rtaddi $rd,$rs,Ksub $rd,$rs,$rtslt $rd,$rs,$rtKommentarAddera två tal i registerAddera ett tal i register med en konstantSubtraktion. ($rd) = ($rs) – ($rt)Gör $rd = 1 om $rs < $rtannars gör $rd = 0slti $rd,$rs,K Gör $rd = 1 om $rs < K annars gör $rd = 0• Aritmetiska instruktioner har två källoperanderoch en destinationsoperand• Operanderna är alltid i register utom enakälloperanden som också kan vara en konstant


Logiska instruktionerMIPS-namnand $rd,$rs,$rtandi $rd,$rs,Kor $rd,$rs,$rtori $rd,$rs,Knor $rd,$rs,$rtxor $rd,$rs,$rtxori $rd,$rs,KKommentarBitvis OCH mellan två tal i registerBitvis OCH mellan ett tal i register och enkonstantBitvis ELLER mellan två tal i registerBitvis ELLER mellan ett tal i register ochen konstantBitvis ELLER mellan två tal i register.Varje bit inverteras i resultatetBitvis exklusivt ELLER mellan två tal iregisterBitvis exklusivt ELLER mellan ett tal iregister och en konstant


Instruktioner för minnetMIPS-namnlb $rt,offset($rs)lh $rt,offset($rs)lw $rt,offset($rs)sb $rt,offset($rs)sh $rt,offset($rs)sw $rt,offset($rs)Kommentar$rt = M[$rs + offset] (8 bitar)$rt = M.h[$rs + offset] (16 bitar)$rt = M.w[$rs + offset] (32 bitar)M[$rs + offset] = $rt (8 bitar)M.h[$rs + offset] = $rt (16 bitar)M.w[$rs + offset] = $rt (32 bitar)• Minnesaccesser kan göras med 8, 16 el 32 bitar• Adressen räknas ut som summan av innehållet i ettregister plus en offset• Offset är 16 bitar stor: -32768 – 32767


Att lägga en adress i ettregister◦ Instruktioner är 32 bitar långa◦ Adresser är 32 bitar långa◦ Hur lägger vi en adress i ett register?• Lösning:◦ Använd två instruktionerlui $rt,adress.hiori $rt,$rt,adress.lo# load upper immediate# or immediate◦ Load upper immediate lägger ett 16-bitarstort tal i de 16 mest signifikanta bitarna i ettregister; de övriga bitarna nollställs

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!