Flynns taxonomi ● Single Instruction, Single Data (SISD) – en instruktion i taget opererar på ett värde i taget ● Single Instruction, Multiple Data (SIMD)

Slides:



Advertisements
Liknande presentationer
IT för personligt arbete F5
Advertisements

Persondatorer Hårddiskar (Kapitel 7) Haidar Al Attar (IT lärare)
Dator.
Basic Security (Grundläggande säkerhet) Methods Of Attack (Attackmetoder)
En avancerad miniräknare
Frågor Allmän IT-kunskap avsnitt 1 kapitel 1 Repetition 4
En kort presentation om persondatorn och datorns olika delar.
Datorarkitekturer och operativsystem
Enkel dator teknik Tips och tricks.
Funktioner och programorganisation
Persondatorer Datorns internminne (Kapitel 6)
Minnesteknologier Teknologi Accesstid Kostnad $/GB SRAM 1 ns 1000 DRAM
William Sandqvist System Management functions S Burd, Systems Architecture ISBN Figure 11-2 CPU Management Memory Management.
23 August 2014 IS1200 Datorteknik vt09, föreläsning 10, (E och I mfl)1 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory.
Adressöversättning zRepetition av virtuellt minne zTLB - cacheminne för sidtabellinformation zVirtuellt eller fysiskt adresserat cacheminne zTricket -
Tumregel z10 procent av minnet används 90 procent av tiden.
Skrivning i cacheminnen zTräff zMiss zSkrivbuffert.
Denna föreläsning zVad kursen handlar om zKursupplägg, litteratur, bra att veta zPrestanda - ämnet för dagen.
Adressöversättning Repetition av virtuellt minne
Inkapsling.
Programmeringsteknik K och Media
Distribuerade filsystem
Nätverk Logistikprogrammet 2012.
DAV B04 - Databasteknik Indexering (kap 14).
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kap 3 & 4: Processer & trådar.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem.
EN KOMPLETT INDUSTRIPARTNER ! ALLMÄNT OM MELSEC STYRSYSTEM.
PROCESSPROGRAMMERING
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Pekare och speciell programstruktur i inbyggda system
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Välkommen till Del 1.
1 Pass 2 Allmän IT Hårdvara Hårdvara Hårdvara = Maskinvara Hårdvara är ett samlingsnamn för olika fysiska tillbehör till en dator. T. ex. Systemenhet.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
Internet Styrdatorer och kablar Uppkopplade användare Servrar 182.QRZN.
OPERATIVSYSTEM WINDOWS
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 4 ( ) Innehåll: -Programmerade rörledningar -Namngivna rörledningar.
Bios = Basic Input/Output System
Bildfabriken kan ställas in på olika sätt - se några exempel
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Prestanda ● Vad påverkar datorprestanda ● Hur mäter man datorprestanda ● Räkna klockcykler - ett sätt att analysera ● Amdahls lag - gräns för förbättringar.
Lågnivåprogrammering Översikt av I/O-mekanismer i hårdvara Olika språkkrav och modeller för komponent- hantering(device driving) Modeller för komponent-hantering.
INTRODUKTION TILL PROGRAMMERING
Frågor Allmän IT-kunskap avsnitt 1 kapitel 1 Repetition 3
31 March 2015IS1200 Datorteknik, förel 101 IS1200 Datorteknik Föreläsning Processorkonstruktion 2. DMA, Direct Memory Access 3. Byte-code i JAVA.
Cacheminnen: skrivning ● Träff ● Skrivbuffert ● Miss.
Minnesarkitektur Problem: Snabbare och snabbare processorer men minnena hänger inte med. Lösning: Minneshierarkier.
Emulatorkonstruktion Schema Inledning Andra metoder Mina metoder Demonstration av min C64-emulator Sammanfattning och frågor.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
PROCESSPROGRAMMERING Föreläsning 1 ( )‏ Innehåll: Introduktion till paralellprogrammering (“concurrent programming”)‏ Introduktion till parallellprogrammering.
2G1518 Datorteknik Föreläsning 5 Bussar In- och utmatning (Input/Output, I/O) Programstyrd pollning hösten 2005 för D3 och CLMDA m fl.
Föreläsning 2 programmeringsteknik och Matlab 2D1312/ 2D1305
F. Drewes, Inst. f. datavetenskap1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer och synkroniseringsmeddelanden.
Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
1 Ingenjörsmetodik IT & ME 2007 Föreläsare Dr. Gunnar Malm.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: -Exekveringstrådar.
6/3/2015© Mats Brorsson1 Hur mycket snabbare blir det med PC133 SDRAM jämfört med PC100 SDRAM?... blir det med en 1,4 GHz Athlon- processor jämfört.
Föreläsning 1 Introduktion till kursen. Algoritmer
Datorteknik Lektionsmål: – Datorns delar – ESD Kursmål: – Datorsystems uppbyggnad, komponenter och kringutrustningar. – ESD-säker hantering av mikroprocessorer.
Datasäkerhet 1.Skydda informationen – Ändra, förstöras eller kopieras 2.Säkerställa driften – Se till att program, datorer, servrar, nätverk och kommunikation.
Python.
Datorer och nätverk.
Grundläggande datavetenskap, 4p
Programmera dina klasskamrater
Datorer och nätverk.
Digitalteknik 3p - Kombinatoriska Byggblock
Digitalteknik 3p - Kombinatoriska Byggblock
Presentationens avskrift:

