DEC Alpha instruktions Arkitektur David Ekberg December 4, 2017
Innehållsförteckning 1 Sammanfattning...3 2 Bakgrund...3 3 Syfte...3 4 Pipeline...4 4.1 Datatyper...4 4.2 Instruktions arkitektur...5 5 Slutsats...6 6 Referenser...6
1 Sammanfattning Alpha, Som tidigare är känt som Alpha AXP är en 64-bitars reducerad instruktionsuppsättning för databehandling (RISC) som är utvecklat av Digital Equipment Corporation(DEC). Utformat för att ersätta 32-bitars VAX-komplexa instruktionsuppsättningar (CISC). Alla register är 64 bitar långa och alla operationer utförs i dessa register. Instruktionerna är 32 bitar långa och de minnesoperationer som utförs är laddning och lagring, denna arkitektur består av 6 olika format. Alpha har ett enkelt pipelinesystem där man integrerat åtgärder för att undvika faror. Detta innebär också att det finns saknade instruktionsverktyg. Designen innehåller sex olika datatyper där man tagit hänsyn till tidigare programvara för att öka kompatibiliteten. 2 Bakgrund Alpha uppkom ur ett tidigare 32-bitars RISC-projekt med namnet Prism som, som i sig själv är en produkt av flera tidigare projekt. Den flexibla designen som Prism var avsedd till att vara, stöder både Unix liknande applikationer och befintliga VMS-program från VAX efter konvertering. Denna nya RISC arkitekturen kunde stödja VMS operativsystemet och köras i rimlig hastighet utan någon konvertering. Uppgraderingen av Prisms 32-bitars system till Alphas 64-bitars blev den nya normen hos RISC leverantörer. Alphas implementation var ett stort bidrag till mikroprocessorindustrin, då industrin präglades av automatiserade design och layoutverktyg. Alphas chip möjliggjorde för högre driftfrekvenser när man med manuell kretsdesign tillämpade en enklare och renare arkitektur. Detta började ersätta de tidigare automatiserade systemen där man använde den tidigare komplexa VAX arkitekturen. Alpha arkitekturen såldes till Compaq år 1998, Compaq beslutade då att avveckla Alpha till förmån för den kommande Hewlett-Packard(HP)/Intel Itanium-arkitekturen. Intel köpte då all den intellektuella egendomen som tillhörde Alpha år 2001 för att effektivt döda produkten. Samtidigt fortsatte HP att utveckla det befintliga Alpha systemet fram till 2004 och sålde dessa system fram tills 2007. 3 Syfte Att ge läsaren en ökad förståelse för vad en Alpha processor med reducerad instruktionsuppsättning är samt förstå hur pipeline hos detta system fungerar och varför designen inte är komplett.
4 Pipeline Alpha arkitekturen var avsedd för att vara en högpresterande design, som skulle stödja en ökning av prestanda över 25 år. För att säkerställa detta så tog man bort funktioner som kunde orsaka instruktionsproblem, klockfrekvens eller multiprocessing. Detta resulterade i att Alpha inte kan hantera branched delay slot, supressed instructions, byte load eller store instructions. Detta gör att det inte finns någon fara när man kör instruktionerna med pipeline. Designen för Alpha passar implementationer med hög hastighet, instruktionerna är väldigt enkla. Instruktionerna är 32 bitar långa, minnes operationerna är antingen lagring eller laddning, där manipulationen av data sker mellan registerna. Eftersom det inte finns några speciella register eller villkorlig kod, så utför Alpha arkitekturen pipelining flera gånger av samma operation. Denna höghastighets design gör det lätt att skapa implementationer som klarar av flera instruktioner varje klockcykel, på grund av att instruktionerna påverkar varandra endast när en instruktion skrivs till ett register eller minne och en annan instruktion läser på samma ställe. Alpha gör det lätt att behålla hastighet och binär kompatibilitet mellan implementationer. För att uppnå den höga hastighet som Alpha har för avsikt att nå så finns det tillvägagångssätt för detta. Man använder sig utav ett mål för beräknade hoppinstruktioner vilket medför att subrutinen blir kallad på, och återvänder snabbare. Man har förbestämda mål för minnessystemet vilket tillåter högre cache träffar. Dessa höghastighetskrav innebär också att man i funktionsfältet har integrerat ett varningssystem, där varningar uppstår när ett överfyllningsfel inträffar istället för att uppstå globalt. Varningssystem kallas i Alpha för exception barrier och innebär att när en varning uppstår så ska instruktionen gå in ett undantagsläge eller avrundningsläge. Detta gör det lättare att implementera pipeline. Alpha innehåller alla de operationer som finns i vanliga RISCarkitekturer, men även villkorliga instruktioner finns för flyttning, då man vill undvika branching. Flytande punktinstruktioner kan användas i pipeline, då all hårdvara skapar fällor för de undantag som sker. Det tidigare nämnda varningssystemet innebär att man kan garantera att tidigare instruktioner är genomförda i pipelineimplementationen. 4.1 Datatyper Alpha arkitekturen innehåller 6 olika datatyper. Quadword (64-bit) Integer Longword (32-bit) Integer IEEE T-floating point (64-bit) IEEE S-floating point(32-bit) För att bibehålla kompatibiliteten med VAX, 32-bitars arkitekturen som föregick Alpha så inkluderade man två till data typer. VAX G-floating point (64-bit) VAX F-floating point (32-bit)
4.2 Instruktions arkitektur Figur 1. Alphas 32 bitars instruktions arkitektur. 2 I figur 1 beskrivs Alphas fasta instruktions arkitektur som består av 32 bitar och har sex instruktionsformat. Det första formatet som är ett heltals operativformat innehåller ett 6 bitars opcode fält och är följt av fälten Ra och Rb där det förstnämnda anger registret som innehåller den första operanden och det sistnämnda anger vilket register som innehåller den andra operanden. Nästa fält är 3 bitars och är oanvänt och reserverat, därefter kommer ett 1 bitars fält som innehåller 0 och skiljer då detta format från heltalets bokstavsformat. Funktionsfältet är 7 bitar och används i samband med opcode för att ange en operation. Det sista fältet Rc som är 5 bitar anger vilket register som resultatet av en beräkning ska skrivas till. Andra formatet är ett bokstavligt heltals format som används av heltals instruktioner och använder en bokstav som en operand. Formatet är detsamma som tidigare operativformat, med undantag för det nya fältet Literal som ersatt Rb och det oanvända fältet och består då av 8 bitar. Det tredje operationsformatet för flytande punkter liknar heltalets, men har ett 11 bitars funktionsfält istället för 7 bitar. Detta görs möjligt då man använder det oanvända fältet samt bokstavsfältet till att skapa ett större funktionsfält. Minnesformatet som är det fjärde på bilden, används mest för laddning och lagring av instruktioner. Detta formatet använder sig utav ett 16 bitars förskjutningsfält. Branch formatet liknar minnesformatet men använder ett 21 bitars förskjutningsfält. Det sista formatet som används för att kalla på subrutiner innehåller 6 bitars opcode fält, men ersätter alla andra fält till ett 26 bitars funktionsfält.
5 Slutsats Det nerlagda projektet Alpha var på sin tid väldigt fördelaktigt på grund av sin enkelhet. Det tankesätt bakom de åtgärder som utförts för att skapa en säker och snabb pipeline innebär i princip en felfri miljö. Dessa åtgärder har dessvärre även orsakat stora brister i systemet då flera funktioner saknas. 6 Referenser 1 Alpha Architecture Committee, April 15. 1998. Alpha Architecture Reference Manual, tredje upplagan (kapitel 1,2,4 och Appendix A). 2 En.wikipedia.org. (2017). Dec Alpha, https://en.wikipedia.org/wiki/reduced_instruction_set_computer 3 Techopedia.com. (2017) https://www.techopedia.com/definition/18752/dec-alpha