System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet



Relevanta dokument
Grundläggande datavetenskap, 4p

Digitala System: Datorteknik ERIK LARSSON

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

HF0010. Introduktionskurs i datateknik 1,5 hp

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

0.1. INTRODUKTION Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data.

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre

Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar

Läsminne Read Only Memory ROM

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15.

Datorteknik. Tomas Nordström. Föreläsning 2. För utveckling av verksamhet, produkter och livskvalitet.

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden

IT för personligt arbete F5

Datorsystemteknik DAV A14 Föreläsning 1

Mer datorarkitektur. En titt I datorn Minnen

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Moment 2 Digital elektronik. Föreläsning Inbyggda system, introduktion

Datorarkitekturer med operativsystem ERIK LARSSON

LV6 LV7. Aktivera Kursens mål:

Program som ska exekveras ligger i primärminnet. Processorn hämtar instruk7on för instruk7on. Varje instruk7on, som är e= antal 1:or och 0:or, tolkas

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga

Närliggande allokering Datorteknik

Datorsystemteknik DVGA03 Föreläsning 8

Tentamen den 18 mars svar Datorteknik, EIT070

Ext-13 (Ver ) Exempel på RTN-beskrivning av FLEX-instruktioner

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll:

Datorhistorik. Föreläsning 3 Datorns hårdvara EDSAC. Eniac. I think there is a world market for maybe five computers. Thomas Watson, IBM, 1943

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Föreläsning 1: Intro till kursen och programmering

In- och Utenheter. Fö 3: In/Ut matning och kopplingsstruktur. Några exempel. Egenskaper. In- och Utenheter. Styrning.

Ext-13 (Ver ) Exempel på RTN-beskrivning av FLEX-instruktioner

Föreläsning 1: Intro till kursen och programmering

Datorarkitekturer med operativsystem ERIK LARSSON

Digital- och datorteknik

IT-GUIDE Version 1.0 Författare: Juha Söderqvist

Digitala System: Datorteknik ERIK LARSSON

Datorsystemteknik DAV A14 Föreläsning 1

Digitalteknik och Datorarkitektur

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

Minnets komponenter. Digitala System: Datorteknik. Programexekvering. Programexekvering. Enhet för utdata. Enhet för indata CPU.

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11

Datorteknik. Föreläsning 6. Processorns uppbyggnad, pipelining. Institutionen för elektro- och informationsteknologi, LTH. Mål

Digitalteknik och Datorarkitektur 5hp

Processor pipelining genom historien (Intel i9-intel i7)

Datorsystem. Exempeltentamen

Föreläsningsanteckningar 2. Mikroprogrammering I

TSEA28 Datorteknik Y (och U)

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

Tenta i Digitalteknik

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

Datorteknik ERIK LARSSON

Så fungerar en dator

Datorteknik. Den digitala automaten. En dator måste kunna räkna! Register och bussanslutning

Operativsystem - input/output, skydd, virtualisering

ALU:n ska anslutas hur då?

Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte

Datorarkitekturer med operativsystem ERIK LARSSON

Introduktion till programmering och Python Grundkurs i programmering med Python

Utvecklingen från en 8 bitars till en 16 bitars mikroprocessor

Föreläsningsanteckningar 3. Mikroprogrammering II

5:3 Datorn och datorns delar

Tentamen PC-teknik 5 p Lösningar och kommentarer

Det finns en hemsida. Adressen är

Foto: Rona Proudfoot (some rights reserved) Datorarkitektur 1. Datapath & Control. December

DatorsystemteknikDAVA14 Föreläsning 9

Fö 2: Minnen. Introduktion. Primärminnet. Interna och externa minnen. Introduktion, Klassificiering

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Introduktion till programmering

Du kan även lyssna på sidorna i läroboken: Teknik direkt s Lyssna gör du på inläsningstjänst.

Cacheminne Intel Core i7

Digital- och datorteknik

