Grundläggande datavetenskap, 4p Kapitel 2 Datamanipulation, Processorns arbete Utgående från boken Computer Science av: J. Glenn Brookshear 2004-11-09 IT och Medier
Innehåll CPU Maskinspråk Exekvering av program ALU Kontrollenhet Register Maskinspråk Exekvering av program Program / data Aritmetiska/logiska instruktioner Kommunikation med periferienheter Alternativa datorarkitekturer 2004-11-09 IT och Medier
Central Processing Unit (CPU) Arithmetic Logic Unit, ALU Bearbetar data Kontrollenhet Koordinerar allt arbete Register = snabb, temporär datalagringplats General purpose placerade i CPU. Data till/från ALU, och mellanlagring Special purpose. Cache minne. Utanför, men nära CPU Primärminne, Sekundärminne Register < > Minnet < > Hårddisk 2004-11-09 IT och Medier
Exempel på uppgift Addera två tal som ligger i (primär)minnet och spara resultatet. Hämta första talet till ett register. Hämta andra talet till ett annat register. Tala om för ALU att addera talen. Talen i de två registren adderas Resultatet hamnar i ett register Lagra resultatet i minne. Stopp. 2004-11-09 IT och Medier
CPU-arkitekturer Complex Instruction Set Computer CISC ”Vanlig” processor. Komplexa operationer i många varianter Pentium Reduced Instruction Set Computer RISC Enklare CPU, färre effektivare instruktioner mer komplicerade program. PowerPC 2004-11-09 IT och Medier
Maskinspråk Data transfer Aritmetiska/Logiska Flödeskontroll LOAD, STORE Aritmetiska/Logiska ADD, SUB, AND, OR, ROTATE Flödeskontroll JUMP 2004-11-09 IT och Medier
Maskinkod I tidiga datorer var kod och data separerade John von Neumann, ”stored-program concept” Maskininstruktioner kodas Kod och data lagras tillsammans i minnet Maskinkod Op-code - operational code Operand 2004-11-09 IT och Medier
Simple Simulator Appendix C Laboration 1 Exempel 12 instruktioner 16+2 register 256 byte minne Laboration 1 Exempel 2004-11-09 IT och Medier
Maskinarkitektur 2004-11-09 IT och Medier
Maskininstruktioner En maskininstruktion består av Op-kod – generell del Operand – specifik del Ex: 0010 0111 0100 1111 2 7 4 F (Hex) Op-kod Operand (SimpSim) 2004-11-09 IT och Medier
Maskininstruktioner forts. Avkodning av instruktion 274F16 Op-kod 216 har RXY som operand och betyder load R,XY Ladda register 7 med 4F 2004-11-09 IT och Medier
Maskininstruktioner forts. Avkodning av instruktion 174F16 Op-kod 216 har RXY som operand och betyder load R,[XY] Ladda register 7 med innehållet i minnescell 4F 2004-11-09 IT och Medier
Maskininstruktioner forts. Exempel på instruktioner Maskinkod Opkod Operand Assembler Betydelse 3155 3 155 store R,[XY] store R1,[55] Spara det som ligger i register 1 i minnescell 55h 5012 5 012 addi R,S,T addi R0,R1,R2 Addera innehållen i register 1 och 2 (två-komplement) och lägg resultatet i register 0. C000 C (000) halt Stoppa programmet 2004-11-09 IT och Medier
Exekvering av program Kontrollenheten i CPU:n upprepar maskincykeln: Fetch, Decode, Execute, (Write) om och om igen Fetch: Läs in till instruktionsregistret Decode: Tolka instruktionen Execute: Utför begärd aktivitet (Write: Lagra resultatet) Programräknaren pekar alltid på nästa instruktion Ingen skillnad på kod och data i minnet Felaktigt lagrad data kan förstöra programmet. Ett program kan förändra sin egen kod. 2004-11-09 IT och Medier
Simple Simulator 2004-11-09 IT och Medier
Logiska operationer AND kan maska fram en eller flera bitar 1xxx AND 1000 = 1000 0xxx AND 1000 = 0000 OR kan sätta bitar xx0x OR 0010 = xx1x xx1x OR 0010 = xx1x XOR kan ”toggla” bitar 1011 XOR 1111 = 0100 2004-11-09 IT och Medier
Övning logiska operationer Utför följande logiska operationer: Vilken logisk operation har använts? 10101010 AND 11011000 10101010 OR 11011000 10101010 XOR 10101010 10001000 11111010 00000000 01111010 ? 10010000 01111010 ? 10010000 11100110 ? 10101010 XOR OR AND 11101010 11111010 10100010 2004-11-09 IT och Medier
Logiska operationer forts. ROTATE Cirkulär Höger Vänster SHIFT Icke cirkulär Aritmetiskt skift ”räddar” teckenbiten 01000000 10000000 00000001 01000000 10000000 00000000 10010000 10100000 2004-11-09 IT och Medier
Periferienheter Controller Bussar: Sköter kommunikationen Specialkonstruerad Bussar: Adress-, Data-, Kontrollbuss Externa Interna ”Von Nemanns flaskhals” 2004-11-09 IT och Medier
Flaskhalslösningar Memory-mapped I/O Direct Memory Access - DMA CPU skriver till en speciell minnesadress (port) Direct Memory Access - DMA Periferienheten har tillgång till minnet 2004-11-09 IT och Medier
Datakommunikation Överföringshastighet Seriell Parallell Bitar per sekund - bps kbps, Mbps, Gbps Seriell ”En” tråd En bit i taget USB – Universial Serial Bus, 480 Mbps, IEEE 1394 – FireWire, 400 Mbps, Digital Video Parallell Buss med flera parallella ledningar En bit per ledning Bussar Skrivare 2004-11-09 IT och Medier
Alternativa datorarkitekturer Pipelining fetch, decode, execute kan pågå samtidigt genom flera ”kanaler” (pipes) in till ALU Pentium 4 har 20 pipelines Trixigt med beroende instruktioner Multiprocessordatorer Flera processorer i samma maskin eller i samarbete Parallellprogrammering 2004-11-09 IT och Medier
En processor i ett chip 2004-11-09 IT och Medier