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

Relevanta dokument
MESI i Intel Core 2 Duo

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)

Parallellism i CDC 7600, pipelinens ursprung

32 Bitar Blir 64 Sammanfattning

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

Hyper Threading Intels implementation av SMT. Datorarkitekturer med operativsystem - EITF60. Felix Danielsson IDA2

Grundläggande datavetenskap, 4p

Hantering av hazards i pipelines

Multithreading in Intel Pentium 4 - Hyperthreading

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

Processor pipelining genom historien (Intel i9-intel i7)

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

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

Datorsystemteknik DVGA03 Föreläsning 8

Pipelining i Intel 80486

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

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

Datorsystemteknik DAV A14 Föreläsning 1

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

Hyper-Threading i Intelprocessorer

I denna laboration undersöker vi hur aritmetiska beräkningar utförs. Vi tittar på olika variabeltyper: 8-bitars, 16-bitars, 32-bitars och flyttal.

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

DEC Alpha instruktions Arkitektur

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

SIMD i Intel s P5- baserade Pentium MMX

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Pipelining i Intel Pentium II

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

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

Föreläsningsanteckningar till Konstruktionsmetoder

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

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

Prestandapåverkan på databashanterare av flertrådiga processorer. Jesper Dahlgren

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

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

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

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

Öka prestanda i Shared-Cache multi-core processorer

Pipelining i RISC-processorn. Joakim Lindström Institutionen för informationsbehandling Åbo Akademi E-post: jolindst@abo.fi

Cacheminne i en Intel Core 2 Duo-processor

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

Det finns en hemsida. Adressen är

Schemaläggnings metoderna AMP & SMP i en Multiprocessor

Arm Cortex-A8 Pipeline

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

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

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

Datorarkitekturer med Operativsystem

Tentamen. Datorteknik Y, TSEA28

Modbus över Ethernet. WAGO Contact SA TSS STR

IT för personligt arbete F5

Tentamen PC-teknik 5 p Lösningar och kommentarer

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

Spekulativ exekvering i CPU pipelining

Styrteknik: MELSEC FX och numeriska värden

Grundläggande programmeringsteknik Datorsystem

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

Tentamen. Datorteknik Y, TSEA28

Digital- och datorteknik

Digitalteknik och Datorarkitektur

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

Grunderna i stegkodsprogrammering

Datorsystem. Tentamen

Grindar och transistorer

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

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

Cacheminne Intel Core i7

Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion.

Datorarkitekturer med operativsystem ERIK LARSSON

Stack och subrutiner Programmeringskonventionen

CPU. Carry/Borrow IX. Programräknare

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Hantering av hazards i multi-pipelines

Datorarkitekturer med operativsystem ERIK LARSSON

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

Föreläsningsanteckningar 4. Pipelining

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

Cacheminne i en AMD Opteron Processor

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

Tentamen. Datorteknik Y, TSEA28

Programmerbara kretsar och VHDL 2. Föreläsning 10 Digitalteknik, TSEA22 Oscar Gustafsson Institutionen för systemteknik

Tentamen. Datorteknik Y, TSEA28

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

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

Digitalteknik och Datorarkitektur 5hp

Datorsystem. Tentamen

Datorsystem. Exempeltentamen

Tentamen PC-teknik 5 p

TSEA28 Datorteknik Y (och U)

Bank Switching. Att nå multipla adressrymder. Av: Drazen Mijatovic

Minnesisolering för virtuella maskiner en hypervisorstudie

Tentamen. Datorteknik Y, TSEA28

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

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

Tentamen. Datorteknik Y, TSEA28

Introduktion till programmering och Python Grundkurs i programmering med Python

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

Laboration 6. A/D- och D/A-omvandling. Lunds universitet / Fakultet / Institution / Enhet / Dokument / Datum

Läsminne Read Only Memory ROM

Central Processing Unit

Transkript:

Utvecklingen från en 8 bitars till en 16 bitars mikroprocessor Sammanfattning: Utvecklingen från processor till processor är inte lätt. Det finns många beslut som måste tas när det gäller kompatibilitet, speciellt när man ändar hur många bitar processorn skall hantera. Denna rapport tar upp utvecklingen från en 8 bitars processor till en 16 bitars processor utifrån Intels utveckling. Skillnader i de olika 8 bitars processorerna tas upp då den utvecklingen i sig var ganska stor. I slutet av rapporten beskrivs några av de viktiga beslut som togs vid utvecklingen av Intels första 16 bitars processor. Vissa viktigare förbättringar med Intels 16 bitars processor tas också upp, dock med vissa avgränsningar. Rapporten tar inte upp specifikt hur registren fungerar etc. då fokus ligger i att visa hur processorer gick från en 8 bitars processor till en 16 bitars processor.