Digital- och datorteknik

F8: Undantagshantering

Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp

Minnet från processorns sida Datorteknik

Inledande programmering med C# (1DV402) Introduktion till programmering

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

IBM POWER4, den första flerkärniga processorn och dess pipelines.

Hur implementera algoritmerna på maskinnivå - datorns byggstenar

MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING

3. Mikroprogrammering II

Datorteknik. Den digitala automaten. En dator måste kunna räkna! Register och bussanslutning

Föreläsning 2. Operativsystem och programmering

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Program Datorteknik. Kontrollenhet. Exekvering av en instruktion. Abstraktionsnivå: Högnivåspråk. Assemblyspråk. Maskinspråk.

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

Institutionen för datavetenskap 2014/15

Vad bör göras? Steg 1. RISC => pipelining. Parallellism. Pipelining. Nya LDA 13. RISC(reduced instruction set computer) Öka klockfrekvensen

Definition DVG A06. Varför operativsystem? Operativsystem. Översikt. - Vad är ett operativsystem?

Transkript:

Datorarkitektur - en inledning Organisation av datorsystem: olika abstraktionsnivåer System S den mest abstrakta synen på systemet A B C Ett högnivåperspektiv på systemet a1 b1 c1 a2 b3 b2 c2 c3 En mera detaljerad syn på systemet A. Soini/Introduktion till Datateknik/cs6 1

Von Neumann-arkitekturen: Von Neumann-arkitekturen ligger fortfarande som bas på de flesta av dagens datorer. En dator baserad på denna arkitektur har följande karakteristika: Fyra delsystem: minne, I/O (input/output), ALU (aritmetisk-logisk enhet), styrenhet (kontrollenhet) Obs! Vissa böcker skiljer sekundärminnen som sin egen kategori; här räknas dem i I/O Har ett lagrat program (viktig skillnad mot 50-talsdatorer) Programinstruktionerna exekveras sekventiellt (viktig skillnad mot nyare alternativa arkitekturer) minnet styrenhet Input/ Output ALU processor I det följande betraktar vi dessa funktionella enheter mera detaljerat. A. Soini/Introduktion till Datateknik/cs6 2

Primärminnet (memory, storage) I minnet lagras både program och data i binär form, dvs. som 0:or och 1:or. Varje minnescell är i princip direkt åtkomlig, dvs. vi har direktaccess till alla data. Därför talar vi om RAM (Random Access Memory). Ett RAM har följande karakteristika: Minnet är uppdelat i minnesceller, där samtliga celler har samma storlek (ex. 32 bitar, 64 bitar, ) och där varje minnescell har en unik identifierare, en adress. All minnesaccess sker genom att man refererar till cellens adress, och endast hela minnesceller kan accesseras. Den tid det tar att accessera en minnescell (antingen för att hämta information där(ifrån) eller för att lagra information där (dit)) är konstant, dvs. oberoende av cellens adress. adress 1 bit 0 1 2 en minnescell n bits MAR minnesadressregister MDR maximal minnesstorlek 2 n -1 minnesdataregister W eller en multipel av W minnesvidd W A. Soini/Introduktion till Datateknik/cs6 3

Det är viktigt att förstå skillnaden mellan en cells adress och dess innehåll: 0010101 adress 11110001111 innehåll De grundläggande operationerna är hämta (fetch) och lagra (store). Enligt korrekt svenskt språkbruk säger vi var vi hämtar och lagrar saker. När vi hämtar data i minnet förs data ut därifrån (dock inte fysiskt - data kopieras!). När vi lagrar data i minnet förs data till minnet. Detta sker också via kopiering - de nya data kopieras över det gamla innehållet i den aktuella minnescellen. Detta innebär att den gamla informationen försvinner. Fetch/hämta(adress): Ladda adressen i MAR (minnesadressregister) Avkoda adressen i MAR Kopiera innehållet i denna adresserade minnescell i MDR (minnesdataregister) 0010101 MAR 0010101 11110001111 11110001111 Store/lagra(adress, värde): MDR Ladda adressen i MAR Ladda värdet i MDR Avkoda adressen i MAR Lagra innehållet av MDR i denna adresserade minnescell 0010101 MAR 0010101 11110001111 11110001111 MDR A. Soini/Introduktion till Datateknik/cs6 4

