1. Inledning
För dels finns det många olika sätt att bygga processorer på och dels finns det många olika sätt att programmera dem på. Det jag säger här är därför en mycket allmän genomgång. Sidan kompletteras främst av Så fungerar datorn, Integrerade kretsar och Datorns historia. Den sistnämnda sidan berättar bl.a om processorns historia, från 60-talet och framåt. Processorerna har hela tiden blivit mer och mer kraftfulla, tack vare att man kunnat packa transistorerna tätare på chipset. Därigenom har man kunnat öka processorns snabbhet och arbetskapacitet, samt minska deras storlek. Jag tänker inte gå igenom olika processorfabrikat och berätta vad som skiljer en 386:a från Pentium III eller hur en Intel-processor skiljer sig från en motsvarande från AMD. Jag tänker inte heller säga något om varför Intel och Motorola har valt att satsa på helt olika processortyper. Varför då? Jo, helt enkelt för att sådana kunskaper snabbt blir gamla, men framförallt därför att jag inte riktigt kan se syftet med sådana genomgångar. Däremot måste jag naturligtvis berätta om några av de viktigaste begreppen, t.ex. RISC och CISC. 2. RISC och CISCRISC och CISC var under hela 90-talet de två olika filosofierna för hur man skall bygga en processor till en PC. RISC är en något yngre teknologi än CISC och står för "Reduced Instruction Set Computer". CISC betyder "Complex Instruction Set Computer". Om vi börjar med CISC bygger den på att det skall finnas en bred eller komplex uppsättning instruktioner till processorn, som alla är olika viktiga, men tar lika lång tid att utföra. Det är alltså denna filosofi som döljer sig bakom uttrycket "Complex Instruction Set". RISC-filosofin tar istället fasta på att man ofta använder instruktioner av en viss typ till processorn. I själva verket är det ungefär 20% av alla instruktioner som används regelbundet, medan de övriga 80% sällan används. Genom att då reducera uppsättningen instruktioner kan man få processorn att arbeta mycket snabbare med just dessa instruktioner. Anledningen är att processorn inte behöver leta igenom hela biblioteket för att finna den rätta instruktionen. Däremot blir RISC-processorn långsammare på att utföra något där någon av de övriga 80% instruktionerna skulle ha använts. Då tvingas nämligen processorn åstadkomma dessa utifrån den uppsättning som redan finns, något som tar längre tid än om instruktionerna hade varit färdiga från början. Windows 95 och 98 har varit gjorda för CISC-processorerna medan Windows NT gjordes för RISC-processorerna. Mac OS 7 gjordes för CISC, medan Mac OS 8/9/X alla är gjorda för RISC. Intels processorer utnyttjade CISC-tekniken fram till lanseringen av Pentium Pro-processorn, som var en hybrid mellan CISC och RISC. Motorola bytte i och med Power PC-processorn till RISC-tekniken, vilket blev uppmärksammat och omdebatterat. Dagens processorer utnyttjar lite från båda teknologierna och det går därför inte att säga om de är av CISC eller RISC-typ. Nackdelarna med CISC-tekniken, t.ex dess relativa långsamhet, har förbättrats i och med att själva hårdvaran blivit oerhört mycket snabbare. Baksidorna med RISC, bl.a sårbarheten för ovanliga instruktioner och behovet av stort internminne, har också åtgärdats med en större uppsättning grundinstruktioner och med maffiga cacheminnen som understöd. Ytterligare en generell förbättring är att man numera har processorer som klarar fler uppgifter samtidigt. 386:an hade en 32-bitars buss, vilket gjorde den mycket snabb med den tidens mått. 32 samtidiga arbetsuppgifter blev sedan standard fram till Pentium Pro, som utnyttjade 64 bitar. Denna bussbredd hade även Pentium III som lanserades 1999. En utökning till 128 bitars buss skulle visserligen innebära mycket snabbare processorer men samtidigt skulle gamla program förmodligen inte gå att köra i de nya datorerna. Detta är det ständiga dilemmat hårdvarutillverkarna har att brottas med. Med ett lite finare ord heter det bakåtkompatibilitet. I stället för att byta teknologi behåller man de gamla processorerna och satsar istället på att öka processorernas klockfrekvens. Detta gör dem dessvärre varmare, vilket kräver starkare fläktar, alltså mer kylning. Därmed drar datorn också mer ström. Dessa omständigheter blir problematiska i framförallt bärbara datorer och handdatorer. Man försöker också sätta in flera processorer i datorn, utan att för den skull behöva byta teknologi. Operativsystemen klarar ändå inte alltid detta, då de är gjorda för att arbeta mot en enda processor. Man brukar försöka lösa detta genom att ha processorer på särskilda dotterkort. De flesta grafikkort fungerar t.ex så. I dagens datorer finns normalt en särskild processor (eller del av en processor) som bara beräknar decimaltal. Matteprocessorerna, eller flyttalsprocessorer som de också kallas, har alltså som enda uppgift att utifrån det binära talsystemet beräkna olika decimaltal, en uppgift som kräver mycket arbete. Decimaltal är ju t.ex inte alltid jämna, utan kan ha ett oändligt antal decimaler, medan binära tal alltid är "jämna". Detta innebär att processorn kan fortsätta på samma tal i en oändlighet. För att undvika detta använder man ofta "flytande decimalpunkter", d.v.s. ett reellt (jämnt) tal gånger ett annat tal upphöjt till ytterligare ett tal. Resultatet blir detsamma men uträkningen är ändlig. På så vis har namnet flyttalsprocessorer uppstått. Förutom att byta teknologi, öka klockfrekvensen och låta flera processorer samverka, finns många andra sätt att öka datorns snabbhet. man kan t.ex sätta in mer RAM-minne eller mer cacheminne. Man kan också öka moderkortets bussbredd. Detta är normalt ingenting som man som privatperson gör, utan något som datortillverkarna har att fundera över. 3. Digital konstruktionDet som gör att processorn går att använda till så många olika saker är att den utgör ett komplext system som går att programmera. Fördelen med programmerbara kretsar är naturligtvis att det är lättare att ändra i programmet än att löda om i hårdvarans kretsar. Kretsar som är programmerbara och kan användas i många olika tillämpningar kallar man för "General Purpose"-kretsar, medan sådana som är tillverkade för att utföra en enda uppgift kallas "Special Purpose"-kretsar. Programmerbara kretsar går ibland även under beteckningen PLD (Programable Logic Devices), eller någon liknande form t.ex PLA eller PAL (Programable Logic Array), PLS (PL Sequencer) o.s.v. Principen bakom programmerbara kretsar är att man använder ett grindnät som sitter på ett enda chip. Grindnätet kan t.ex programmeras som ett PROM. Processorn i en PC består av en sådan förprogrammerad matris, bestående av miljontals grindar. De olika programmen i datorn, t.ex BIOS och operativsystemet använder sedan dessa grindar för att utföra olika sorters uträkningar.
De kan även kombineras med varandra på olika sätt t.ex med hjälp av OCH-grindar, som bilden visar. Beroende på hur insignalerna ser ut levereras utsignaler. Komplexiteten och arbetskapaciteten hos processorn bestäms av grindnätets storlek, grindarnas beskaffenhet, hur stort minne som kan anslutas, vilka arbetsuppgifter den skall utföra, o.s.v. En processor i en PC består inte av ett enda grindnät, utan av flera. I själva verket är en sådan processor ett komplext system av olika enheter. På sidan Så fungerar datorn angav jag tre sådana : styrenheten, den beräknande enheten, samt minnet. Vill man veta mer i detalj hur en processor ser ut måste man egentligen betrakta en specifik processortyp. Processorer ser nämligen olika ut beroende på fabrikat och generation. Generellt sett gäller dock att det alltid finns de tre enheterna ovan. Styrenheten kan beskrivas som en instruktionshanterare som tar emot och undersöker inkommande data, räknar ut hur lång den är samt bearbetar den genom att aktivera relevanta delar av processorn. Styrenheten styr alltså data och ser till att rätt delar av processorn behandlar den. Den aritmetiska enheten har som huvuduppgift att beräkna de instruktioner den får skickad till sig. Beräkningen sker antingen via de fyra räknesätten och konstruerar om dem, eller med logiska operationer t.ex AND eller OR. Andra uppgifter är att jämföra tal för att se om de är identiska eller avgöra vilket som är störst eller minst. Det jag tidigare kallade minnet brukar också kallas register, med några undantag. Register är ett slags minne i processorn men är inget cache-minne. Att använda ett register är ungefär som att ha olika verktyg liggande på arbetsbänken. Cache-minnet är då som att ha verktygen i en låda på arbetsbänken. Registren är alltså snabbare än cacheminnet och dagens processorer använder ofta registren för att mellanlagra data istället för att lagra dem i cachen. Ett av registren kan kallas för programräknare och innehåller adresser eller turordningen för alla instruktioner, både de som behandlas och de som ligger lagrade. Programräknaren ser alltså till att instruktionerna behandlas i rätt ordning. Statusregistrets uppgift är då att se till att denna arbetsgång fungerar och att instruktionerna levereras i rätt ordning och i rätt mängd. Det finns även register som talar om hur en instruktion skall bearbetas, t.ex om den skall beräknas med AND eller OR, läggas till eller dras ifrån. Ibland räcker inte registren till för att lagra all information och då måste processorn lägga undan den i minnet. Detta är ungefär som när man måste ställa undan sina verktyg eftersom arbetsbänken inte räcker till. För att lagra informationen använder processorn olika stackar. En stack är alltså en plats i minnet med en viss adress. Stackar fungerar enligt sist-in-först-ut så att den data som lagrats kortast tid också behandlas först. Hur processorn använder stackar, adresserar de olika instruktionerna och avkodar desamma är ingenting jag kan ta upp här. Ämnet är helt enkelt för stort och kräver för mycket tid och plats för att bli någorlunda begripligt. Jag rekommenderar dig att läsa någon bok i ämnet t.ex Peter Nortons Allt om din PC som brukar släppas i nya upplagor med jämna mellanrum. Intel och de andra processortillverkarna har även skolor online som kan vara värda ett besök. Det finns även litteratur för gymnasiets kurser i digitalteknik som kan vara värda en genomläsning. |