Flynns taxonomi ● Single Instruction, Single Data (SISD) – en instruktion i taget opererar på ett värde i taget ● Single Instruction, Multiple Data (SIMD) – en instruktion i taget opererar på en hel matris ● Multiple Instruction, Multiple Data (MIMD) – flerprocessorsystem, flera programräknare ● Multiple Instruction, Single Data (MISD) – funktionsenheter i kedja, alla värden passerar alla?

Single Instruction, Single Data ● SISD ● Kör en instruktion i taget, som opererar på ett värde i taget ● Den gamla vanliga sortens datorer

Single Instruction, Multiple Data ● SIMD ● Kör en instruktion i taget, som opererar på en hel matris ● Superdatorer från Thinking Machines (ca 1985) ● Vektorinstruktioner – MMX, 3Dnow, SSE,... – mycket begränsade små SIMD-beräkningar

Multiple Instruction, Multiple Data ● MIMD ● Flerprocessorsystem ● Flera fullständiga processorer med varsin programräknare ● Kommunicerar ofta med delat minne ● System med fler än cirka 10 processorer har snabbt datanät mellan processorerna ● Hyper-Threading är MIMD i en processorkrets – två processorer, som delar alla funktionsenheter

Multiple Instruction, Single Data ● MISD ● funktionsenheter i kedja, där alla beräkningar ska passerar alla funktionsenheter? ● hittills finns ingen kommersiellt tillgänglig MISD-dator

Dagens trend – MIMD ● Utbyggbart – en, två, tre eller flera processorer – samma operativsystem, samma program ● Flexibelt – prestandadator för en användare, – eller serverdator för hundratals användare, – eller något mellanting ● Kan byggas av standardkomponenter – mikroprocessorer från butiken på hörnet

Vad gör multiprocessorn? ● En ensam processor kör flera processer ● En process är – ett program, – programmets data, – programräknarinnehåll, registerinnehåll, – systeminformation om öppna filer, – med mera ● Multiprocessorsystemet kan köra processerna på varsin processor

Trådar ● Processer har varsin adressrymd, trådar delar på en och samma adressrymd ● En eller flera trådar ingår i en process ● En tråd är – en kodsnutt – ett programräknarinnehåll, registerinnehåll – resten hör till processen där tråden ingår ● Förvirring numera – thread ett modeord

Delat minne (shared memory)

Delat minne ● Implicit kommunikation med Load och Store ● Varje processor kan ha eget cacheminne ● Primärminnet hör inte till någon processor, utan är en gemensam resurs ● Snabb kommunikation processor–minne ● Överföringstiden är oberoende av vilka processorer som kommunicerar ● Lätt att skriva program för ● Primärminnet och dess buss är en viktig flaskhals i detta slags dator

Message-passing