Minnesorganisation: MAR n = 4 d d d d d = 0 eller 1 4 inputlinjer minnet adress 4-till-16 avkodarkrets 0000 0001 0010 0000 (0) 0001 (1) 0010 (2) 2 4 = 16 outputlinjer 1110 (14) 1111 (15) Även om vi vanligtvis ritar minnet schematiskt som en ändå lång rad av minnesceller, är minnet i praktiken oftast tvådimensionellt organiserat 1 : radselektorlinjer rader 00 01 10 11 kolumner 00 01 10 11 0000 0001 0010 0011 0100 0101 0110 0100 1000 1001 1010 1011 1100 1101 1110 1111 adress: rad 00, kolumn 11 00 01 10 11 kolumnselektorlinjer 1(Även en tredje dimension kan förekomma i några moderna arkitekturer, men den består egentligen av ngr. st. 2-dimensionella matriser ovanpå varandra.) A. Soini/Introduktion till Datateknik/cs6 5

Det tvådimensionella minnet: n/2 bitar n/2 bitar ddd d ddd d MAR (n bitar) 11 11 resten av datorn kolumnavkodarkrets 00 00 radavkodarkrets 00 00 00 01 00 10 11 11 2 n minnesceller, ordnade i en 2 n/2 * 2 n/2 matris MDR fetch/store kontrollerare något multipel av W bitar fetch/store-signal (specificerar om man skall hämta eller lagra information) A. Soini/Introduktion till Datateknik/cs6 6

Periferala enheter: Input/Output och sekundärminnen I/O-enheterna möjliggör kommunikationen mellan användaren och datorn. De är de mest maskinberoende av alla de logiska enheterna i Von Neumann-arkitekturen - därför ser vi bara på några mycket allmänna klassificeringar och drag hos dem. Människoläsbara I/O-enheter: tangentbord (konsol) scanner bildskärm printer mikrofon högtalare mus, andra pekdoner Maskinläsbara I/O-enheter: hårdskiva disketter kassettband magnetband CD-ROM DVD mp3 USB-minnen En viktig indelningsgrund är direktaccess kontra sekventiell access. Direktaccess innebär att man direkt når det önskade stället (ex. sin favoritlåt på en CD-skiva). Sekventiell access innebär att man måste söka sig fram sekventiellt tills det önskade stället hittas (ex. spola fram kassettbandet tills man når sin favoritlåt). Sekventiella minnen är mycket långsamma jämfört med direktaccessminnen - man måste ju i värsta fallet söka fram magnetbandet ur arkivet och montera det på bandstationen. De A. Soini/Introduktion till Datateknik/cs6 7

används dock fortfarande för arkiveringsändamål och säkerhetskopiering. Alla dessa enheter är mycket långsamma jämfört med processorns hastighet, och minst 99% av datorns tid skulle gå åt att vänta på dem, om processorn själv behövde administrera dem. För att undvika detta har vi speciella I/O-kontrollerare: avbrottssignal (interrupt) till processorn, när färdigt buss data processor minne I/O-kontrollerare I/Obuffert kontrolllogik I/Oenhet A. Soini/Introduktion till Datateknik/cs6 8

ALU - den aritmetisk-logiska enheten: ALU tillsammans med styrenheten bildar processorn i moderna datorer. ALU och styrenheten arbetar så intimt ihop att det ofta är motiverat att betrakta dem som en enda helhet. Om dessa ännu byggs ihop med primärminnet, talar vi om CPU, central processing unit. Här kommer vi dock att behandla dem separat, och se vilka uppgifter de sköter var för sig. ALU består av tre delar: ett antal register själva ALU-kretsen kopplingar mellan dessa En ALU med tre register: En ALU med 16 register: resultatet registren vänster höger register A register B R0 R1 R2 ALU R3 register C R15 ALU A. Soini/Introduktion till Datateknik/cs6 9

