Centralprocessor

Synnerligen intressant om Centralprocessor


Processor

En processor, Central Processing Unit (engelsk initialism CPU), även kallad centralprocessor eller huvudprocessor, är enheten som exekverar (utför) program i en dator, genom att från primärminnet läsa in programmets maskininstruktioner till processorns instruktionsregister, och därefter utföra begärda operationer som beräkningar och datahantering. Processortermen har använts inom datorindustrin åtminstone sedan början av 1960-talet. Processorer finns i ett stort antal varianter och återfinns i moderna maskiner och apparater, från bilar till kaffebryggare. I dagligt tal avses ofta den typen av processor som sitter i en persondator. Det finns två olika typer av processorarkitekturer: RISC och CISC. RISC står för engelskans Reduced Instruction Set Computing och CISC står för Complex Instruction Set Computing. En processor av typen RISC är konstruerad för att klara av enkla operationer väldigt snabbt. CISC däremot är konstruerad för att kunna göra komplicerade operationer men inte nödvändigtvis särskilt snabbt jämfört med RISC. Utvecklingen har sedan gjort så att dessa två varianter har lånat många tekniker från varandra. Dagens processorer kan inte med lätthet klassificeras i endera gruppen. En viktig del i en processor är ALU:n (Arithmetic Logic Unit), en enhet som utför logiska och enklare aritmetiska operationer såsom addition och subtraktion. För beräkningar med flyttal krävs antingen en följd av enkla instruktioner eller en flyttalsprocessor. Den var ursprungligen en extra krets men ingår numera som standard i moderna processorer för PC-marknaden. Processorer är idag uppbyggda av drygt en miljard transistorer på en yta av ett par cm². Antalet transistorer man kan få in på ett chip har hittills ökat exponentiellt enligt Moores lag. Merparten av dagens datorer är von Neuman-datorer. Den grundläggande funktionen för de flesta processorer, oavsett vilken fysisk form de har, är att utföra en sekvens av lagrade instruktioner, som kallas för program. Programmet representeras av en serie tal som hålls i någon form av datorminne. Processorer arbetar i två- eller tretakt: hämta, adressberäkna och utföra. Det sätt en processor representerar tal är ett designval som påverkar de mest grundläggande metoderna för hur den fungerar. Vissa tidiga digitala datorer använde en elektrisk modell av det vanliga decimala talsystemet (med basen tio) att representera tal internt. Några andra datorer har använt mer exotiska siffersystem som den ternära (med basen tre). Nästan alla moderna processorer representerar tal i binär form (med basen två), där varje siffra representeras av en ungefärlig värdering av två fysiska storheter, som en "hög" eller "låg" spänning. De flesta processorer, och faktiskt även de flesta sekventiellt logiska enheterna, är av synkronkaraktär. De är alltså utformade och fungerar på antaganden om en synkronsignal. Denna signal, känd som klocksignal, sker vanligen i form av en periodisk fyrkantsvåg. Genom att beräkna den maximala tiden som elektriska signaler kan röra sig i olika grenar av en CPU:s många kretsar, kan formgivarna välja en lämplig period för klocksignalen. Införandet av mikroprocessorn på 1970-talet påverkade i hög grad utformningen och funktionssättet hos bearbetningsenheten (processorer) i allmänhet. Sedan introduktionen 1970 av den första kommersiellt tillgängliga mikroprocessorn Intel 4004 som använder 4-bit och den första utbredda mikroprocessorn Intel 8080 som använder 8-bit och som släpptes 1974, och den första riktigt prisvärda processorn MOS 6502 8-bit som släpptes 1975 för 25 dollar vid en tidpunkt då konkurrenter som Motorola 6800 och Intel 8080 såldes för 179 dollar som snabbt sänktes till 69 dollar vilket legitimiserade MOS 6502 som började sälja i hundratals exemplar. Sedan dessa introduktioner har denna typ av processorer nästan helt gått om alla andra konstruktionssätt. 16-bit-processorer introducerades 1975 med HP BPC. Följande är en lista över betydande arkitekturer.

Programspråk

Programspråk, eller programmeringsspråk, är ett språk som en människa använder för att skapa datorprogram. Datorers grundspråk kallas maskinkod och består av ettor och nollor, som datorns centralprocessor (eller motsvarande enhet i kringutrustning) direkt kan tolka. Eftersom programmering på den nivån är svår och tidskrävande, och lätt leder till fel, har man tagit fram olika sorters programspråk, där man använder kodord för att beskriva vad datorn skall göra och som tillåter att text, siffror och räkneoperationer skrivs in ungefär som i kommunikation mellan människor. Ett skilt datorprogram används sedan för att översätta denna mer läsbara kod till maskinkod. Datorprogrammets källkod, som skrivits för hand, måste alltså i de flesta fall översättas till maskinkod innan programmet skall köras. För assembler (som ganska direkt motsvarar maskinkoden, men med kodord, variabelnamn och en del andra abstraktioner) görs översättningen med en assemblator. För högnivåspråk använder man en kompilator (en del kompilatorer skapar assemblerkod som ett mellansteg). Maskinkoden lagras sedan i en exekverbar binärfil. Vissa programspråk är inte avsedda att kompileras: ett interpreterat språk, tolkas (interpreteras) under själva exekveringen (när man "kör" programmet). Det finns även språk som kan kompileras allteftersom programmet körs, med hjälp av en JIT-kompilator, och språk som kompileras till en snabbtolkad bytekod. En del programspråk är konstruerade för att ganska noga följa datorernas typiska sätt att arbeta. Nyttan är framförallt att programmeraren då har bättre kontroll över den maskinkod som kommer att skapas då programmet kompileras. Sådana språk kallas för maskin- eller hårdvarunära språk eller lågnivåspråk, med assembler som typexemplet. Motsatsen är högnivåspråk. Den mesta källkoden skrivs med högnivåspråk. Man brukar även skilja mellan funktionella språk och objektorienterade språk. Ytterligare en uppdelning är mellan imperativa språk och deklarativa språk. Det har skapats ett otal programmeringsspråk. Här är en alfabetisk lista på en del av dem. 99 Bottles of Beer en lista på olika programspråk med exempel på hur koden ser ut. Webbjobb.io – Webbjobb 2014 i siffror Sammanställning över de populäraste programmeringsspråken som används i Sverige 2014.

