Bilder1
Bilder1
Bilder1
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