32 Bitar Blir 64 Sammanfattning

Relevanta dokument
Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

Hantering av hazards i pipelines

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)

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

MESI i Intel Core 2 Duo

Föreläsning 2. Operativsystem och programmering

SIMD i Intel s P5- baserade Pentium MMX

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

Minnesisolering för virtuella maskiner en hypervisorstudie

Multi-ported cache En rapport om några lösningar till att få flera minnesaccesser simultant.

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

Datorarkitekturer med operativsystem ERIK LARSSON

Introduktion till programmering

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

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

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

Emil Kristiansson Kurs: EDT621 Delmoment: Rapport. En introduktion till Smart cache

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

HF0010. Introduktionskurs i datateknik 1,5 hp

Grundläggande datavetenskap, 4p

Arm Cortex-A8 Pipeline

DEC Alpha instruktions Arkitektur

Rapport (1,5 HP) Lunds Universitet HT15

Närliggande allokering Datorteknik

TDDC77 Objektorienterad Programmering

VI SI CLOSETALK AB SYSTEMKRAV

DIG IN TO Dator och nätverksteknik

Öka prestanda i Shared-Cache multi-core processorer

CDC en jämförelse mellan superskalära processorer. EDT621 Campus Helsingborg av: Marcus Karlsson IDA

Pipelining i Intel 80486

Hur det går att minska effektutvecklingen i en processor genom att ändra pipeline

KUNDCASE. Inovia gjorde sin AI-utveckling 10 gånger snabbare med Power-plattformen

Systemkrav WinServ II Edition Release 2 (R2)

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

Datorarkitekturer med operativsystem ERIK LARSSON

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

Datorarkitekturer med operativsystem ERIK LARSSON

Cacheminne i en Intel Core 2 Duo-processor

Superscalar Bra: Hårdvaran löser allt: Hårdvara detekterar poten6ell parallellism av instruk6oner Hårdvara försöker starta exekvering (issue) av så

Tekis-FB Systemkrav

Hannes Larsson - IDA 2, LTH Campus Helsingborg. NEC V R 4300i. Interlock-handling EDT621

Parallellism i NVIDIAs Fermi GPU

DVG A06. Operativsystem, mm. Karlstads universitet Datavetenskap. DVG A06 Johan Eklund. Datavetenskap, Karlstads universitet 1

Läsminne Read Only Memory ROM

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

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

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Introduktion till hårdvara, mjukvara och operativsystem

En överblick på cachedesignen i Intels mikroarkitektur Nehalem

Valet mellan CISC och RISC processorn

Digitalteknik och Datorarkitektur 5hp

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser

Cloud Computing för arkitekter Sten Sundblad IASA och Sundblad & Sundblad

Systemkrav. Artvise Kundtjänst

Random Access Memory. Amare Reda Jenny Holmberg Henrik Kreipke Gaylord Kaya

Datorarkitektur. Fö 9: Datorarkitektur. Datororganisation. Typiska Arkitekturattribut. Introduktion till datorarkitektur.

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

Programmering för alla!

Föreläsningsanteckningar 4. Pipelining

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2013.Q3

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

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

Processor pipelining genom historien (Intel i9-intel i7)

Programmering för alla!

Introduktion till programmering och Python Grundkurs i programmering med Python

Tentamen den 18 mars svar Datorteknik, EIT070

TEKNISK SPECIFIKATION. för TIDOMAT Portal version 1.7

4 grundregler. Minneshantering. Problemet. Windows minkrav

Datorarkitekturer med Operativsystem

Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

CE_O5. Cacheminne. Hemlaboration 2.

Datorarkitekturer med operativsystem ERIK LARSSON

Minnet från processorns sida Datorteknik

Föreläsning 3. Programmering, C och programmeringsmiljö

CPU. Carry/Borrow IX. Programräknare

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2013.Q2

Grundkurs i programmering - intro

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2015.Q1

Jacquards vävstol, 1801

Datorteknik. Föreläsning 7 Historia och framtid. Institutionen för elektro- och informationsteknologi, LTH

Datorsystemteknik DAV A14 Föreläsning 1

Systemrekommendation. Artvise Contact Center

Föreläsningsanteckningar till Konstruktionsmetoder

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Datorsystem. Exempeltentamen

Operative system. LRU-algoritm (2 p) Svar: 7 fel. c) Optimal algoritm (2 p) Svar: 6 fel

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

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

Att komma igång. Föreläsning 1