Datapoint

Datapoint var ett företag baserat i Texas USA som av många anses vara det företag som lanserade den första PCn. Datapoint presenterade i början av 1970-talet en s.k. Intelligent Terminal med produktnamnet Datapoint 2200. Den hade en 7 tums bildskärm och var i princip vad vi idag skulle kalla en mycket rudimentär PC eller bordsdator. Den hade centralprocessor med 1 MHz klockfrekvens, 4KB arbetsminne (icke-flyktigt datorminne) och ett massminne bestående av 2 st kassettbandspelare. För extern anslutning fanns terminalanslutning RS-232 (för modem), skrivaranslutning av typ Centronics samt extern bussingång. Tangentbordet var inbyggt. Våren 1972 importerades den första Datapoint 2200 till Sverige av företaget Scantele AB.

Primärminne

Primärminne eller arbetsminne (ibland, av historiska skäl, internminne) är minne som en dators centralprocessor kan använda (mer eller mindre) direkt, i motsats till sekundärminne, vars innehåll först måste laddas in i primärminnet. Primärminnet används för att lagra datorprogram och olika former av data när programmen används. Beskrivningen ovan gäller strängt taget inte hur vanliga moderna datorer fungerar, men nog hur minnesanvändningen ser ut ur maskinspråkssynvinkel. Moderna centralprocessorer har cache i flera nivåer, där data och instruktioner ur primärminnet lagras för att snabbt kunna användas på nytt, utan att detta explicit styrs i programkoden. Beskrivningen tar inte heller hänsyn till registren i centralprocessorn. I praktiken är primärminnet vanligen flyktigt: dess innehåll försvinner då datorn stängs av. Den andra huvudsakliga typen av skrivbart datorminne är mer permanent och kallas därför lagringsminne (historiskt sekundärminne eller ibland externminne), efter sin användning. Minneskapacitet mäts normalt i bytes tillsammans med binärprefix med basen 2 (kibibyte, mibibyte, gibibyte), trots att man historiskt använt namnet på motsvarande SI-prefix (kilobyte, megabyte, gigabyte). Minnestekniken har genomgått flera stora teknikskiften sedan datorns barndom under tidigt 1940-tal. De tekniker som används idag (integrerade dynamiska och/eller statiska minnen) har dock i sina grundprinciper förblivit oförändrade sedan mikrodatorn (och persondatorn) introducerades under 1970-talet. Däremot har successiva generationer av minneskretsar förfinats rörande intern implementeringsteknik och/eller elektriskt gränssnitt. Själva minneskapaciteten har också ökat enormt sedan 1970-talet, tack vare att transistor- och linjedimensioner i kretsarna kunnat reduceras ett flertal gånger per decennium. Hemdatorer i början på 1980-talet hade vanligtvis ett primärminne på ett fåtal kilobyte, upp till 64 KB, medan den ursprungliga IBM PC hade mellan 16 och 256 KB. År 2012 är nytillverkade persondatorer vanligtvis utrustade med mellan 1024 och 8192 MB. De har alltså tusentals gånger så stort primärminne som IBM PC (även PC-XT, PC-AT) och en miljon gånger så stort primärminne som merparten tidiga hemdatorer (bara grafikkortet i en persondator kan idag vara utrustat med mellan 128 och 4096 MB). Idag har de flesta datorer inbyggda hårddiskar. Tidigare var lagringsmedia ofta inte inbyggt i själva datorn, och därför använder man ibland av historiska skäl begreppet internminne om primärminne. Primärminne är vanligtvis flyktigt läs - och skrivbart minne (RWM) av RAM-typ. Att minnet är flyktigt innebär att data som lagrats i minnet försvinner när strömmen slås av. Vissa typer av RAM, såsom MRAM är icke-flyktigt (jämför ROM, EEPROM och hårddisk). "RAM" står för Random Access Memory och Random access syftar på att man direkt kan adressera enskilda minnespositioner (i regel med ungefär samma åtkomsttid oavsett vilken del av minnet som adresseras). Detta ska jämföras med till exempel magnetband, som måste genomsökas sekventiellt, och hårddiskar och andra skivminnen, vars sektorer kan nås direkt men måste läsas i sin helhet för att nå en enskild adress inom den. En minnesposition kan vara olika stor. I många arkitekturer kan man adressera minnet byte för byte, men det förekommer också att man måste adressera minnet ordvis. Det finns också RAM-minnen som inte går att använda som primärminne, oftast för att det är för långsamt eller inte är skrivbart (minne för programkod behöver dock inte vara skrivbart, annat än till den del programmet innehåller självmodifierande kod eller tabeller över variabla minnespositioner). DRAM (dynamiskt RAM) VRAM (video-RAM). SDRAM (Synchronous Dynamic RAM) DDR SDRAM (Double Data Rate SDRAM). People of red personROM, EEPROM (programmerbart minne). WORM (write once, read many). Svenska datatermgruppen: datorminnen—teknisk förklaring.


Centralprocessor