Inledning: Idag använder vi oss av 64 bitars processorer och detta tycker vi är ganska självklart. De gör det som vi förväntar oss och vi skulle inte kunna tänka oss att ha en långsammare eller mindre kraftfull processor. Om en potentiell 128 bitars processor skulle bli annonserad skulle de flesta anse att det skulle vara ganska onödigt, vi kan ju redan göra allt vi vill och mer därtill med 64 bitars processorn. Det var exakt denna mentalitet som fanns på 70 talet. Då var det 8 bitars processorn som var det som gällde och de flesta konsumenter ansåg att det var tillräckligt. På den tiden fanns det många fler processortillverkare än vad det finns idag. Därför kommer denna rapport att fokusera på just Intels utveckling från 8 bitars till 16 bitars processor. Att utveckla en helt ny processor är inte lätt, särskilt om man ska gå från 8 bitars till 16 bitars, och det finns många frågor som måste besvaras innan man börjar. Frågor som t.ex om mjukvaran från den gamla processorn ska fungera på den nya processorn eller om man ska göra så att mjukvara till den nya processorn fungerar på den gamla. Utvecklingen av 8 bitars processorn: Intel 8008 Intels första 8 bitars mikroprocessor Intel 8008 lanserades 1972 och skapades med PMOS, den dåvarande tillverkningstekniken. Detta kommer att spela större roll senare i rapporten men för tillfället är det ganska oviktigt då PMOS var det man använde sig av på den tiden. 8008:an var auktoriserad av ett företag som heter Computer Terminal Corporation (CTC). Tyvärr blev 8008:an försenad och CTC valde att använda sig av en annan processor. Intel fick då lov att sälja sin nya processor till andra konsumenter. Intel 8080 Även om 8008:an var Intels första 8 bitars processor användes den inte speciellt mycket, mestadels i miniräknare, kassaapparater och industriella robotar. Processorn som Intel lanserade 1974, Intel 8080, blev däremot mycket mer allmänt spridd och är därför mer intressant än vad 8008:an är. 8080:an blev till och med så populär att det var den som gav upphov till frågorna om hur man skulle utveckla processorn till 16 bitars då så många program var skrivna till 8080:an. Här ändrade man tillverkningsteknik till NMOS. 8080:an hade 64K bytes minne vilket var 4 gånger så mycket som 8008:an hade. Denna processor var kapabel till 16 bitars datahantering, dock bara 8 bitars aritmetiska operationer. Det är detta som definierar att denna processor är en 8 bitars processor. Själva namnet på processorn var tänkt som en 10 gångers prestandaökning genom att flytta den sista 8:an ett steg åt vänster. Denna ide' skulle då gå vidare till Intel 8800 som i sin tur skulle vara 10 gånger bättre än 8080:an. Denna processor blev dock försenad av olika anledningar.

Intel 8085 Samtidigt som man jobbade på 8800:an jobbade man också med Intel 8085. Denna processor skulle fungera som ett mellansteg mellan den nuvarande 8080:an och den nya 8800:an. 8085:an lade till 12 nya instruktioner och några små tillägg som skulle göra processorn enklare att tillverka. 8085: togs dock inte emot så väl. Den ansågs vara sämre än andra tillverkares processorer. I mitten av 1976 insåg man att 8085:an inte skulle hålla tills 8800:an var tillverkad. För att rädda Intel bestämdes det att man skulle göra en ny processor som skulle vara kompatibel med den föregående 8080:an. Man utnyttjade den senaste NMOS tekniken för att tillverka Intel 8086. Tabell 1 nedan visar utvecklingen för Intels processorer. Från 8008:an till 8080:an bytte man från PMOS till NMOS. Tabell 1: Mazor, S 2010, 'Intel's 8086', IEEE Annals Of The History Of Computing, 32, 1, pp. 75 79, Business Source Complete, EBSCO host, viewed 4 December 2015. Intel 8086, 16 bitars processorn: Intel lanserade 1978, bara 6 år efter deras första 8 bitars processor, Intel 8086 Intels första 16 bitars processor. Denna processor gav upphov till Intels x86 arkitektur vilket kom att bli Intels mest framgångsrika processorarkitektur. Eftersom Intel 8080 var så populär behövde den nya Intel 8086 vara kompatibel med den föregående processorn på assemblynivå. Så många program var utvecklade till 8080:an att om 8086:an inte skulle kunna köra dessa program skulle inte många vilja köpa den. För att lyckas med detta gjorde man så att 8080:ans register och instruktioner skulle se ut som logiska subset av 8086:ans register och instruktioner. En instruktion på 8080:an skulle allstå kunna göras utav instruktioner på 8086:an även om 8086:an inte hade exakt samma instruktion som 8080:an. Dock blev det lite problem när det gäller instruktioner. 8085:an som skulle lanseras innan 8086:an hade ju nya instruktioner utöver de som redan fanns på 8080:an. Det är inte så lätt att bara ta bort instruktioner från en processor. Det är däremot betydligt lättare att ändra i dokumentationerna till en processor. Så man beslutade att låta 8085:an ha kvar sina 12 extra instruktioner men att bara annonsera 2 av de nya instruktionerna för 8085:an.