ALU-kretsen: a b ALU a + b linje 00 a - b linje 01 MUX output a = b linje 10 a * b linje 11 selektorlinjer A. Soini/Introduktion till Datateknik/cs6 10

ALU-kretsen med register och bussar: buss 2 registren buss 0 buss 1 R0 R1 R2 R3 ALU + - / = MUX selektorlinjer A. Soini/Introduktion till Datateknik/cs6 11

Styrenheten (kontrollenheten) En central egenskap i Von Neumann-arkitekturen är det lagrade programmet. Detta innebär att koden som programmeraren har skrivit har översatts till binär form, en serie binära maskinspråksinstruktioner som lagras i maskinets minne, på samma sätt som data 2. (Detta lagringssätt blev en avgörande skillnad mot de tidigare maskiner, där datorn programmerades mekaniskt med hjälp av tiotusentals switchar som skulle omställas inför varje nytt program.) Styrenheten skall se till att datorn följer detta lagrade proram. Dess uppgift består av tre delar: Hämta (fetch) nästa instruktion från minnet Avkoda (decode) instruktionen, dvs. fastställ vad som skall göras Exekvera (execute) instruktionen genom att aktivera ALU, minnet eller de aktuella I/O-enheterna. Maskincykel: hämta avkoda exekvera Maskinspråksinstruktioner: operationskod adress 1 adress 2 Ex. ADD x, y (addera innehållet i cellerna x och y, och lagra resultatet i y) 2 Detta i sin tur leder till att det inte finns nån principiell skillnad mellan data och program -ex. assemblerprogrammen kan använda sin egen kod som data och bearbeta den! A. Soini/Introduktion till Datateknik/cs6 12

Alla de operationer en dator kan utföra bildar dess instruktionsmängd eller instruktionsrepertoar. Instruktionerna kan indelas i fyra huvudtyper: Dataöverföring (ex. LOAD x, STORE x, MOVE x, y) Aritmetiska operationer (ex. ADD x, ADD x, y eller ADD x, y, z) Jämförelser (ex. COMPARE x, y) Hopp (ex. JUMP x, JUMPEQ x) Register och kretsar i styrenheten: Styrenheten består av två viktiga register: PC (Program Counter) IR (Instruction Register) och en krets: IDC (Instruction Decoder Circuit) PC innehåller adressen till följande instruktion som är i tur att utföras. IR innehåller en kopia av den instruktion som hämtats från minnet. IDC identifierar vad som finns i IR OP, dvs. operationskoden i den aktuella instruktionen. bus +1 PC OP-kod adressfälten IR Instruktionsavkodarkrets IDC signaler till minnet, ALU, I/O-kontrollerare och andra komponenter A. Soini/Introduktion till Datateknik/cs6 13

Ex. OP-koden b b b adresser IR IDC linje 000 (ADD) linje 001 (LOAD) linje 010 (JUMP) linje 111 (HALT) Aktivera ADD-kretsarna (circuitry) Aktivera LOAD-kretsarna Aktivera JUMP-kretsarna Aktivera HALT-kretsarna Det var det! En liten repetition med en helhetsbild följer A. Soini/Introduktion till Datateknik/cs6 14

Von Neumanns dator: minnet: ALU: I/O: Styrenheten: buss MAR MDR R0 R1 I/Okontrollerare +1 PC IR minnesavkodarkrets F/Skontrollerare R2 R3 IDC I/Oenhet kontrollsignaler ALU F/Ssignal selektorlinjer GT EQ LT RAM konditionskodregister A. Soini/Introduktion till Datateknik/cs6 15