Komma över Memory wall med 3D stacked minne LTH Ingenjörshögskolan vid Campus Helsingborg Institutionen för datavetenskap

F5: Högnivåprogrammering

via webbgränssnittet. Du har även tystnadsplikt gällande dina identifikationsuppgifter.

Objektorienterad Programmering (TDDC77)

CE_O8. Cacheminne. Hemlaboration 2.

F5: Högnivåprogrammering

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Transkript:

32 Bitar Blir 64 Sammanfattning Syftet med rapporten är att ge en insyn i det tillvägagångssätt och problem som uppstod i utvecklingen från 32 bitars CPUs till 64 bitars CPUs samt inblick i skillnaden mellan 32- och 64 bitars CPUs. 32 bitars CPUs kan adressera 4GB av byte-adresserat minne. Detta var en tillräckligt stor buffert för minne att växa i då man inte var i närheten av att använda så mycket som kunde användas. Med tiden så blev minne både större och billigare och 4GB var inte tillräckligt längre och en lösning var då att öka från 32- till 64 bitar för att kunna adressera mer. Nya standarder och datamodeller behövde bestämmas och binärer behövde vara uppåtkompatibla för att fungerar med det nya. Att göra om utan att tänka på den redan installerade användarbasen går ej och de som funkar nu måste också funka på det nya i alla fall för en bit framöver.

Bakgrund Vad är det som definierar om en processor (CPU, engelska: central processing unit) är 32- eller 64 bitar? En N-bitar stor CPU tillämpar en instruktionsuppsättning (ISA, engelska: instruction set architecture) med Integer(heltals) register på N-bitar, ett antal (kan skilja sig från CPU till CPU) N-bitar ALUs och N-styck adresseringsbitar. Antalet adresseringsbitarna kan skilja sig genom att vara färre. Storleken på en CPUs flyttalsregister och databuss kan också skilja sig från de N-bitarna. Antalet bitar som en CPU kan manipulera på en gång kallas world size. En CPU med 64- bitars word size kan då processera 64 bitar per instruktion. Ett register på 32 bitar kan lagra 2 32 olika värden. En CPU med 32 bitars minnesadresser kan då direkt adressera 4GB av byte-adresserat minne. Ökar man till 64 bitar så ökar både antal olika värden som kan sparas och minne som kan adresseras oerhört. Ett register på 64 bitar kan lagra 2 64 olika värden. En CPU med 64 bitars minnesadresser kan då direkt adressera 1.8EB (1.8 eksa byte (10 18 ), 1.8 trillioner byte) av byte-adresserat minne. Hur mycket som man sedan kan använda av ens RAM i systemet beror helt och hållet på vilket operativsystem man kör och ytterligare utrustning i systemet. Nedan följer två tabeller som visar kompatibiliteten mellan CPU, OS och applikationer/program som kör 32- eller 64 bitar. Tabell 1 - Kompatibilitet med 32 bitars CPU Processor (CPU) 32 bitar 32 bitar 32 bitar 32 bitar Operativsystem (OS) 32 bitar 32 bitar 64 bitar 64 bitar Applikation/Program 32 bitar 64 bitar 32 bitar 64 bitar JA NEJ NEJ NEJ Tabell 2 - Kompatibilitet med 64 bitars CPU Processor (CPU) 64 bitar 64 bitar 64 bitar 64 bitar Operativsystem (OS) 64 bitar 64 bitar 32 bitar 32 bitar Applikation/Program 64 bitar 32 bitar 32 bitar 64 bitar JA JA JA NEJ