8080:an hade ett fåtal 16 bitars operationer, add, load och shift men 8086:an blev Intels första riktiga 16 bitars processor. 8086:an kunde nu hantera 16 bitars aritmetiska operationer, till och med multiplikation och division. 8086:an behöll alla de gamla 8 bitars instruktionerna men den skulle bara arbeta på en 16 bitars minnesbuss. Detta innebar att 8086:an inte skulle bli kompatibel med folks 8 bitars system. Av en slump utvecklades 8086:an till två olika produkter: 8086:an och 8088:an. 8088:an hade samma instruktioner som 8086:an men använde en 8 bitars minnesbuss vilket gjorde 8088:an lite långsammare men den skulle vara kompatibel med gamla 8 bitars system. På så sätt kunde Intel lansera processorserien som både 16 bitars och 8 bitars processorer. 8086:an bestod av 13st 16 bitars register och 9st 1 bits flaggor. De 13 registren var uppdelade i 3 set om 4 var. Det 13:e registret kallades för instruction pointer vilket är samma som program countern i tidigare processorer. Detta register är inte åtkomligt för programmeraren. Bild 1 nedan visar hur 8080:an är subsets till 8086:an. Vad de olika registren gör och vad de står för är inte så relevant för denna rapport och kommer alltså inte att gås in på i detalj. Bild 1: Morse, Raveiel, Mazor, & Pohiman 1980, 'Intel Microprocessors 8008 to 8086', Computer, 13, 10, p. 42, Publisher Provided Full Text Searching File, EBSCO host, viewed 4 December 2015.

8086:ans adresserbara minne blev mycket söttre än vad 8080:ans minne var. Detta var dels pga av att minne hade blivit mycket billigare. 8080:an hade 64K byte adresserbart minne, 8086:an skulle ha 1M byte minne. För att kunna adressera 1 miljon bytes behövs det dock ett 20 bitars minne medan processorn bara hanterar 16 bitars beräkningar. För att uppnå detta förskjuter man den effektiva adressen 4 bitar till höger om segment adressen, sätter de lägst 4 bitarna i segment adressen till 0 och adderar de båda adresserna. Detta visas bättre i Bild 2 nedan. Bild 2: Morse, Raveiel, Mazor, & Pohiman 1980, 'Intel Microprocessors 8008 to 8086', Computer, 13, 10, p. 42, Publisher Provided Full Text Searching File, EBSCO host, viewed 4 December 2015.

Referenser Morse, Raveiel, Mazor, & Pohiman 1980, 'Intel Microprocessors 8008 to 8086', Computer, 13, 10, p. 42, Publisher Provided Full Text Searching File, EBSCO host, viewed 6 December 2015. Morse, S, Pohlman, W, & Ravenel, B 1978, 'The Intel 8086 Microprocessor: a 16 bit Evolution of the 8080', Computer, 11, 6, p. 18, Publisher Provided Full Text Searching File, EBSCO host, viewed 6 December 2015. Mazor, S 2010, 'Intel's 8086', IEEE Annals Of The History Of Computing, 32, 1, pp. 75 79, Business Source Complete, EBSCO host, viewed 6 December 2015. '8 bit or 16 bit computers?' 1984, Journal Of Accountancy, 157, 6, pp. 62 66, Business Source Complete, EBSCO host, viewed 6 December 2015.