Emnehefte - Mikroprosessorer
|
|
- Johanna Dalen
- 8 år siden
- Visninger:
Transkript
1 Emnehefte - Mikroprosessorer ISSN: /Kompendium [1] [2] Vegar Johansen Revidert av Henning Gundersen desember 2011
2 2
3 Innholdsfortegnelse Innholdsfortegnelse Litt prosessorhistorie prosessoren prosessoren prosessoren prosessoren Pentium-prosessoren Itanium-prosessoren Core i7-prosessoren Eksempel på et brikkesett (chipset) Siste tids utvikling Blokkskjema for en Intelprosessor Pipeline Branch prediction Cachehukommelse Organisering av cache - hukommelser Skriveprinsipper ved cachehukommelser og et eksempel på en protokoll MESI-protokollen Forenklet programmeringsmodell for en Intel prosessor Registerblokker En prosessors operasjonsmodi Real mode Protected mode Virtuell-8086 mode System Management Mode Eksempel på et pagingsystem med en 32-bits Intel prosessor Flat minnemodell Beskyttelse av IO - porter Instruksjonsrepertoar Det første assemblyprogrammet for Intel prosessor
4 7 Interrupt i en mikroprosessor Et realmode eksempel Advanced Programmable Interrupt Controller (APIC) Message Signaled Interrupts (MSI) RISC - og CISC - arkitektur i prosessorer CISC RISC Feilkontroll Sjekksum CRC - sjekk IO bussystemer i en PC Universal Serial Bus (USB) Litteraturreferanser Appendiks 1 - Instruksjonsrepertoaret i Intel x86-familien
5 1 Litt prosessorhistorie Prosessorer levert fra Intel har vært benyttet i PC-er fra begynnelsen av 1980-tallet. Intel har garantert at en ny prosessor hele tiden skal være kompatibel med tidligere prosessorer de har levert. Dette innbærer at kode skrevet for en 8086-prosessor kan kjøres på nye Intel-prosessorer. Prosessorfamilien disse tilhører, kalles gjerne x86- familien. Under er vist en historisk oversikt for denne familien samt bilder av en av de siste Intel utgavene. Prosessorbetegnelser Klokketakt Databuss Adresserbart minne Lansert bredde(bit) (Bytes) år Mhz 8 64kB Mhz 16 1MB MHz 16 16MB MHz 32 4GB MHz 32 4GB 1989 Pentium 200 MHz 2x32 4GB+L1cache 1993 PentiumPro 200 MHz 2x32 64GB+L1/L2cache 1995 Pentium4 3.8 GHz 2x32 64GB+L1/L2cache 2000 Itanium 2* 1.6 GHz = 1 petab 2002 Pentium D 3.2 GHz 2x32 64GB 2005 Pentium EE 3.46 GHz 64 64GB 2005 Inte Core 2 Quad 2.83 GHz 64 64GB 2008 Intel Core i7 (4 kjerner) 3.2 GHz QPI Quick Path Interconnect 2008 Xeon 7460 (server) 2.3 GHz 64 1 TB 2008 Tabell 1.1 En historisk oversikt over noen av Intels prosessorer. *128-bits heltalls og floating-point registre 5
6 Figur 1.1 Bilde av en Intel Core i7. [2] prosessoren Første IBM PC ble lansert i 1981 og prosessoren i denne var en 8088 med en 8-bits databuss ut, men med 16-bits intern arkitektur prosessoren hadde vært på markedet i tre år når denne PC en så dagens lys prosessoren 286-prosessoren kom også på markedet bare få måneder etter at denne PC en ble lansert. 286 hadde en 24 bits adressebuss noe som ga et adresseringsområde på 16 MB. Denne prosessoren kunne operere i to modus, real mode og protected mode. I protected mode kunne prosessoren håndtere virtuelt minne som gjør det mulig for prosessoren å adressere et større adresseområde enn det adresseområdet som dekkes av fysisk internminne i maskinen. Det som var uheldig med 286 prosessoren var at denne kunne koble om fra realmode til protected mode, men ikke omvendt vei uten en restart av maskinen prosessoren 386 prosessoren var den første prosessoren fra Intel som hadde gjennomført 32-bits arkitektur. (IA32, IA står for Intel Architecture). Denne kunne også operere i virtuell 86 modus i tillegg til real mode og protected mode. Den nye modusen simulerte real mode 86 - prosessorer og gjorde det mulig å starte flere slike. Dette gjør det mulig å kjøre flere DOS-programmer samtidig og de vil være beskyttet i forhold til hverandre. Hvert DOSprogram får tildelt 1 MB med minne prosessoren Med 486 prosessoren fikk vi etter hvert integrert den modulen som regner med tall med komma (flyttallsprosessor = floating point unit = FPU) på prosessorbrikken. (Slike prosessorer kan også behandle heltall.) Flyttallsprosessorer hadde tidligere vært en selvstendig brikke. En annen nyhet i 486 var cachehukommelse for å øke ytelsen. 6
7 Sammen med en mulighet for å overføre data mellom minne og prosessor ved såkalt burst mode, resulterte dette i at 486 fikk en ytelse lik det dobbelte av ytelsen til 386. Burst mode betyr at vi kan gjøre mange dataoverføringer etter hverandre til eller fra et sammenhengende minneområde. Hver overføring besto av 4 byter (32 bits databuss) Pentium-prosessoren Pentiumprosessoren hadde en arkitektur som nærmer seg en 64-bits arkitektur. Den hadde en 64-bits databuss ut, den har 2 ALU er internt og blir på den måten en slags 2x32 bits prosessor. Den interne cachehukommelsen (L1 cache) ble utvidet til 8kB for instruksjoner og 8 kb for data. Pentium E (extreme edition) hadde følgende hoveddata: Klokketakt GHz Dual core, hvilket betyr 2 komplette prosessorkjerner på samme brikke L2 cache integrert på prosessorbrikken. L1 datacache består av 2stk 16 kb. L2 cache har kapasitet på 2MB for hver kjerne, totalt 4MB Itanium-prosessoren Itanium er en 64-bits prosessor (IA64) som ble lansert i 2002 i samarbeid med Hewlett Packard. Den har blant annet følgende data: 64 bits flat adresseringsmodell 64 bits databuss 128 interne heltalls register, bredde 64 bit 128 interne flyttalls register, bredde 82 bit cachenivå: L1 32k, L2 256k, L3 32MB IA32 kompatibel Skalerbare systemer opp til 32 prosessorer, men det finnes systemer med 512 prosessorer 25 mill transistorer i CPU og 300 mill i cache. Tukwila er kodenavnet på den neste generasjon av Itanium. Selv om denne er noe omgitt av hemmelighets kremmeri antas det at denne skal ha av mange kjerner og at den skal benytte SMT (Simultaneous multithreading). Denne teknikken tillater mange tråder (små eksekverbare enheter) å bli kjørt samtidig og dermed øke ressursytelsen i prosessoren. Prosessoren vil ha 4 kjerner og 30 MB cache pr prosessorbrikke. 7
8 Core i7-prosessoren Core i7 ble lansert i november Her er gjort en del arkitektur endringer og av hovedpunkter for 940-utgaven nevner vi: 4 kjerner klokketakt 2.93 GHz 8MB L2 cache 36 bit fysisk adressebuss 731 mill transistorer (det kan nevnes at Xeon 7460 med sine 6 kjerner har 1.9 milliarder transistorer) 25.6 GB/s minne båndbredde 8
9 1.1 Eksempel på et brikkesett (chipset) Intel Core 2 Extreme Processor 12.8 GB/s FSB PCI Express 2.0 Graphics x16 PCI Express 2.0 Graphics x16 12 USB porter 480 Mb/s 6 PCI Express x1 500MB/s Intel Gigabit LAN MCH Memory Controller Hub IOCH IO Controller Hub BIOS support DDR GB/s - minne DDR GB/s - minne 2 GB/s Intel High def Audio 6 Serial ATA, 3 Gb/s Figur 1.2 Et hovedkort med prosessor, memory controller hub (MCH), og IO controller hub (ICH)( før 2008). Memory Controller Hub (MCH) ble en flaskehals i det systemet som er vist i figur 1.2. Et brikkesett som er Intel Corebasert består i utgangpunktet av tre brikker. Den ene brikken utgjør prosessoren. De andre benyttes som en brikke som skal tilpasse kommunikasjonen mellom prosessor, minne og skjermkort. Den kalles Memory Controller Hub (MCH). Denne brobrikken er programmerbar og initialiseres i forbindelse med oppstarten av systemet. Den har som oppgave å tilpasse kontrollsignaler, bussbredder og overføringshastigheter mellom prosessor skjermkort og internminne. Bussen som går ut fra prosessoren kalles ofte for Front side bus (FSB) og har høye overføringsrater. Som det fremgår av figur 2.1 over er det for tiden (2006) mulig med 8.5 GByte/s. Siden databussen er på 64 bit = 8 byte, vil dette kunne uttrykkes i antall overføringer à 8 byte og vi får da busstakten lik MByte/8 lik ca 1600 MHz. I 9
10 datablad for prosessoren finner vi informasjon om at FSB kan ha overføringstakt tilsvarende 1600 MHz. Dette tilsvarer altså ca 1600 millioner 64 bits overføringer i løpet av ett sekund. Et lite tankeeksperiment for å illustrere dette: Om vi tenker oss at 1 bit dekker en avstand på 1 mm, vil vi få ca mm. Dette tilsvarer en avstand på ca 2 ganger rundt jordkloden. MCH har også som oppgave å tilpasse overføring til skjermkortet via en PCI Express buss. Overføringsraten her er 16x PCIExpress som tilsvarer 8 GB/s. (Forkortelsen PCI står for Peripheral Component Interconnect). PCIExpress bussen er en videreutvikling av den gamle PCI-bussen som var en parallell buss. Den gamle PCI-bussen slik den ble benyttet i en PC hadde 32-bits bredde og en overføringstakt på 33 MHz. Det innebar at vi kunne overføre 4Byte 33Millioner ganger pr sekund hvilket gir en overføringstakt på 133 MByte/s. PCIExpress er en seriell buss. Det kan fortone seg noe merkelig siden vi tradisjonelt har tenkt at parallelle busser gir raskere overføring. Vi har jo stadig sett utvidelse av bussbreddene fra 8 -, 16 -, 32 - til 64 bit i den hensikt å få overført flere byter om gangen og øke overføringsraten. Nå er det imidlertid slik at det er mye lettere å øke hastigheten om vi benytter serielle linjer i stedet for parallelle. Dette skyldes blant annet at ved høy overføringshastighet kan vi få såkalt skewing av signalet, noe som innebærer at over en parallell bus vil signalene over de ulike linjene komme fram til destinasjonen til ulike tidspunkt. Ved parallell overføring er en avhengig av at signalene kommer fram til samme tidspunkt. Det er en imidlertid ikke om en benytter serielle busser. En PCIExpress buss er en full duplex linje det vil si sending og mottak kan skje samtidig. En slik duplex forbindelse kalles en lane og basishastigheten for en slik forbindelse er 2.5 GHz/s i hver retning. En byte overføres sammen med to tilleggsbit. Disse to tilleggsbitene er nødvendige av synkroniseringshensyn. En regner med ca 25 % overhead ved denne kommunikasjonen slik at vi får maksimalt 250 MB/s i hver retning for en enkel forbindelse. Vi kan kjøre flere lanes parallelt for å øke overføringskapasiteten og for en x16 forbindelse kan vi få 4000 MB/s. 10
11 ICH - eller IO Controller Hub har som oppgave å tilpasse hastighet, foreta serie- til parallell omforming, tilpasse bussbredder og hastigheter etc. Av typiske oppgaver denne har nevner vi: - PCI Express grensesnitt - PCI- grensesnitt - USB grensesnitt - IDE/SATA grensesnitt ICH-brikken inneholder ellers blant annet interrupt kontrollere (8259 og IO APIC), DMA kontroller, timere etc. IDE (Integrated Device Electronics) er det gamle grensesnittet som ble brukt mot disker og er basert på parallell overføring. SATA (Serial Advanced Technology Attachment) er det nye grensesnittet og baseres på seriell overføring. Den første versjonen av SATA hadde en overføringsrate på 1.5 Gbit/s. Her opererte en med 20 % overhead slik at reell overføringshastighet ble 1.2 Gbit/s = 150 MByte/s. I 2004 kom en SATA versjon med 3 Gbit/s (SATA II eller SATA300 som den også kalles). Denne versjonen er kompatibel 1.5 standarden. I midten av av 2007 fikk vi en økning i overføringsrate for denne standarden til 6 Gbit/s. I tabell 1.1 finner du en oversikt over noen av IO bussene. 11
12 SATA Parallell ATA IEEE1394 USB2.0 PCIe v 2.0 b Hastighet MB/s 800 Mb/s 480Mb/s 500 MB/s pr lane MB/s =100MB/s =60MB/s Kabellengde 2 m 46 cm 4.5 m 5 m Ikke spesifisert Powerkabel Ja Ja Nei Nei Nei Antall enheter pr kanal Tabell 1.1 En sammenligning av ulike IO busser. Mens vi er inne på IO busser bør vi nevne SCSI bussen. SCSI står for Small Computer System Interface og var et parallelt grensesnitt som har vært mye brukt mot disker, spesielt på arbeidsstasjoner, men også på PC er. Den siste versjonen av denne parallelle SCSI (Ultra 320) hadde overføringskapasitet på 320 MByte/s. Like etter tusenårsskifte innså en at denne stødige bussen måtte endres til en seriell utgave for å imøtekomme kravene til ytelse. Dette resulterte i SAS eller Serial Attached SCSI. Denne standarden forelå i Dette er en seriell buss med 3Gbit/s tilsvarende 300MByte/s som overføringsrate og samtidig overføring i begge retninger (full duplex). Ved å sette sammen flere slike serielle overføringsveier kan ytelsen økes. SATA SAS Ytelse 3.0 Gb/s HalF-duplex 6.0 Gb/s (fullduplex) Tilkobling Driver 1 m internkabel En enhet, bare SATA Software transparent med parallell ATA 6 m ekstern kabel SATA og SAS Software transparent med parallell SCSI Tabellen 1.2 viser en sammenligning mellom SATA og Serial Attached SCSI. 12
13 1.2 Siste tids utvikling. Front side bus (FSB) kom inn i utviklingen av Pentium pro og ble også benyttet i Pentium 4. Dette medførte at om en ønsket en løsning med 4 prosessorer, ville hver av disse få sin egen FSB som var koblet til Memory Controller Hub. Dette gjorde at Memory controller hub ble kompleks siden den måtte ha over 1000 pinner bare for å realisere de 4 FSB ene. Memory controller hub ble således en flaskehals. CPU CPU DRAM MCH CPU CPU MCH ICH Figur 1.2 Dedicated Highspeed Interconnects, Båndbredden er 34 Gbyte/s. En 4-kjernes prosessorløsning med FSB slik den så ut i 2007 er vist i figur 1.2. Med mange kjerner på en chip blir kravet til båndbredde betydelig. Den nye bussløsningen som følger etter FSB kalles for Intel QuickPath Interconnect (QPI). Denne bussen er benyttet for Core i7, Xeon og Itanium prosessorer. Bussen er skalerbar og gir høy ytelse med lave kretstekniske kostnader og Intel hevder dette er en løsning for fremtiden. Løsningen er basert på høyhastighets point-to-point linker som krever halvparten av signalene som FSB-løsningen hadde og kan gi inntil 50% høyere ytelse i forhold til sistnevnte. I QPI konseptet kan en velge hvorvidt Memory Controller Hub (MCH) og IO Controller Hub skal integreres på prosessorbrikken. 13
14 Figur 1.3 Her er prosessorer og minnekontroller integrert på prosessorbrikken og FSB er erstattet av QPI (Quickpath Interconnect) busser. MCH står for Memory Controller hub. Blokkskjematisk kan en slik arkitektur se ut som figur 1.4 under. Figur 1.4 Fire kjerner med bussløsningen QuickPath Interconnect. Linkene er full duplex, det vil si det kan overføres data begge veier samtidig. I noen arkitekturer kan de diagonale linkene mellom prosessorene velges bort. Om CPU A ønsker data fra CPU D må forespørselen gå gjennom prosessor C eller B. 14
15 En link består av flere lanes som hver har en seriell overføring. Dette gjør at dette blir en form for parallell overføring. Dette er mye det samme konseptet som benyttes ved PCI Express med noen mindre justeringer. Intel oppgir en 20-bits QPI link med 3.2 GHz klokketakt til å ha en overføringskapasitet på 25.6 GB/s. Mer generelt med definisjonen av en 20-lanes QPI som vil overføre 8 bytes per klokketakt, 4 i hver retning. Dette beregnes som følger: 3.2GHz * 2 bits/hz (double data rate) * 20 (QPI link width) * 2 (bidirectional) * (64/80) (data bits/flit bits) / 8 (bits/byte) = 25.6 GB/s Figur 1.5 Brikkesett med en Core i7 prosessor og QPI busser. 15
16 Figur 1.5 viser en moderne arkitektur der prosessorbrikken har en innebygd memory controller hub (MCH). X58 er en chip som dermed ikke inneholder en MCH og Intel kaller den en IO hub. Denne brikken tilpasser busshastigheter mot prosessor via QPI [3], med ICH via en mer langsom DMI buss (Direct Media Interface med en overføringsrate på 2GB/s), samt et grafikk kort via PCI Express
17 2 Blokkskjema for en Intelprosessor I figur 2.1 under vist et forenklet blokkskjema for en Intelprosessor. L1 - kodecache Branch prediction m/buffer Intruksjonskø IP Dekodede instr L3, L2 cache ALU ALU FPU (80 bits SSE m /128 bits kode og data U-pipe V-pipe arkitektur arkitektur Interface mot MCH memory controller hub Adr bus Registerblokk (rax,rbx, etc (stack-reg) Eksekveringsblokk Data bus L1 - datacache Figur 2.1 Forenklet blokkskjema for en kjerne i en µprosessor. Eksempel på cache-størrelse pr i dag (juni 2009) er: L1 - Datacache 32 kb L1 Instruksjonscache 32 kb L2 kode og data cache 2-3 MB L3 - kode og data cache 32 MB Vi starter omtalen av prosessoren med noen hovedpunkter. Prosessoren har: - 64 bits databuss, 32, 36 eller 40 bits adressebuss - L1 datacache og instruksjonscache (32kB hver) - innebygd L2 cache (inntil 2-3MB pr prosessorkjerne) 17
18 - busshastighet inntil 1333 MHz - klokketakter 2-4 GHz - to ALU er - innbygd flyttallsprosessor (80 bits registre, registerstack) - to pipelines (U- og V - pipeline), hver med minst 20 trinn - prosessoren er superscalar - SSE4 Streaming SIMD Extension 4, 128 bits heltallsaritmetikk, - branch prediction 2.1 Pipeline Før vi går videre med mer detaljer som gjelder for en Intelprosessor, ønsker vi å forklare begrepet pipeline. For å illustrere begrepet pipeline antar vi en instruksjonssekvens som består av 10 instruksjoner I1 I10 og om vi holder oss til Intelprosessor - har vi to pipelines U og V. Se figur 2.2. Om vi følger instruksjonen I1 i figur 2.2 ser vi at denne hentes i PF fasen (PreFetch og klokkeperiode 1) til pipe U. Dernest blir den dekodet i D1-fasen og klokkeperiode 2, adresser til data beregnes i D2 (klokkeperiode 3), instruksjonen eksekveres i EX-fasen (klokkeperiode 4) og resultater skives til register eller cache WB-fasen (WriteBack, klokkeperiode 5). Eksekveringen av en instruksjon er altså delt inn ulike trinn og hvert av disse opererer selvstendig. Det betyr at når instruksjon I1 flyttes til dekodingsblokken D1, blir PF-trinnet ledig og kan benytte PFtrinnet til å hente neste instruksjon som vil være I3 i vårt eksempel, siden I2 ble hentet til V-pipen. Det som foregår innen ett trinn kaller vi µoperasjoner, slik at utførelsen av en instruksjon består av mange µoperasjoner. Eksempler på slike µoperasjoner er for eksempel å klokke data inn i et register, stille inn hvilke operasjon en ALU skal utføre etc. Når en pipeline i figur 2.2 er helt fylt opp med instruksjoner, vil vi fra klokkeperiode 6 og utover få fullført en instruksjon for hver klokkeperiode og hver pipe. Dette innebærer en betydelig ytelsesforbedring. Under normal programutførelse vil instruksjonene tenkes utført i den rekkefølge vi skrev instruksjonene i vårt program. Et problem vi får med denne løsningen er hva som skjer når en branch-instruksjon kommer. Vi skal drøfte dette litt senere i kapitlet i forbindlese med begrepet branch prediction. For øvrig er en pipeline i de nyere Intelprosessorer 18
19 inndelt i trinn. Dette egner seg greit som et utgangspunkt når vi skal forklare arbeidsgangen ved en instruksjonsutførelse i en Intel kjerne. Pipelining PF U V U V U V U V U V I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 D1 I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 D2 I 1 I 2 I 3 I 4 I 5 I 6 EX I 1 I 2 I 3 I 4 WB I 1 I 2 Klokkeper Figur 2.2 To pipelines U og V med 5 trinn i hver. 18 Alle Intelprosessorene av nyere dato inkluderer to on-chip L1 cachehukommelser, en for data og en for instruksjoner. Arkitekturen herfra og inn mot kjernen blir således en Harvard arkitektur. For Intel Core er L1 datacache på 32 kb. Denne datacachen har cachelinjer på 64 bytes og benytter prinsippet med eight-way set-associative organisering. Dette betyr at en cachehukommelse ikke er byteorganisert slik vi tenker internminnet i en PC, men at den er organisert i cachelinjer og i dette tilfellet inneholder en cachelinje 64 byter. Se mer om cachehukommelser i kapitel 4 i kompendiet. L2 cache forsyner L1 instruksjonscachen og L1 datacachen. L2 er en cache som holder både data og instruksjoner og har en kapasitet på 2-3 MB for hver prosessorkjerne. Den er av typen 8-way set-associative og benytter cachelinjer på 128 bytes. Hva dette betyr kommer vi tilbake til i kapitel 4. Prosessorkjernen består av fire hovedblokker. Disse er: Hente og dekodingsblokk: Henter programinstruksjoner fra L2 cache, dekoder disse til en rekke µoperasjoner og lagrer resultatene i L1 instruksjons cache. Out Of Order eksekveringslogikk: Den eksekverer µoperasjoner i en rekkefølge som er optimal sett ut fra ytelse, ledige ressurser og data avhengighet. Som et eksempel kan en tenke seg at en heltallsaddisjon - som en av ALU ene skal ta seg av - er klar for eksekvering, men ALU ene er opptatt. Vi kan da få utført en flyttallsoperasjon i FPU i stedet dersom kravet til dataavhengighet ikke hindrer dette. Dette betyr at µoperasjonene 19
20 kan bli utført i en annen rekkefølge enn den de ble hentet fra L2 cachen og dette gjør at prosessoren også har en superskalar arkitektur. Eksekveringsenheter: Disse enhetene eksekverer µoperasjoner, henter nødvendige data fra L1 data cache og lagrer disse midlertidig i register i registerfilen. Minne subsystem: Denne enheten inkluderer L2-cache og systembussen, som brukes for å aksessere internminnet når L1 og L2 cache gir cache miss. Systemet benyttes også i forbindelse med IO. En såkalt Trace cache er plassert mellom instruksjonsdekoder og eksekveringskjerne. Grunnen til dette er blant annet følgende: Maskinkodeinstruksjonene for en nyere Intelprosessor er et sett instruksjoner som har ulik lengde. Noen instruksjoner er en bytes instruksjoner andre er bygd opp over flere byter og er store og kompliserte. Prosessoren dekoder maskininstruksjoner til RISC-lignende instruksjoner av lik lengde (µoperasjoner). De dekodede RISC-lignende instruksjonene kalles µoperasjoner. Disse µoperasjonene gjør det enklere når en i senere trinn skal kunne schedule (timeplanlegge) instruksjonsutførelsen slik at instruksjonene ikke nødvendigvis utføres i den rekkefølge de ble hentet fra L2 cachen eller skrevet av programmereren. Dette innebærer at dekoding til µoperasjoner støtter muligheten for å gjøre prosessoren superscalar. Her ligger også grunnen til at Intel markedsfører sine nyere prosessorer som en CISCprosessor, men med en RISC kjerne. Datacachen arbeider etter prinsippet som kalles write-back. Det innebærer at data bare skrives til internminnet når de fjernes fra cachen fordi en trenger plass til nye data der. En Intel prosessor av nyere dato kan også dynamisk konfigureres til å støtte writethrough caching, hvilket betyr at data som skrives til cache også skrives til minnet samtidig. Denne siste teknikken sikrer at data i internminnet alltid er gyldige. L1 datacache kontrolleres av to bit i et kontrollregister. Bitene kalles CD (cache disable) og NW (not write-through). Det fines også to instruksjoner som kan benyttes for å kontrollere datacachen. Både L2 og L3 cache kan være f eks 8-way set associative med cachelinje størrelse på 128 bytes. For å få med andre viktige egenskaper ved nyere 20
21 Intelprosessorer tegner vi om figur 2.2 noe. Se figur 2.3. Syst L2 cache buss B T B F e t c h & D e c BTB L1 - TC Instruksjonscache (μoperasjoner) ROM R e n / A l l o c μ O p s k ø S c h e d u l e r 128 integer registre 128 flyttalls registre ALU er & FPU & SSE L1 D a t a c a c h e Figur 2.3 Blokkskjema for en Intelprosessor. TC står for Trace Cache og inneholder dekodede instruksjoner (μoperasjoner). RISC-operasjonene passerer gjennom en pipeline som er inndelt i trinn. Figur 2.4 under viser en slik pipeline TCnxtIP TCfetch Drive Alloc Ren Que Flg 9 Drive Sch Disp RF E B x r C k Figur 2.4 En pipeline som viser detaljnivå ved en instruksjonseksekvering. TC i figurene 2.3 og 2.4 over står for Trace Cache og er det samme som instruksjonscachen som holder ferdig dekodede instruksjoner. Hvis instruksjonscachen er i ferd med å gå tom for dekodede μoperasjoner, vil nye bli hentet inn via de to første 21
22 blokkene BTB (BranchTargetBuffer) og Fetch & Decode. De maskinkodede instruksjonene fra L2 cache - 64 byte om gangen - hentes inn sekvensielt. BTB kan endre denne rekkefølgen avhengig av om det finnes branch-instruksjoner og hva en predikerer (tipper) utfallet av disse vil bli. Når instruksjonene er hentet inn, vil dekodingsblokken skanne bytene for å bestemme instruksjonsgrensene. Det er nødvendig fordi instruksjonene har ulik lengde. Når maskinkodeinstruksjonen oversettes kan den gi fra en til fire μoperasjoner. Hver av disse μoperasjonene er på 118 bit og utgjør en RISC-instruksjon. Et BranchTargetBuffer (BTB) nær instruksjonscachen vedlikeholdes med informasjon om de siste branch-instruksjonene. Når en branch-instruksjon forekommer blant instruksjonene, vil info fra BTB bli konsultert. Hvis det allerede eksisterer en entry for instruksjonen i BTB, vil en benytte dette til å bestemme hvorvidt en skal utføre hoppet eller ikke. Om det ut fra dette blir besluttet at et hopp skal utføres, vil destinasjonsadressen for hoppet bli benyttet til å forhåndshente instruksjoner fra denne adressen. I tidlige Pentiumprosessorer benyttet en bare to bit for å beskrive historien i forbindelse med branch prediction, mens en i senere prosessorer har benyttet flere bit for prediksjonen. Har en mange trinn i en pipeline, blir straffen ved å spå galt i forbindelse med en branch-instruksjon desto større. BranchTargetBuffer i nyere Intelprosessor er organisert som en 4-way set-associative cache med 512 linjer. Hver entry bruker adressen til branch-instruksjonen som tag. En entry inkluderer også destinasjonsadressen samt et felt med historie-bit (4 bits). Ved hjelp av disse bitene kan prosessoren basere sin prediksjon på et mer robust grunnlag. En algoritme som benyttes kalles Yeh s algoritme. Betingede branch-instruksjoner som ikke har noen historie i BTB-systemet blir håndtert etter en fast prediksjonsalgoritme som f eks sier at hoppadresser som representerer IPrelative tilbakehopp skal utføres, mens hoppadresser som representerer hopp til en adresse lenger frem i koden ikke skal utføres. Denne regelen reflekterer typisk en programsløyfe. De ferdig dekodede μoperasjoner er ordnet i den rekkefølge de ble programmert, men det er tatt hensyn til resultatet av prediksjonen. Noen få instruksjoner krever mer enn fire 22
23 μoperasjoner. Det er f eks tilfellet for noen streng - operasjoner og i slike tilfelle må en kjøre noe kode fra en ROM for å generere inntil flere hundre µoperasjoner. Det femte trinnet i pipelinen, kalt Drive trinnet, har ansvar for leveranse av ferdig dekodede instruksjoner til rename-/allocator-blokken. Det som leveres er basert på branch prediksjonsystemets avgjørelser. I den delen som følger etter Drive -trinnet kan det foretas omstokking av instruksjonsrekkefølgen i den hensikt å få instruksjonene eksekvert så raskt som mulig. Allocate-trinnet allokerer ressurser til instruksjonen. Det kan utføre blant annet følgende funksjoner: Allokeringstrinnet kaprer en entry i et buffer (ReOrder Buffer=ROB) som holder orden på når en av inntil 126 samtidige μoperasjoner er fullført. Allokeringstrinnet allokerer også ett av 128 heltalls- eller flyttallsregistre for å kunne lagre resultatdata i. Allokeringstrinnet allokerer en entry i en av de to μoperasjons-køene som holder μoperasjonen før instruksjons-schedulingstrinnet. ROB er et sirkulært buffer som kan holde inntil 126 µoperasjoner og inneholder 128 hardware registre. Hver entry i dette bufferet består av følgende felter: State som sier om mikrooperasjonen er schedulet og klar for eksekvering, er avlevert og under eksekvering eller om den er ferdig eksekvert. Minneadresse for den instruksjonen som genererte μoperasjonen Den aktuelle mikrooperasjonen. Alias register en μoperasjon kan referere til et av 16 registre (EAX, EBX etc). Ved hjelp av renaming trinnet kan registeret omdirigeres til et av 128 hardwareregistre. μoperasjoner kommer inn til ROB i opprinnelig rekkefølge. Etter hvert slippes de inn til (dispatches) eksekvering i en rekkefølge som ikke nødvendigvis er den opprinnelige. Kriteriene for at en μoperasjon skal slippes inn til eksekvering er at den riktige ALU en/fpu n/sse blokken er ledig og at alle nødvendige data for denne μoperasjonen er tilgjengelige. Til slutt fjernes μoperasjonen fra ROB. 23
24 Trinnet Micro-Op Queuing. Etter ressursallokering og register renaming kan μoperasjonen legges i en av to køer der de holdes til det blir plass i schedulerne. Den ene av køene er for minneoperasjoner (loads/stores) og den andre er for µoperasjoner som ikke har minnereferanser. Hver kø benytter FIFO prinsippet, men det er ingen ordnet rekkefølge mellom køene. Dette innebærer at en μoperasjon kan leses ut av en kø uten tanke på rekkefølge i forhold til den andre køen. Dette gir større fleksibilitet i forhold til schedulingen. Schedulerne er ansvarlig for å hente μoperasjoner fra μoperasjonskøen og levere disse til eksekvering. Hver scheduler sjekker at mikrooperasjonene har alle nødvendige data klare og hvis eksekveringsenheten som skal brukes er ledig, henter scheduleren μoperasjonen og eksekveringen starter. Flere μoperasjon kan leveres for eksekvering i en klokkeperiode. Hvis mer enn en μoperasjon er klar for samme eksekveringsenhet, vil scheduleren slippe disse til i tur og orden. Dette er en type FIFO tankegang som favoriserer eksekvering i rekkefølge, men på dette tidspunktet er instruksjonsstrømmen allerede blitt rearrangert som følge av branch-instruksjoner og dataavhengighet slik at de er omstokket i forhold til opprinnelig rekkefølge. Det finnes fire porter mellom scheduler og eksekveringsenhet. Port 0 brukes til heltall og kommatall med unntak av enkle heltallsoperasjoner og håndtering av gal prediksjon ved branch-instruksjoner. Disse siste er allokert til port 1. I tillegg allokeres SSE modulen til disse to portene. De to andre portene brukes til lasting og lagring av data til og fra minne. Heltalls og kommatall register fil brukes til å holde operander i forbindelse med eksekveringen. Eksekveringsenheten henter data fra både registerfil og fra L1 cache. Et eget trinn i pipelinen brukes til å beregne flaggsettingen; dette er typiske input til en branch-instruksjon. De trinn i pipelinen som følger etter denne har med branch-kontroll å gjøre. Denne funksjonen sammenligner det aktuelle branch-resultatet med prediksjonen. Hvis en prediksjon viser seg å være gal, vil μoperasjoner på ulike trinn i pipelinen fjernes. Den riktige branch-destinasjonen leveres så til Branch Predictor etter Drive -trinn som så restarter hele pipelinemodulen fra en ny adresse. 24
25 Til slutt i dette kapitlet skal vi forklare begrepet SSEx der x er et versjonsnummer. Forkortelsen SSEx står for Streaming SIMD Extension x. Dette er en arkitektur og et instruksjonssett som benyttes i forbindelse med multimedia problemstillinger. SIMD - arkitektur står for Single Instruction Multiple Data og innebærer at samme operasjon kan utføres parallelt og samtidig på mange dataverdier. Om vi f eks ønsker å gjøre et bilde lysere, kan vi få til dette ved å addere et heltall til alle pikselverdier i bildet. Om vi tenker oss at gråtonen i et bilde er gitt i en byte, kan vi ved hjelp av SIMD-arkitekturen få addert denne verdien til mange pikselverdier parallelt. Det er samme operasjonen som skal utføres på alle pikselverdiene og med arkitekturen vist i figur 2.5 blir dette effektivt. Figur 2.5 Illustrasjon av SIMD-arkitektur. 2.2 Branch prediction For å gjøre pipelining mer effektiv, er det nødvendig å holde alle trinn i pipelinen fulle. Det blir imidlertid et problem når en instruksjon som skal eksekveres er en instruksjon som representerer et brudd på den sekvensielle utførelsen av programmet slik vi har det ved en call, en betinget eller ubetinget branch på assemblynivå eller en if - setning eller en loop (while) setning. Anta følgende kode og en pipeline på 4 trinn (fetch, decode, execute og save(write): if (x > 0) { a=4;b=5;c=6; } d=7; 25
26 Cyc Fetch Decode Execute Save 1 if (x>0) 2 a=4 if (x>0) 3 b=5 a=4 if (x>0) 4 c=6 b=5 a=4 if (x>0) 5 c=6 b=5 a=4 6 c=6 b=5 7 c=6 Figur 2.6 Her illustreres hvordan pipelinetrinn ser ut når x>0. Hvis x er større enn 0, vil instruksjonene i pipeline slik figur 2.6 viser, siden if - delen av if - else setningen vil bli utført. Hvis x er mindre eller lik 0 skal if - delen ikke eksekveres. Neste instruksjon i pipelinen skal være d=7, og instruksjonene som berører a, b, og c skulle ikke vært i pipelinen. I dette tilfellet blir det nødvendig å kansellere den effekten disse instruksjonene har hatt på prosessoren og fjerne instruksjonene fra pipelinen. Om vi tenker oss at dette kunne gjøres, vil instruksjonen d=7 bli hentet fra starten av klokketakt 4, når resultatet av sammenligningen x>0 er kjent. I dette tilfellet vil pipeline n opptre mindre effektivt, siden noen av trinnene ikke eksekverer gyldige instruksjoner. Det vil ta 7 klokkesykler og eksekvere disse to instruksjonene. Om det var mulig å se inn i fremtiden og kjenne resultatet av sammenligningen i if setningen, ville det hjelpe oss til å holde de riktige verdiene i pipelinen til enhver tid. Hvis vi visste på forhånd at resultatet av sammenligningen ble false kunne prosessoren laste inn instruksjonen d=7 i stedet for instruksjonen a=4. Om dette var tilfellet ville de to instruksjonene kun kreve 5 klokkesykler. Det er dette som er ideen bak branch prediction konseptet. Vi skal prøve å gjette på hvordan utfallet av denne testen vil bli. Hvis vi gjetter korrekt vil pipelinen bli full, hvis ikke har vi lastet instruksjoner i pipelinen som må fjernes.. Det viser seg at en i dagens prosessorer gjetter riktig i % av tilfellene ved branch prediction. 26
27 Cyc Fetch 1 if(x>0) Decod e 2 a=4 if Execut 3 b=5 (x>0) a=4 if (x>0) 4 d=7 Figur 2.7 Om x<=0 og vi ikke har branch prediction, vil pipeline se ut som vist over. Feil b=5 5 d=7 e Feil a=4 Feil b=5 6 d=7 Save if (x>0) Feil a=4 Feil b=5 7 d=7 Cyc Fetch Decode Execute Save 1 if (x>0) 2 d=7 if (x>0) 3 d=7 if (x>0) 4 d=7 if (x>0) 5 d=7 Figur 2.8 Om x<=0 og vi har gjettet riktig i branch prediction blokken, vil pipeline se ut som vist i figur 2.8. Et eksempel på bruk av en 2-bits sekvenskrets for å håndtere branch prediction er vist i figur 2.9. Her er linjen Tilstand i tabellen nåtilstand, verdiene i linjen prediksjon i tabellen kan anta verdiene Not Taken (N) eller Taken (T) og utfall er det riktige svaret etter at instruksjonen er eksekvert. 27
28 Anta at vi i forbindelse med en branch-instruksjon finner tilstandsbit lik 00. I denne tilstanden vil vi predikere Not Taken. Om utfallet blir Not Taken, vil vi ikke få en endring i tilstandsbitene for denne instruksjonen. Om utfallet blir Taken endres tilstandsbitene til 01. I tilstanden 01, vil vi også i utgangspunktet predikere Not Taken når vi kommer til denne branch-instruksjonen neste gang. Det vil altså si at med utgangspunkt i tilstand 00 vil vi måtte ha to prediksjoner med Not Taken før vi kommer til å predikere Taken. I dagens prosessorer er det brukt flere bit for å gjøre prediksjonen bedre. Tilstand Prediksjon N N N N T T N N Utfall N N T T N N T Figur 2.9 Her benyttes en 2 bits teller for å holde orden på historikken, det vil si hva som har skjedd ved forgrenings - instruksjon på et tidligere tidspunkt av eksekveringen. 28
29 3 Cachehukommelse. Undersøkelser har vist at det ved en normal programkjøring vil være svært mye gjenbruk av instruksjoner og data. Eksempler på dette er en programsløyfe der vi kjører om igjen de samme instruksjonene et antall ganger og der utgangen fra sløyfa er bestemt av en betingelse i denne. Dette danner grunnlaget for å legge inn en mindre, men svært rask hukommelse så nær prosessor - kjernen som mulig. De nyere Intelprosessorer har både L1-, L2- og L3-cache innebygd på prosessorbrikken. Siden hardware i en slik hukommelse er komplisert og rask betyr det at den er kostbar. Derfor har en cachehukommelse begrenset kapasitet. Når prosessoren skal aksessere minnet sjekker den først cachen. Hvis data eller instruksjon finnes her, leses disse med en hastighet som er 10 ganger høyere enn om vi måtte lese fra internminnet (intern RAM). Når data finnes i cachen sier vi at vi har en cache hit, i motsatt fall snakker vi om en cache miss. For å illustrere egenskapene ved en cache tar vi et regneeksempel: RAM aksess tid 50 ns Cache aksesstid 8 ns Cache hit forholdet 0.85 (det vil si at 85 % av minneaksessene finnes i cachehukommelsen) Gjennomsnittlig aksesstid vil da beregnes slik: 0.85*8ns + (1-0.85)(8 + 50)ns = 15.5 ns Når data finnes i cachen (cache hit) bruker vi bare 8 ns på å hente dataene (eller instruksjonene). Det er tilfellet i 85 % av alle minnereferanser. Når data ikke finnes i cachen (cache miss), vil vi først bruke tid på å sjekke om de er der. Dette tar 8 ns. Dernest vil vi bruke tid på å hente data fra internminnet noe som tar 50 ns. Om mesteparten av vårt program befinner seg i cachen ser vi at vi har mye å vinne på en cacheløsning. Intelprosessorene av nyere dato har to L1 cachehukommelser en for data og en for instruksjoner. Hver av disse har en kapasitet på inntil 32 kb. Det finnes for tiden også prosessorer som har fra 2 til 6 prosessorkjerner, og to kjerner kan ha en felles L2 cache 29
30 på inntil 2-3 MB. Aksesstiden til en L2 cache er noe høyere enn til en L1-cache. Fra L2 cachen overføres data og instruksjoner til begge L1 cachehukommelsene, både datacachen og instruksjonscachen. L2 cachen kan være organisert som en såkalt 8-way set associative cachehukommelse. Hva dette betyr skal vi beskrive i de neste kapitlene. 3.1 Organisering av cache - hukommelser. Cachehukommelsen skal inneholde data og instruksjoner som er kopi av innholdet i internminnet. Internminnet er vi vant til å tenke på som et byteorganisert minne. Det betyr at den minste adresserbare enheten vi kan hente ut av dette er en byte. En cachehukommelse er ikke byteorganisert, men bygd opp av såkalte cachelines som hver består av mange byter. Hvorfor er en cachehukommelse så rask? Hvordan kan vi på kort tid avgjøre om vi har en cache hit? Svaret på disse spørsmålene ligger i måten cachehukommelsene er organisert på. Vi skal se på tre måter å organisere cachehukommelser på, nemlig: - Set associative cache - brukes mest - Direct mapped cache - litt lite fleksibelt - Fully associative cache - krever komplisert hardware Figur 3.1 viser en prinsippskisse av hvordan en two ways set associative cache kan være organisert. Denne organiseringen er et kompromiss mellom de to andre prinsippene, som som nevnt over - har sine åpenbare svakheter. I figur 3.1 antar vi cachelines på 16 byter. Det vil si at når vi leser data fra internminnet til cache leses det alltid 16 byter for å fylle opp en cacheline. Når data hentes eller skrives til cache fra CPU-siden antar vi i vår modell en 32-bits databuss og at vi derfor overfører 4 byter parallelt. Videre er det - for å få det enkelt - antatt 16-bits adresser mot minnet. Når vår cache sies å ha two ways går det på at vi har dobbelt opp med tag-felter og datablokker. Hadde vi hatt bare ett tag-felt og en datablokk hadde vi hatt en direct mapped cache organisering. 30
31 16 bits adresser Intern minnet 0x0000 0x0004 0x000C 16 byte 0x2200 etc Cache Set nr Tag1 Tag2 Data1 Data tag 10 bit setnbr 2 bit offs 4 bit 4 byte CPU Figur 3.1 En two ways set-associative cache. Det finnes en animasjon på nettet av denne cache-modellen som du bør kjøre hvis du vil studere virkemåten. Lenken dit er: Hvis vi har kun ett set i figur 3.1, får vi en full associative cache. Dette stiller harde krav til hardware siden en innkommende tag skal sammenlignes med alle tagene i cachen samtidig. Det som ligger i associative minne er at innkommende adresse skal sammenlignes samtidig med alle tagfelter i cachen. Hvis vi deler inn cachen i set, vil vi få en samtidig sammenligning mellom innkommende adresse og tagfeltene i dette settet. 31
32 For vår cache gjelder altså følgende: L = antall bytes pr cacheline = 16 K = i hvilken grad cachen er associative = 2 (two-ways) N = antall set = 4 K=1 gir direct mapped cache. N=1 gir full assosiative cache som er krevende på hardwaresiden. Kompromisset blir et set associative cache minne. Adressene i vår modell er på 16 bit. Ved en set associative cache splittes adressen i 3 felter, tag-felt på 10 bit, set nr på 2 bit og offset på 4 bit (innen en cacheline). 10 bit tag 2 set nr 4 bit offs Som et eksempel kan vi se på en 16-bits adresse lik 0x2204 eller binært Denne gir en tag = 088, et set nr = 0 og en offset = 4. Offset er hvilken 32-bits (4bytes) blokk som skal hentes ut av en cacheline på 16 bytes og inn til CPU. For å forstå hvordan dette med offset i en datablokk virker, har vi en skisse i figur 4.2 for å illustrere dette. 32
33 1 cacheline 1 byte Set 0 Offs 0 Offs 4 Offs 8 Offs C Set 1 Offs 0 Offs 4 Offs 8 Offs C Set 2 Offs 0 Offs 4 Offs 8 Offs C Offs 0 Offs 4 Offs 8 Offs C Set 3 Figur 3.2 Skisse av en datablokk i en cache. 1 byte i hver liten subkube. Figur 3.3 viser forholdene slik de er i L1 cache i en tidlig Pentiumprosessoren. Det er som nevnt over en two-way set associative cache med 128 sets. Dette gir 256 entries og det er 32 bytes i en cachelinje, eller 64 byte pr set. Dette gir en kapasitet på 32 bytes*256 = 8 KBytes. 33
34 Way 0 Way 1 Set0 tag data tag data Set1 tag data tag data Set2 tag data tag data.... Set127. tag data tag data 32 bytes 32 bytes Figur 3.3 Two-way set associative cache slik L1 cache i Pentium er realisert. Størrelsen på cachen er 8 kbyte. Taggene i denne cachen er såkalt treports, det betyr at de kan aksesseres fra tre ulike blokker samtidig. To av disse blokkene er U og V pipeline som aksesserer datacachen for å finne eller legge inn operander. Den tredje porten brukes i forbindelse med snooping. Buss snooping brukes for å vedlikeholde data i et flerprosessor-/flerkjerne- system hvor hver prosessor har sin egen cache. Prosessoren overvåker systembussen og om den registrerer en lesing/skriving som utføres av en annen prosessor, kjøres en såkalt inquire cycle for å finne ut om adressen på bussen er lagret i intern cache. Hvis så er tilfellet, vil cachen bli oppdatert. Dette er også årsaken til at adressebussen er en toveis buss. En IO-enhet kan skrive direkte til minnet (DMA). Hvis et ord i internminnet er endret på denne måten, vil det også kunne gjøre cachelinjer ugyldig. 3.2 Skriveprinsipper ved cachehukommelser og et eksempel på en protokoll. Når cachen blir full og vi skal ha inn nye data eller instruksjoner, må en gammel cachelinje ofres for å gi plass til den nye. En algoritme som brukes i denne sammenheng 34
35 går ut på å velge en cachelinje som har vært lite brukt i det siste (Least Recently Used LRU algoritmen). Når en linje i cachen skal erstattes, er det et par forhold vi må ta hensyn til. Hvis den gamle linjen i cachen ikke er endret, kan den overskrives uten at vi først skriver den til internminnet. Hvis vi har skrevet til den cachelinjen som skal ofres, må vi først skrive innholdet i denne til internminnet før vi fornyer cachelinjen. Det enkleste skriveprinsippet ved cachebruk er såkalt write through. Bruker vi den teknikken vil alle skriveoperasjoner endre innholdet både i cachen og i internminnet. Andre prosessorer kan overvåke bussen og registrere når skriving skjer og således fornye sine cachelinjer slik vi nevnte over. Et alternativt skriveprinsipp er å benytte såkalt write back for å redusere antall skrivinger til minnet. Her vil oppdateringer i utgangspunktet bare skje til cachen. Når en oppdatering skjer, vil en Update bit for denne cachelinjen bli satt. Når en blokk skal erstattes, skrives denne til minnet hvis Update bit for cachelinjen er satt. Problemet med write back er at deler av internminnet er ugyldig og aksesser til minnet fra IO - enheter kan bare tillates gjennom cache. Dette krever en kompleks kretsløsning. Målinger viser at ca 15 % av alle minnereferanser er skriveoperasjoner, men det finnes applikasjoner der denne prosenten kan nærme seg 50 %. Etter hvert som datateknologien har utviklet seg er det blitt vanlig å operere med mer enn en cachehukommelse. For moderne ser vi at vi har L1-, L2 og L3-cache integrert på prosessorbrikken. Dette øker ytelsen på grunn av korte overføringsveier og frigjør systembussen til annen aktivitet. 35
36 3.3 MESI-protokollen En protokoll som benyttes i noen multicore prosessorer er en write-invalidate protokoll og kalles MESI-protokollen. Her markeres tilstanden til en cachelinje som Modified, Exclusive, Shared eller Invalid. Modified innebærer at tilstanden til en cachelinje er modifisert (ikke lik det som er i internminnet) og er tilgjengelig bare for denne cachen. Exclusive tilstanden innebærer at denne cachelinjen er den samme som den i internminnet og er ikke til stede i noen andre cachehukommelser. Shared: Linjen i cachen er den samme som i internminnet og kan være tilstede i andre cachehukommelser. Invalid: Denne cachelinjen holder ikke gyldige data. På nettstedet kan du se en animasjon av MESI i en flerprosessorløsning. 36
37 4 Forenklet programmeringsmodell for en Intel prosessor I dette kapitlet skal vi fokusere på hvordan vi som programmerere på assemblynivå må forholde oss med tanke på programmering av denne prosessoren. 4.1 Registerblokker I prosessorene er det en blokk som omtales som registerblokken. Denne blokken består av flere 64- eller 32-bits registre. Når vi skal programmere i assemblykode får vi kontakt med noen av disse registerne direkte. Registerne vi skal fokusere på, er skissert i figur 4.1 og 4.2. AX EAX AH AL EBX BH BL ECX CH CL EDX DH DL 32 - bit 16 - bit 8-bit Figur 4.1 Registerblokk i en Intel Core (General purpose registers) Registerne kan brukes som 8-, 16-, eller 32-bits registre. Sammenhengen er da slik at to 8-bits registre som for eksempel AL (A-register Low byte) og AH (A-register High byte) til sammen utgjør et 16-bits register som benevnes AX. AX = AH + AL, BX = BH + BL, CX = CH + CL, DX = DH + DL Betegnelsen EAX, EBX osv angir 32-bits registre. Ønsker vi å jobbe med 64-bits registre brukes betegnelser som RAX, RBX, RCX etc. 37
38 Disse registerne kan brukes fritt av en programmerer som generelle registre. Det betyr at du ved hjelp av programinstruksjoner på assemblynivå kan legge inn 8-, 16- eller 32-bits data (tall og tegn) i disse. I tillegg til at disse registerne kan brukes som generelle registre, har Intel også tillagt registerne noen dedikerte (mer spesielle eller unike) oppgaver. Anta for eksempel at du skal sende data ut eller inn gjennom IO - porter. Skulle vi skrive dette i C, ville vi bruke følgende funksjoner: outportb(portnr, data); temp = inportb(portnr); // for å sende data ut gjennom en port // for å hente data inn gjennom en port og legge data // i lagerplassen temp Hvis du skulle gjøre dette i assembly kode, ville det bli litt mer detaljert koding. Intel har nemlig bestemt at data du ønsker ut gjennom en IO-port, på forhånd må legges i registeret AL (ved 8-bits porter) og at registeret DX (16 bits) skal holde på portadressen. Dette betyr at om du skulle sende ASCII-koden for stor A ( 0x41 = ) gjennom en IO-port med portadresse = 0x378, kan dette skrives slik i assemblykode: mov al, 0x41 mov dx, 0x378 out dx, al // flytt ASCII-koden for A til AL-registeret // flytt IO - adressen til DX-registeret // send data fra AL gjennom den porten som dx - registeret // peker ut Tilsvarende blir det da muligheter for å sende data inn til prosessoren og internminnet ved å skrive følgende instruksjoner: mov dx, 0x378 in al, dx // flytt IO-adressen til DX-registeret // send data fra AL gjennom den porten som DX-registeret // peker ut mov temp, al // flytt data fra registeret AL til internminnets lagerplass // kalt temp 38
39 Dette betyr altså at AL-registeret og DX-registeret har spesielle oppgaver knyttet til IO - kommunikasjon. Slik er det med noen andre registre også. BX - registeret kan brukes til å holde en adresse i minnet som vi ønsker å aksessere. BX - registeret kan f eks brukes til å aksessere startadressen for et array av byter. CX-registeret ofte brukes til å telle antall runder i en programsløyfe. I tillegg til de registerne vi har nevnt så langt, finnes register som brukes når prosessoren skal adressere minnet. Disse er vist i figur 5.2. Registerne ESI (Extended Source Index) og EDI (Extended Destination Index) brukes for eksempel når vi skal programmere strenger og når vi skal arbeide med arrays eller tabeller av data. Registeret EIP (Extended Instruction Pointer) brukes til å holde orden (adressen til) på hvor prosessoren skal finne neste instruksjon i et kjørende program i minnet. EFlag er et 32-bits register som angir statusregister i prosessoren. Dette registeret kan vi tenke oss er satt sammen av frittstående bit der hver bit rapporterer viktige begivenheter i prosessoren. Eksempler på slike viktige begivenheter i prosessoren er når resultatet av en operasjon blir 0, når et register får en verdi som er større enn det registeret kan ta vare på (overflow), etc. Det finnes også bit i dette registeret som settes ved programinstruksjoner. Et eksempel på dette er om vi ønsker at prosessoren skal kunne akseptere interrupt på sin INTR-inngang. Om vi nullstiller bit 9 i dette registeret (IFbitet), vil alle interrupt som kommer på INTR - inngangen bare prelle av og neglisjeres. Om vi setter denne biten til 1 åpner vi for interrupt på INTR-inngangen. Programteknisk enabler vi interrupt (verdien på denne biten) ved å skrive: asm{ } sti i vårt c-program kan vi disable denne biten ved å skrive: asm{ cli 39
40 } ESI EDI EBP ESP SI DI BP SP EFLAGS EIP IP 32-bit 16 - bit Figur 4.2 Registre som brukes til å adressere minnet i en nyere Intel prosessor. ESP (Extended Stack Pointer) brukes til å holde orden på et spesielt dataområde i minnet som kalles stack. En stack kan vi tenke oss som en tønne med åpning på toppen og lukket bunn. Data legges alltid inn på toppen av tønna (pushes) og skyver data som befinner seg der fra før lengre ned i tønna. Data tas ut igjen fra stack ved å hente data ut fra toppen av den. Ved uthenting vil tall som ligger lengre ned i tønna rykke oppover i tønna og vi får nye data på toppen. Se figuren 4.3. Dette innebærer at data som ble lagt inn på stacken sist, kommer først ut igjen. Vi sier at arbeidsmåten følger prinsippet med LastIn/FirstOut (LIFO - prinsippet). 40
Hovedkort, brikkesett og busser
Hovedkort, brikkesett og busser Håkon Tolsby 20.09.2015 Håkon Tolsby 1 Innhold Hovedkort Brikkesett Internbussen Systembussen Utvidelsesbussen 20.09.2015 Håkon Tolsby 2 Hovedkortet Engelsk: Motherboard
DetaljerDagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen
Dagens temaer Fra kapittel 4 i Computer Organisation and Architecture Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen Register Transfer Language (RTL) Instruksjonseksekvering Pipelining
DetaljerTDT4160 Datamaskiner Grunnkurs 2011. Gunnar Tufte
1 TDT4160 Datamaskiner Grunnkurs 2011 Gunnar Tufte 2 Bussar og busshierarki Tape Optical Bus 3 CPU og buss komunikasjon Tape Optical Bus 4 Buss linjer Bus Adr/data Bit 0 Adr/data Bit 1 Adr/data Bit 2 Adr/data
DetaljerInnhold. Virtuelt minne. Paging i mer detalj. Felles rammeverk for hukommelseshierarki. 02.04.2001 Hukommelseshierarki-2 1
Innhold Virtuelt minne Paging i mer detalj Felles rammeverk for hukommelseshierarki 02.04.200 Hukommelseshierarki-2 Virtuelt minne Lagringskapasiteten i RAM må deles mellom flere ulike prosesser: ûoperativsystemet
DetaljerDatamaskinens oppbygning og virkemåte
Datamaskinens oppbygning og virkemåte Laboppgave Sasa Bakija, 08DAT Del 1: Setup BIOS 1. DELL Optiplex GX270 har en Intel Pentium 4 CPU med buss speed på 800 Mhz og klokkefrekvens på 2.80 Ghz. 2. Internminne
DetaljerMartin Olsen, Lars- Petter Ahlsen og Jon- Håkon Rabben
Martin Olsen, Lars- Petter Ahlsen og Jon- Håkon Rabben Oppgave lab Del 1 Setup - BIOS 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en. Intel(R) Pentium(R) D CPU 3.00 GHz 800MHz
DetaljerInnhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU)
2 Innhold 1 Datamaskiner Prosessoren Primærminnet (RAM) Sekundærminne, cache og lagerhierarki Datamaskiner Matlab Parallell Jørn Amundsen Institutt for Datateknikk og Informasjonsvitenskap 2010-08-31 2
DetaljerVi anbefaler at du setter deg litt inn i maskinen på forhånd. Det er en DELL Optiplex 620.
Oppgave lab Vi anbefaler at du setter deg litt inn i maskinen på forhånd. Det er en DELL Optiplex 620. Søk etter denne maskinen på nettet. Alle oppgavene skal dokumenteres på din studieweb med tekst og
Detaljer2. Hvor mye Internminne har den? Svar: 2GB
Del 1 Setup - BIOS I setup skal dere finne ut: 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en. Intel Pentium D Processor clock speed: 3GHz Processor bus speed: 800 MHz Processor
DetaljerOppsummering av digitalteknikkdelen
Oppsummering av digitalteknikkdelen! Følgende hovedtemaer er gjennomgått! Boolsk Algebra! von Neuman-arkitektur! Oppbygging av CPU! Pipelining! Cache! Virtuelt minne! Interne busser 09.05. INF 1070 1 Boolsk
Detaljerhvor mye hurtigminne (RAM) CPU en kan nyttiggjøre seg av. mens bit ene betraktet under ett kalles vanligvis et ord.
Oppbygging av RAM Sentrale begreper er adresserbarhet og adresserom Adresserbarhet: Antall bit som prosessoren kan tak samtidig i én operasjon (lese- eller skrive-operasjon). 9.. INF Antall bit som kan
DetaljerIN1020. Datamaskinarkitektur
IN1020 Datamaskinarkitektur Hovedpunkter Von Neumann Arkitektur BUS Pipeline Hazarder Intel Core i7 Omid Mirmotahari 4 Von Neumann Arkitektur John von Neumann publiserte i 1945 en model for datamaskin
DetaljerDagems temaer. kapittel 4 i Computer Organisation and Architecture. av CPU: von Neuman-modellen. Transfer Language (RTL) om hurtigminne (RAM)
Dagems temaer Fra Kort Organisering Register kapittel 4 i Computer Organisation and Architecture om hurtigminne (RAM) av CPU: von Neuman-modellen Transfer Language (RTL) Instruksjonseksekvering Pipelining
DetaljerDagens temaer. Kort repetisjon. Mer om cache (1) Mer om cache (2) Read hit. Read miss. Write hit. Hurtig minne. Cache
Dagens temaer Dagens emner er hentet fra Englander kapittel side 338-35 (gammel utgave). Mer om design av cache. Kort repetisjon er en spesiell type rask hukommelse som inneholder et subsett av det som
DetaljerSingletasking OS. Device minne Skjerm minne. Brukerprogram. Brukerdata/heap. Stack. Basis for flerprosess-systemer.
-OS i i L1 og L2 og og Basis for flerprosess-systemer. Adresser.. 2 1 0 OS Device minne Skjerm minne Brukerprogram Brukerdata/heap Stack Stack: brukes bl. a. til å lagre adressen som skal returneres til
DetaljerDagens temaer. Cache (repetisjon) Cache (repetisjon) Cache (repetisjon)
Dagens temaer Cache (repetisjon) Mer om cache-hukommelse (kapittel 6.5 i Computer Organisation and Architecture ) Typer, bruksområder og oppbygging ROM Typer, bruksområder og oppbygging Hukommelsesbusser
DetaljerDagens temaer. Mer om cache-hukommelse (kapittel 6.5 i Computer Organisation and Architecture ) RAM ROM. Hukommelsesbusser
Dagens temaer Mer om cache-hukommelse (kapittel 6.5 i Computer Organisation and Architecture ) RAM Typer, bruksområder og oppbygging ROM Typer, bruksområder og oppbygging Hukommelsesbusser 1 Cache (repetisjon)
DetaljerDel1: Setup: BIOS. 2. Hvor mye Internminne har den? 3GB DDR2
Del1: Setup: BIOS 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en. CPUen er en Intel Pentium D, og har følgende tekniske egenskaper: Clock-speed = 3GHz Bus-speed = 800MHz ID =
DetaljerHvorfor lære om maskinvare*?
Litt om maskinvare Hvorfor lære om maskinvare*? Hovedoppgaven til et OS er å styre maskinvare Må ha grunnleggende kjennskap til maskinvare for å forstå hvordan OS fungerer Skal bare se på grunnleggende
DetaljerIntel Core i7. Omid Mirmotahari 4
INF2270 Pipeline Hovedpunkter Oppsummering av én-sykel implementasjon Forbedring av én-sykel designet Introduksjon til pipelining Oppbygning av datapath med pipelining Intel Core i7 Omid Mirmotahari 4
DetaljerSetup programmet brukes til å endre konfigurasjonen av BIOS og til å vise resultatene fra
Laboppgave Del 1 Setup - BIOS Setup programmet brukes til å endre konfigurasjonen av BIOS og til å vise resultatene fra oppstartsprogrammet i BIOS. Vi kan bruke Setup programmet til å kontrollere at maskinen
DetaljerDagens temaer. Virtuell hukommelse. Sidetabell. Virtuell hukommelse (forts.)
Dagens temaer Virtuell hukommelse Virtuell hukommelse (kapittel 9.9 i læreboken) Pentium-arkitekturen i mer detalj Ofte trenger et program/prosess mer RAM enn det som er tilgjengelig fysisk i maskinen
DetaljerDagens temaer. Virtuell hukommelse (kapittel 9.9 i læreboken) Pentium-arkitekturen i mer detalj INF 1070
Dagens temaer Virtuell hukommelse (kapittel 9.9 i læreboken) Pentium-arkitekturen i mer detalj 25.04. INF 070 Virtuell hukommelse Ofte trenger et program/prosess mer RAM enn det som er tilgjengelig fysisk
DetaljerDagems temaer INF ! Fra kapittel 4 i Computer Organisation and Architecture. ! Kort om hurtigminne (RAM)
Dagems temaer! ra kapittel 4 i Computer Organisation and Architecture! Kort om hurtigminne (RAM)! Organisering av CPU: von Neuman-modellen! Register Transfer Language (RTL)! Instruksjonseksekvering! Pipelining
Detaljerbruksområder og oppbygging om cache-hukommelse (kapittel 6.5 i Computer Organisation Dagens temaer and Architecture ) ROM RAM
1 Dagens temaer Mer om cache-hukommelse (kapittel 6.5 i Computer Organisation and Architecture ) RAM Typer, bruksområder og oppbygging ROM Typer, bruksområder og oppbygging 2 Cache (repetisjon) Formål:
DetaljerOppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %
Side 2 av 9 Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 % Denne oppgaven skal besvares på eget svarark sist i oppgavesettet. Dersom du finner flere alternativer som synes å passe, setter du kryss
DetaljerCache (repetisjon) Cache (repetisjon) Cache (repetisjon) Dagens temaer. CPU Cache RAM. om cache-hukommelse (kapittel 6.5 i Computer Organisation
Dagens temaer Mer om cache-hukommelse (kapittel 6.5 i Computer Organisation and Architecture ) bruksområder og oppbygging ROM bruksområder og oppbygging Hukommelsesbusser Typer, Typer, Cache (repetisjon)
DetaljerInnhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse
Innhold Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer Prinsipper for synkronisering av felles hukommelse Multiprosessorer koblet sammen av én buss 02.05 2001 Parallelle
DetaljerDatamaskinens oppbygning
Datamaskinens oppbygning Håkon Tolsby 18.09.2014 Håkon Tolsby 1 Innhold Hovedenheten Hovedkort Prosessor CISC og RISC 18.09.2014 Håkon Tolsby 2 Datamaskinens bestanddeler Hovedenhet Skjerm Tastatur Mus
DetaljerP1 P2 P3 P1 P2 P3 P1 P2. OS gjør Contex Switch fra P1 til P2
i, intensive i og Når OS switcher fra prosess P1 til prosess P2 utføres en såkalt Contex (kontekst svitsj). 10 30 50 70 P1 P2 P3 P1 P2 P3 P1 P2 OS gjør Contex fra P1 til P2 tid/ms bruk Figure: Prosessene
DetaljerFakultet for informasjonsteknologi, Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %
Side 1 av 10 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til
DetaljerInnhold. Oversikt over hukommelseshierakiet. Ulike typer minne. Innledning til cache. Konstruksjon av cache. 26.03.2001 Hukommelseshierarki-1 1
Innhold Oversikt over hukommelseshierakiet Ulike typer minne Innledning til cache Konstruksjon av cache 26.03.2001 Hukommelseshierarki-1 1 Hukommelseshierarki Ønsker ubegrenset mye minne som er like raskt
DetaljerTDT4160 Datamaskiner Grunnkurs 2008. Gunnar Tufte
1 TDT4160 Datamaskiner Grunnkurs 2008 Gunnar Tufte 2 Auka yting 3 Auka yting CPU 4 Parallellitet Essensielt for å øke ytelse To typer: 1) Instruksjonsnivåparallellitet Fleire instruksjonar utføres samtidig
DetaljerDel 1 Setup - BIOS Oppgaver: 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en.
Laboppgaver, GrIT - gruppe 9. Del 1 Setup - BIOS Oppgaver: 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en. Intel(R) Pentium(R) D CPU 3.00GHz Den har en dual core ( som betyr
DetaljerDagens tema. Flere teknikker for å øke hastigheten
Dagens tema Flere teknikker for å øke hastigheten Cache-hukommelse del 1 (fra kapittel 6.5 i Computer Organisation and Architecture ) Hvorfor cache Grunnleggende virkemåte Direkte-avbildet cache Cache-arkitekturer
DetaljerINF1400 Kap4rest Kombinatorisk Logikk
INF4 Kap4rest Kombinatorisk Logikk Hovedpunkter Komparator Dekoder/enkoder MUX/DEMUX Kombinert adder/subtraktor ALU FIFO Stack En minimal RISC - CPU Komparator Komparator sammenligner to tall A og B 3
DetaljerDel 2. Bak skallet. Avsette minne til et spesifikt OS Teste harddisk under oppstart Sette opp system logger
Del 1 Setup - BIOS Setup programmet brukes til å endre konfigurasjonen av BIOS og til å vise resultatene fra oppstartsprogrammet i BIOS. Vi kan bruke Setup programmet til å kontrollere at maskinen kan
DetaljerForelesning 5. Diverse komponenter/større system
Forelesning 5 Diverse komponenter/større system Hovedpunkter Komparator Dekoder/enkoder MUX/DEMUX Kombinert adder/subtraktor ALU En minimal RISC - CPU 2 Komparator Komparator sammenligner to 4 bits tall
DetaljerHukommelseshierarki. 16/3 cache 7.1 7.2. 23/3 virtuell hukommelse 7.3 7.5. in 147, våren 1999 hukommelseshierarki 1
Hukommelseshierarki når tema pensum 16/3 cache 7.1 7.2 23/3 virtuell hukommelse 7.3 7.5 in 147, våren 1999 hukommelseshierarki 1 Tema for denne forelesningen: en enkel hukommelsesmodell hukommelseshierarki
DetaljerOppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):
Oppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Grovt sett inneholder det En prosessor Minne (for både program og data) Klokke Kontrollere for periferutstyr.
DetaljerIN1020. Minnehierarki
IN1020 Minnehierarki Hovedpunkter Bakgrunn Kort repetisjon Motivasjon Teknikker for hastighetsøkning Multiprosessor Økt klokkehastighet Raskere disker Økt hurtigminne Bruksområder Lagringskapasitet Aksesstider
DetaljerPhu Pham Laboppgave 29. September 2015
Del 1 Setup BIOS Setup programmet brukes til å endre konfigurasjonen av BIOS og til å vise resultatene fra oppstartsprogrammet i BIOS. Vi kan bruke Setup programmet til å kontrollere at maskinen kan identifisere
DetaljerLab oppgave gruppe 2 IT-ledelse (Jonas F, Robin PN, Aksel S, Magnus M, Erik I)
Lab oppgave gruppe 2 IT-ledelse (Jonas F, Robin PN, Aksel S, Magnus M, Erik I) DEL 1: I denne oppgavene skulle vi se nærmere på hvordan BIOS fungerte. 1. Hva slags CPU har maskinen? Beskriv de tekniske
DetaljerINF2270. Datamaskin Arkitektur
INF2270 Datamaskin Arkitektur Hovedpunkter Von Neumann Arkitektur ALU Minne SRAM DRAM RAM Terminologi RAM Signaler Register Register overføringsspråk Von Neumann Arkitektur John von Neumann publiserte
Detaljer! Sentrale begreper er adresserbarhet og adresserom. ! Adresserbarhet: Antall bit som prosessoren kan tak samtidig i én operasjon
agems temaer Oppbygging av RAM! ra kapittel i Computer Organisation and Architecture! Kort om hurtigminne (RAM)! Organisering av CPU: von Neuman-modellen! Register Transfer Language (RTL)! Instruksjonseksekvering!
DetaljerDagens temaer. Dagens emner er hentet fra Englander kapittel 11 (side ) Repetisjon av viktige emner i CPU-design.
Dagens temaer Dagens emner er hentet fra Englander kapittel 11 (side 327-344 ) Repetisjon av viktige emner i CPU-design. Flere teknikker for å øke hastigheten Cache 03.10.03 INF 103 1 Hvordan øke hastigheten
DetaljerEKSAMEN I TDT4160 DATAMASKINER GRUNNKURS
Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 12 Faglig kontakt under eksamen: Magnus Jahre (952 22 309) EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS
DetaljerINF2270. Datamaskin Arkitektur
INF2270 Datamaskin Arkitektur Hovedpunkter Von Neumann Arkitektur ALU Minne SRAM DRAM RAM Terminologi RAM Signaler Register Register overføringsspråk Von Neumann Arkitektur John von Neumann publiserte
DetaljerBussar. Tilgong til buss (Three state buffer) Synkron / Asynkron Serielle bussar Parallelle bussar Arbitrering: Kven kontrollerar bussen
1 Bussar Tilgong til buss (Three state buffer) Synkron / Asynkron Serielle bussar Parallelle bussar Arbitrering: Kven kontrollerar bussen 2 Buss tilkopling Bus Adr/data Bit 0 Adr/data Bit 1 Adr/data Bit
Detaljerytelsen til hukommelseshierarkier
Tema for denne forelesningen: virtuell hukommelse ytelsen til hukommelseshierarkier andre ting å cache e in 47, våren 999 hukommelseshierarki 2 Alle prosesser får et helt adresserom! stakk stakk stakk
DetaljerMemory Access) Figure: DMA kommuniserer med disk-controlleren og sørger for at det OS ønsker blir kopiert mellom harddisken og internminnet.
I 3 og CPU DMA Direct Memory Access RAM Harddisk Disk Cache Disk Controller System buss Figure: DMA kommuniserer med disk-controlleren og sørger for at det OS ønsker blir kopiert mellom harddisken og internminnet.
DetaljerInternminnet. Håkon Tolsby. 22.09.2014 Håkon Tolsby
Internminnet Håkon Tolsby 22.09.2014 Håkon Tolsby 1 Innhold: Internminnet RAM DRAM - SDRAM - DDR (2og3) ROM Cache-minne 22.09.2014 Håkon Tolsby 2 Internminnet Minnebrikkene som finnes på hovedkortet. Vi
DetaljerDagens temaer. Dagens temaer er hentet fra Englander kapittel 12 side (2. utgave), side (3. utgave)
Dagens temaer Dagens temaer er hentet fra Englander kapittel 12 side 354-378 (2. utgave), side 340-362 (3. utgave) Pentium familien med vekt på Pentium II/III/4 Neste generasjon Intel: Itanium IA64 PowerPC
Detaljerdynamiske data dynamiske data statiske data program dynamiske data statiske data reservert program dynamiske data statiske data reservert program
Alle prosesser får et helt adresserom! antall prosesser varierer hele tiden! in 47, våren 997 hukommelseshierarki 2 Mange prosessers og ett fysiske adresserom? Jo, bruk den fysiske hukommelsen som en cache
DetaljerDet viktigste i en moderne datamaskin er hovedkortet («motherboard»):
Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Hovedkortet Grovt sett inneholder et hovedkort En prosessor Minne (for både program og data) Klokke Kontrollere for periferutstyr.
DetaljerLaboppgave. Sondre Gulichsen, Li Lisan Linder. 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en.
Laboppgave Sondre Gulichsen, Li Lisan Linder 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en. Maskinen har en Intel(R) Pentium(R) D CPU 3,20GHz. Den har en Bus hastighet på 800MHz,
DetaljerInternminnet. Håkon Tolsby Håkon Tolsby
Internminnet Håkon Tolsby 26.09.2017 Håkon Tolsby 1 Innhold: Internminnet RAM DRAM - SDRAM - DDR (2, 3, 4, 5) ROM Cache-minne 26.09.2017 Håkon Tolsby 2 Internminnet Minnebrikkene som finnes på hovedkortet.
DetaljerOppgave lab. 2. Hvor mye Internminne har den? - Maskinen har 2GB internminne.
Oppgave lab Vi anbefaler at du setter deg litt inn i maskinen på forhånd. Det er en DELL Optiplex 620. Søk etter denne maskinen på nettet. Alle oppgavene skal dokumenteres på din studieweb med tekst og
DetaljerTDT4160 Datamaskiner Grunnkurs 2008. Gunnar Tufte
1 TDT4160 Datamaskiner Grunnkurs 2008 Gunnar Tufte 2 Dagens forelesing Kapittel 1 Datamaskinsystem Kapittel 2 start 3 Gunnar Fakta Datamaskingruppa Biologisk inspirerte system: Unconvential Computing Machines
DetaljerTDT4160 AUGUST, 2008, 09:00 13:00
Norwegian University of Science and Technology Faculty of Information Technology, Mathematics and Electrical Engineering The Department of Computer and Information Science TDT4160 DATAMASKINER GRUNNKURS
DetaljerTDT4160 Datamaskiner Grunnkurs 2011. Gunnar Tufte
1 TDT4160 Datamaskiner Grunnkurs 2011 Gunnar Tufte 2 Lager 2.1 2.2 Hard disc Tape storage RAM Module Optical disc Register bank Core memory 3 Ein-prosessor maskin 4 Lager og prosessor overordna Tape Optical
DetaljerForelesning Instruksjonstyper Kap 5.5
TDT4160 Datamaskiner Grunnkurs Forelesning 22.11 Instruksjonstyper Kap 5.5 Dagens tema Instruksjonstyper (5.5) Datatransport Datamanipulering Betingede hoppinstruksjoner Prosedyrekall Løkker I/O Eksempler
DetaljerINF2270. Minnehierarki
INF2270 Minnehierarki Hovedpunkter Bakgrunn Kort repetisjon Motivasjon Teknikker for hastighetsøkning Multiprosessor Økt klokkehastighet Raskere disker Økt hurtigminne Bruksområder Lagringskapasitet Aksesstider
DetaljerAVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl. 09.00 13.00
Side 1 av 11 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE EKSAMEN
DetaljerDet viktigste i en moderne datamaskin er hovedkortet («motherboard»):
Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Data.data Stakk %EAX %ECX %EDX %EBP %ESP Prosessor Kode Minne.text Hovedkortet Grovt sett inneholder et hovedkort En prosessor
Detaljer4/5 store parallelle maskiner /4 felles hukommelse in 147, våren 1999 parallelle datamaskiner 1. når tema pensum.
Parallellitet når tema pensum 27/4 felles hukommelse 9.2 9.3 4/5 store parallelle maskiner 9.4 9.6 in 147, våren 1999 parallelle datamaskiner 1 Tema for denne forelesningen: kraftigere enn én prosessor
DetaljerTildeling av minne til prosesser
Tildeling av minne til prosesser Tildeling av minne til prosesser OS må hele tiden holde rede på hvilke deler av RAM som er ledig/opptatt Når (asynkrone) prosesser/run-time system krever tildeling av en
DetaljerClock speed 3.20GHz Bus Speed 800MHz L2 Cache 4MB 2 Cores Ikke Hyperthreading 64 BIT
1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en. Clock speed 3.20GHz Bus Speed 800MHz L2 Cache 4MB 2 Cores Ikke Hyperthreading 64 BIT 2. Hvor mye Internminne har den? 3. Hvor
DetaljerDEL 1 Setup BIOS Stian A. Johansen Terje Bratlie Espen Torås
DEL 1 Setup BIOS Stian A. Johansen Terje Bratlie Espen Torås 1: Hva slags CPU? - intel pentium CPU 3.20GHz Tekniske egenskaper? CPU SPEED: 3.2 GHz Busspeed: 800 MHz Prosessor ID: 0F64 L2 cache size: 4
DetaljerIntel Core i7. Omid Mirmotahari 4
INF2270 Pipeline Hovedpunkter Oppsummering av én-sykel implementasjon Forbedring av én-sykel designet Introduksjon til pipelining Oppbygning av datapath med pipelining Intel Core i7 Omid Mirmotahari 4
DetaljerTonje Thøgersen, Daniel Svensen Sundell, Henrik Smedstuen
Oppgave lab Tonje Thøgersen, Daniel Svensen Sundell, Henrik Smedstuen Vi anbefaler at du setter deg litt inn i maskinen pa forha nd. Det er en DELL Optiplex 620. Søk etter denne maskinen pa nettet. Alle
DetaljerTildeling av minne til prosesser
Tildeling av minne til prosesser Tildeling av minne til en prosess Når en ny prosess opprettes har den et krav til hvor mye minne som skal reserveres for prosessen Memory Management System (MMS) i OS må
DetaljerDet viktigste i en moderne datamaskin er hovedkortet («motherboard»):
Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Data.data Stakk %EAX %ECX %EDX %EBP %ESP Prosessor Kode Minne.text Hovedkortet Grovt sett inneholder et hovedkort En prosessor
DetaljerForelesning 3.11. Hurtigbuffer Kap 4.5
TDT4160 Datamaskiner Grunnkurs Forelesning 3.11 Hurtigbuffer Kap 4.5 Dagens tema Hurtigbuffer (4.5) Repetisjon: Hva, hvorfor og hvordan Avbildning Skriveoperasjoner Hurtigbuffer ( cache ): Hvorfor? Hurtigbuffer:
DetaljerAVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs Løsningsforslag. Torsdag 29. November 2007 Kl. 09.00 13.00
Side 1 av 13 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE EKSAMEN
DetaljerFortsetelse Microarchitecture level
1 Fortsetelse Microarchitecture level IJVM 2 Implementasjon Detaljar for å utføre instruksjonssettet Ein gitt implementasjon har ein gitt yting Endre ytinga Teknologi (prosess) Transistor implementasjon
DetaljerLaboppgave. Del Optiplex GX620. av Jørgen Pedersen
Laboppgave Del Optiplex GX620 av Jørgen Pedersen Del 1 Setup/BIOS 1. CPU og dens egenskaper Maskinen har en Intel Pentium D CPU med en klokkefrekvens på 3Ghz og to kjerner. Busshastigheten er på 800Mhz.
DetaljerLenovo BladeCenter HS23 7875 - Xeon E5-2680V2 2.8 GHz - 8 GB - 0 GB
Produktinformasjon Informasjon Produsent: Artnr: Lenovo CCG Lenovo BladeCenter HS23 - Xeon E5-2680V2 2.8 GHz - 8 GB - 0 GB Spesifikasjon Generelt Server Produktformfaktor Blad Innebygde enheter LED-panel
DetaljerOppgave 1 JK-flip-flop (Total vekt 20%)
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 147 Program- og maskinvare Eksamensdag: 12. mai 1997 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 6 sider. Vedlegg: Tillatte
DetaljerEn oppsummering (og litt som står igjen)
En oppsummering (og litt som står igjen) Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Eksamen En oppsummering Oppsummering Pensum læreboken til og med kapittel 7 forelesningene de
DetaljerFetch Datamaskinen henter en instruksjon i form av et tall eller en rekke tall fra programminne.
DEL 1 - SETUP BIOS Oppgave 1 Maskinen har intel Core 2 Duo E6400. Fetch Datamaskinen henter en instruksjon i form av et tall eller en rekke tall fra programminne. Decode Når datamaskinen dekoder koden
Detaljer6105 Windows Server og datanett
6105 Windows Server og datanett Labøving: Maskinvare Oppgave a: Fysisk maskinvare Undersøk den fysiske maskinen din, og finn opplysninger om maskinvaren i denne, slik at du kan fylle ut mest mulig i tabellen
DetaljerKjenn din PC(windows7)
Kjenn din PC(windows7) Asus N53S 1. Hva slags prosessor har maskinen? - Min Bærbare pc har en Intel(R)Core(TM) i7-2630qm CPU @ 2.00GHz 2.00GHz 2. Hvor mye minne har den? - den har 4.00GB RAM 3. Hva er
DetaljerEKSAMENSOPPGAVE I FAG TDT4160 DATAMASKINER GRUNNKURS. D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.
Side 1 av 8 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap EKSAMENSOPPGAVE I FAG TDT4160 DATAMASKINER GRUNNKURS Faglig kontakt under eksamen: Jon Olav
DetaljerBits&Bytes Om datamaskinens oppbygging og virkemåte. TOS - IKT Tirsdag 4. desember 2012 Seksjon for digital kompetanse
Bits&Bytes Om datamaskinens oppbygging og virkemåte TOS - IKT Tirsdag 4. desember 2012 Seksjon for digital kompetanse Mål Ha kjennskap til sentrale tekniske begreper Sammenligne ulike datamaskiner kunnskap
DetaljerLabOppgave. 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en.
LabOppgave Del 1 Setup - BIOS: 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en. Svar: Intel (R) pentium D CPU 3,20Ghz Clock speed: 3,20 Ghz Bus speed: 800 Mhz L2 Cache. 4 MB ID:
DetaljerForelesning 9. Registre, tellere og minne
Forelesning 9 Registre, tellere og minne Registre Tri-state output Shift registre Tellere Binær rippelteller Synkronteller Hovedpunkter registre og tellere 2 Register N bits register - parallellkobling
DetaljerKjenn din PC (Windows7)
Kjenn din PC (Windows7) Denne delen handler om hva man kan finne ut om datamaskinens hardware fra operativsystemet og tilleggsprogrammer. Alle oppgavene skal dokumenteres på din studieweb med tekst og
DetaljerHåndtering av minne i et OS
Håndtering av minne i et OS Hva er det som skal håndteres? Minnehåndtering (memory management) utføres av de delene av systemet som har ansvar for å håndtere maskinens primærminne Primærminnet (aka hovedminne,
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 14. juni 2007 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 9 sider. Vedlegg: INF1070 og INF2270 Datamaskinarkitektur
DetaljerLenovo BladeCenter HS23 7875 - Xeon E5-2620V2 2.1 GHz - 8 GB - 0 GB
Produktinformasjon Informasjon Produsent: Artnr: Lenovo B4G Lenovo BladeCenter HS23 - Xeon E5-2620V2 2.1 GHz - 8 GB - 0 GB Spesifikasjon Generelt Server Produktformfaktor Blad Innebygde enheter LED-panel
DetaljerHvorfor lære om maskinvaren*?
Litt om maskinvare Hvorfor lære om maskinvaren*? Hovedoppgaven til et OS er å styre maskinvare Vi må ha grunnleggende kjennskap til maskinvarens oppbygging for å forstå hvordan OS fungerer Skal bare se
DetaljerSeksjon 1. INF2270-V16 Forside. Eksamen INF2270. Dato 1. juni 2016 Tid Alle trykte og skrevne hjelpemidler, og en kalkulator, er tillatt.
Seksjon 1 INF2270-V16 Forside Eksamen INF2270 Dato 1. juni 2016 Tid 14.30-18.30 Alle trykte og skrevne hjelpemidler, og en kalkulator, er tillatt. Dette oppgavesettet består av 14 oppgaver som kan løses
DetaljerTDT4160 DATAMASKINER GRUNNKURS EKSAMEN
Norwegian University of Science and Technology Faculty of Information Technology, Mathematics and Electrical Engineering The Department of Computer and Information Science TDT4160 DATAMASKINER GRUNNKURS
DetaljerKjenn din PC - Guled Yusuf
Kjenn din PC - Guled Yusuf 1. Min pc har en i5-2430m processor fra Intel, det er en 2.generasjons processor. 2. Jeg har totalt 6GB minne i min pc standar levert. 3. Windows Experience Index er et verktøy
DetaljerDagens temaer. Praktisk anvendelse: Satellittkommunikasjon. eksempler på bruk av assembler/c/arkitektur teknikker for å øke hastigheten
Dagens temaer Praktisk anvendelse: Satellittkommunikasjon! Praktiske! Flere! Cachehukommelse eksempler på bruk av assembler/c/arkitektur teknikker for å øke hastigheten del (fra kapittel 6.5 i Computer
DetaljerLøsningsforslag til eksamen i INF2270
Løsningsforslag til eksamen i INF227 Oppgave 9 Omid Mirmotahari Oppgave 6 Dag Langmyhr. juni 24 Eksamen INF227 Sensorveiledning Oppgave 2 Kretsforenkling Hva er funksjonsuttrykket for Output gitt av A
Detaljer! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:
Dagens temaer! Ulike kategorier input/output! Programmert! Avbruddstyrt! med polling.! Direct Memory Access (DMA)! Asynkrone vs synkrone busser! Med! Fordi! -enheter menes de enheter og mekanismer som
Detaljer