Inledning I sin artikel The Long Road To 64 Bits publicerad i Communications Of The ACM år 2009 skriver John Mashey om utveckligen från 32 bitars processorer till utbyggnader på 32 bitar och tillsist en full 64 bitars processorer. Mashey tar upp fundamentala problem som ledde till utökningen av bitarna på en CPU och problem som behövde lösas under vägen till 64 bitar. Att adresseringsutrymmet tar slut är ett vanligt problem inom datavärlden skriver Mashey. Kapaciteten för DRAM ökade och blev då också billigare att tillverka. När priset sänks så har mer människor råd med mer minne och 2 till 4GB blev vanligare bland konsumenterna. Vanlig adressering med 32-bitar började då bli för lite. Mashey tycker att 64 bitars processorer redan skulle ha börjat att skickas runt 1992 så att de blivit väl etablerade innan de verkligen behövdes. Istället för att ha uppgraderat system som bara kör 32 bitar så hade man kunnat byta till 64 bitars system och fått ett mycket smidigare byte. Mashey beskriver att tiden för skeppningen skillde sig mellan just barely in time (s.46) till rather late (s.46) och understryker att detta är mycket märkvärdigt med tanke på att samma problem har uppstått antal gånger innan och samtidigt med tanke på hur förutsägbar Moores lag är. Virtuellt minne kan adresseras av vilken CPU som helst genom användningen av flat addressing. Flat addressing fungerar genom att alla eller övervägande del av bitarna i ett heltals register används för en virtuell minnes adress som då kan vara större eller mindre än det fysiska minnet. Mashey förklarar att det har funnits åtskilliga klumpiga utökningar av bitar för att öka åren på en produkt innan den inte är brukbar längre. Nuvarande 32 bitars binärer behövde vara uppåtkompatibla för att kunna köras på de nyare 64 bitars systemen då många mindre system inte behövde 64 bitar. Mashey belyser att 32 bitar inte bara var en fas som man kunde glömma bort. För att lösa detta problem med uppåt kompatibilitet så behövde mjukvarudesigners komma överens om vissa standarder för kompilatorer och bibliotek samt att modifierar källkod för applikationer så det fungerar i både 32- och 64 bitars miljöer. Själva hårdvarulösningarna för detta var för det mesta enkla och Mashey skriver att lösningen för att öka storlekarna på register från 32- till 64 bitar inte var speciellt dyrt att göra och att processorernas area ökade med max 5%. Den redan etablerade 32 bitars arkitekturen för CPUs användes för de nya 64 bitars CPUs. De gjordes som utökningar genom att förlänga register till 64bitar och sedan ignorera de övre 32 bitarna när CPUn körde i 32 bitar. När det gällde mjukvarulösningarna så var det en annan femma. Vilka standarder som skulle gälla och konkurrens och samarbete mellan stora företag gjorde att vägen till en lösning blev mycket komplex.

Som Mashey skrev så är ändringarna för mjukvara från 32- till 64 bitar mycket svårare att genomföra. För inbyggda system som spelkonsoler så var bytet lätt men när det kommer till mer allmänna system som är öppna för användare så blir processen att byta mycket svårare. De allmänna systemen fick oftast gå igenom en längre process för att få igenom ett bra uppåt kompatibelt system. Nedan följer en sammanfattad lista av processen. 1. Skicka 64 bitars system som fortsätter att supporta 32 bitar. 2. Bestäm standarder för programmering i 64 bitar för programmeringsspråk. 3. Bygg kompilatorer som kan generera kod för 64 bitar. Kompilatorerna själva körs till största del fortfarande själva i 32 bitar. Beroende på storleken på programmen som ska kompileras så måste också kompilatorn att köra i 64 bitar. Kompilatorn får först justeras för att ta emot 64 bitar och sedan byggas om för att själv använda dem. 4. Ändra operativsystemen till 64 bitar som fortfarande kan hantera 32 bitar. Utforma nya 64 bitars systembibliotek av de 32 bitar som redan finns. 5. Skicka det nya på ny 64 bitars hårdvara och se till så att de funkar på den hårdvara som redan skickats sedan innan. 6. Övertyga tredje parts utvecklare att ändra mjukvara för att köras i 64 bitar. 7. Fortsatt support för system som kör 32 bitar men sluta att leverera nya system med 32 bitar. 8. Stoppa supporten helt för system som kör 32 bitar. Mashey understryker att det tar olika många år mellan stegen och att industrin inte kommit till steg 8 ännu. Användarbasen för 32 bitar och fortfarande stor. Program och applikationer kan såklart byggas om för 64 bitar genom att kompilera om källkoden i en kompilator som kör 64 bitar. Koden kan också behöva skrivas om på grund av vissa datatyper blir större då datamodellen ändras. Mashey betonar att många program som är för 32 bitar inte kommer att behöva köras i 64 bitar då dagens operativsystem tillåter minnespekare på 64 bitar för 32 bitars program.

Referenslista MASHEY, J 2009, 'The Long Road To 64 Bits', Communications Of The ACM, 52, 1, pp. 45-53, Business Source Complete, EBSCOhost, viewed 24 November 2015. PATTERSON, D.A & HENNESSY J.L (2014). Computer Organization And Design: The Hardware/Software Interface, 5th edn. Morgan Kaufmann. Microsoft 2015, Memory Limits for Windows and Windows Server Releases. Available from: < https://msdn.microsoft.com/en-us/library/aa366778(v=vs. 85).aspx>. [1 December 2015].