● Explicit kommunikation med Send och Receive ● Varje processor har eget minne ● Processorerna kommunicerar med datanät – mycket snabbare än LAN – kan vara byggt som ett rutnät (LAN är en buss) ● Långsammare kommunikation än delat minne ● Överföringstiden beror på vilka två processorer i nätet som kommunicerar ● Krångligare att skriva program för

Message-passing + bibliotek ● Ett datorsystem med message-passing kan programmeras som om det hade delat minne ● Ett programbibliotek gör om Load och Store från/till delade minnet (som ju inte finns på riktigt) så att Load och Store skickar meddelanden ● Överföringstiderna fortfarande beroende på vilka processorer som kommunicerar ● Programmeraren får det lättare

Problem med multiprocessorer ● Alla problem är inte parallelliserbara ● Kommunikation i multiprocessorsystem tar tid

Delat minne och cacheminne ● Cacheminne krånglar till det ● Uppdelning i privata och delade variabler ● Privat variabel – används bara av en processor – kan vara i cacheminne utan särskilda åtgärder ● Delad variabel – används av flera olika processorer, som kommunicerar med hjälp av variabeln – måste synkroniseras så att alla cacheminnen har samma värde på variabeln!

Synkronisering av cacheminnen ● Coherence – vilka värden kan Load returnera? ● Consistency – när kan ett skrivet värde läsas? ● Snooping – cacheminnet kollar på bussen – varje minnesreferens jämförs med adresslapparna – om någon frågar efter minnesadresser där cachen har senaste värdet, så levererar cachen sitt värde – om någon skriver minnesadresser som cachen har en kopia av, så invaliderar cacheminnet sin kopia ● Ny sorts cachemiss – coherency miss

Coherence – vilka värden kan Load returnera? ● Om en processor har skrivit i en minnescell, så ska processorn kunna läsa samma värde i cellen (om ingen annan skrivit ett nytt värde sedan dess) ● Om en processor har skrivit i en minnescell, så ska en annan processor kunna läsa nya värdet ● Flera skrivningar till en och samma minnescell ska synas i samma ordning på alla processorer

Consistency – när kan ett skrivet värde läsas? ● Sequential consistency – Alla skrivningar och läsningar sker i en ordning som är samma för alla processorer, långsamt ● Relaxed consistency – Olika processorer kan få se olika ordning i vissa fall, höjer prestanda ● Proc2:B = 0;... B = 1; if( A == 0 )... ● Proc1:A = 0;... A = 1; if( B == 0 )...

In- och utmatning (I/O) ● Skivminnen (hårddiskar) ● Optiska skivor (CD och DVD) ● Magnetband ● Bandautomater ● Flashminne (blixtminne) ●...och så bussar för att ansluta alltihop!

Skivminnen (alias hårddiskar)

Skivminnets åtkomsttid, i delar ● Söktid (seek time) – tiden för läshuvudena att flytta sig till rätt cylinder ● Rotationsväntetid (rotational delay) – tiden tills rätt sektor snurrat fram under läshuvudet ● Överföringstid (transfer time) – medan rätta sektorn passerar under läshuvudet ● Fördröjning i styrkretsar (controller overhead) – medan styrenheten hanterar kommandon och sånt ●...och ibland: kötid (queuing delay) – väntetid tills skivminnet blir ledigt

Flashminne (blixtminne) ● Elektriskt raderbart läsminne ● Skrivning/läsning i stora block (t ex 64 kbyte) ● Organiserat som länkad lista av block ● Krånglig ändring av blockinnehåll – kopiera gamla innehållet till ett nytt block – skriv nytt innehåll – länka om lista

...och så bussar för att ansluta alltihop! ● Synkron buss – med klocksignal – alla enheter på bussen har samma klockfrekvens ● Split-transaction-buss – speciell synkron buss med pipelining – beställning (request) separeras från dataöverföring ● Asynkron buss – utan klocksignal – enkel och flexibel – klarar olika snabba enheter på samma buss

Vilken är buss- kabeln?

I/O-bussar ● SCSI (Small Computer Systems Interface) – hårddiskar till Macintosh och Sparc – bildläsare – används idag mest i server-datorer ● USB (Universal Serial Bus) – ser ut som ett träd, inte som en buss, eftersom varje kopplingspunkt måste ha elektronik