Innanför skalet på centralenheten: Mikroprogrammering

Relevanta dokument
Digitalteknik F6. Några sammansatta digitala komponenter och lite designmetodik. Digitalteknik F6 bild 1

Hambley avsnitt 12.7 (även 7.3 för den som vill läsa lite mer om grindar)

Hambley avsnitt 12.7 (även 7.3 för den som vill läsa lite mer om grindar)

Föreläsning 10: Kombinatorik

Borel-Cantellis sats och stora talens lag

Tentamen i Elektronik, ESS010, del 2 den 14 dec 2009 klockan 14:00 19:00.

Digital signalbehandling Alternativa sätt att se på faltning

MS-A0409 Grundkurs i diskret matematik Sammanfattning, del I

c n x n, där c 0, c 1, c 2,... är givna (reella eller n=0 c n x n n=0 absolutkonvergent om x < R divergent om x > R n n lim = 1 R.

Egna funktioner. Vad är sin? sin är namnet på en av många inbyggda funktioner i Ada (och den återfinns i paketet Ada.Numerics.Elementary_Functions)

Genomsnittligt sökdjup i binära sökträd

Vad är det okända som efterfrågas? Vilka data är givna? Vilka är villkoren?

Lösningar och kommentarer till uppgifter i 1.1

Duo HOME Duo OFFICE. Programmerings manual SE

REGULJÄRA SPRÅK (8p + 6p) 1. DFA och reguljära uttryck (6 p) Problem. För följande NFA över alfabetet {0,1}:

Datorövning 2 Fördelningar inom säkerhetsanalys

RESTARITMETIKER. Avsnitt 4. När man adderar eller multiplicerar två tal som t ex

Induktion LCB Rekursion och induktion; enkla fall. Ersätter Grimaldi 4.1

Kompletterande kurslitteratur om serier

Föreläsning G04: Surveymetodik

Operativsystem - Baklås

SANNOLIKHETER. Exempel. ( Tärningskast) Vi har sex möjliga utfall 1, 2, 3, 4, 5 och 6. Därför är utfallsrummet Ω = {1, 2, 3, 4, 5,6}.

ENDIMENSIONELL ANALYS B1 FÖRELÄSNING VI. Föreläsning VI. Mikael P. Sundqvist

Systemdesign fortsättningskurs

101. och sista termen 1

Linjär Algebra (lp 1, 2016) Lösningar till skrivuppgiften Julia Brandes

Statistisk analys. Vilka slutsatser kan dras om populationen med resultatet i stickprovet som grund? Hur säkra uttalande kan göras om resultatet?

Ekvationen (ekv1) kan beskriva en s.k. stationär tillstånd (steady-state) för en fysikalisk process.

Visst kan man faktorisera x 4 + 1

Uppgifter 3: Talföljder och induktionsbevis

Tommy Färnqvist, IDA, Linköpings universitet

Digital signalbehandling Fönsterfunktioner

Introduktion till statistik för statsvetare

Sannolikheten. met. A 3 = {2, 4, 6 }, 1 av 11

Innehåll Grafräknaren och diskret matematik...1 Vad handlar diskret matematik om?...1 Permutationer och kombinationer...3 Något om heltalsräkning...

H1009, Introduktionskurs i matematik Armin Halilovic POLYNOM, POLYNOMDIVISION, ALGEBRAISKA EKVATIONER, PARTIALBRÅKSUPPDELNING. vara ett polynom där a

1. BERÄKNING AV GRÄNSVÄRDEN ( då x 0 ) MED HJÄLP AV MACLAURINUTVECKLING. n x

Design mönster. n n n n n n. Command Active object Template method Strategy Facade Mediator

vara ett polynom där a 0, då kallas n för polynomets grad och ibland betecknas n grad( P(

MS-A0409 Grundkurs i diskret matematik I

Stat. teori gk, ht 2006, JW F13 HYPOTESPRÖVNING (NCT ) Ordlista till NCT

Anmärkning: I några böcker använder man följande beteckning ]a,b[, [a,b[ och ]a,b] för (a,b), [a,b) och (a,b].

Föreläsningsanteckningar 2. Mikroprogrammering I

Räkning med potensserier

Vikingen FutureLook. Delphi Finansanalys AB

Korrelationens betydelse vid GUM-analyser

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

2. Konfidensintervall för skillnaden mellan två proportioner.

= (1 1) + (1 1) + (1 1) +... = = 0

Resultatet av kryssprodukten i exempel 2.9 ska vara följande: Det vill säga att lika med tecknet ska bytas mot ett plustecken.

DEL I. Matematiska Institutionen KTH

Datastrukturer och algoritmer

Cartesisk produkt. Multiplikationsprincipen Ï Ï Ï

7 Sjunde lektionen. 7.1 Digitala filter

Trigonometriska polynom

Handbok i materialstyrning - Del F Prognostisering

Remiss Remissvar lämnas i kolumnen Tillstyrkes term och Tillstyrkes def(inition) och eventuella synpunkter skrivs i kolumnen Synpunkter.

Induktion och Binomialsatsen. Vi fortsätter att visa hur matematiska påståenden bevisas med induktion.

Geometriska summor. Aritmetiska summor. Aritmetiska talföljder kallar vi talföljder som. Geometriska talföljder kallar vi talföljder som

Analys av algoritmer. Beräkningsbar/hanterbar. Stora Ordo. O(definition) Datastrukturer och algoritmer. Varför analysera algoritmer?

Konsoliderad version av. Styrelsens för ackreditering och teknisk kontroll föreskrifter (STAFS 1993:18) om EEG-märkning av färdigförpackade varor

Uppsala Universitet Matematiska Institutionen Bo Styf. Genomgånget på föreläsningarna Föreläsning 26, 9/2 2011: y + ay + by = h(x)

Föreskrift. om publicering av nyckeltal för elnätsverksamheten. Utfärdad i Helsingfors den 2. december 2005

AMF. I princip är det bara möjligt att flytta privat sparande och sparande där avtalet tecknats efter den 2 februari i fjol.

Datorövning 2 Fördelningar inom säkerhetsanalys

TENTAMEN I MATEMATISK STATISTIK Datum: 13 mars 08

Försöket med trängselskatt

Databaser - Design och programmering. Programutveckling. Programdesign, databasdesign. Kravspecifikation. ER-modellen. Begrepps-modellering

Databaser - Design och programmering. Databasdesign. Kravspecifikation. Begrepps-modellering. Design processen. ER-modellering

Jag läser kursen på. Halvfart Helfart

Samtal med Karl-Erik Nilsson

Universitetet: ER-diagram e-namn

Tentamen 19 mars, 8:00 12:00, Q22, Q26

. Mängden av alla möjliga tillstånd E k kallas tillståndsrummet.

Frasstrukturgrammatik

Mätbar vetskap om nuläget och tydliga målbilder om framtiden. Genomför en INDICATOR självvärdering och nulägesanalys inom tre veckor

Webprogrammering och databaser. Begrepps-modellering. Exempel: universitetsstudier Kravspec. ER-modellen. Exempel: kravspec forts:

Repetition: Enkel sampling. Systemplanering VT11. Repetition: Enkel sampling. Repetition: Enkel sampling

Av Henrik 01denburg\ Radikaler. För att lösa ekv.: x n = a (n helt, pos. tal) konstruerar man kurvan

Armin Halilovic: EXTRA ÖVNINGAR

E F. pn-övergång. Ferminivåns temperaturberoende i n-dopade halvledare. egen ledning. störledning

NEWTON-RAPHSONS METOD (en metod för numerisk lösning av ekvationer)

b 1 och har för olika värden på den reella konstanten a.

Inledande kombinatorik LCB 2001

x 1 x 2 x 3 x 4 x 5 x 6 HL Z x x x

Funktionsteori Datorlaboration 1

1. Hur gammalt är ditt barn?

1. Test av anpassning.

Tolkning av sannolikhet. Statistikens grunder, 15p dagtid. Lite mängdlära. Lite mängdlära, forts. Frekventistisk n A /n P(A) då n

Föreläsning F3 Patrik Eriksson 2000

1. Hur gammalt är ditt barn?

Sannolikhetslära. c 2015 Eric Järpe Högskolan i Halmstad

Befolkning per födelseland Reviderad metod vid framskrivningar. Version: 2

1. Hur gammalt är ditt barn?

Andra ordningens lineära differensekvationer

Applikationen kan endast användas av enskilda användare med förtroenderapportering.

god stiftelsepraxis

Höftledsdysplasi hos dansk-svensk gårdshund - Exempel på tavlan

Föreläsningar 7,8 sept 24, sept 26 v 39). delvis DD Chapter 6.

Fourierserien. fortsättning. Ortogonalitetsrelationerna och Parsevals formel. f HtL g HtL t, där T W ã 2 p, PARSEVALS FORMEL

Transkript:

Iaför skalet på cetralehete: Mikroprogrammerig 1997 Stefa Gustavso, ITN-LiTH Lätt uppdaterat 2004-09-06-1 -

1. Iledig Det fis måga olika abstraktiosivåer ma ka välja att lägga sig på är ma skall förklara hur datorer fugerar. De flesta mäiskor som har med datorer att göra aväder bara färdigskriva program och behöver ite käa till ågra tekiska detaljer alls om dators fuktio, lika litet som ma behöver veta ågot om tädsystemet eller trasmissioe i e bil för att kua köra de. De som skriver program behöver oftast ha ett visst hum om det grudläggade fuktiossättet hos e dator, me i de flesta fall räcker det med ett mycket allmät begrepp på e hög abstraktiosivå, likade de klassiska bilde i figur 1. Mie Cetralehet I- och uteheter Program Register Data Figur 1: E klassisk metal bild av e dator Programmerare som skriver operativsystem och drivrutier för i- och uteheter rör sig på e ivå betydligt ärmare maskivara i datorsystemet och behöver veta åtmistoe vissa detaljer om cetralehetes arkitektur och miets orgaisatio. Det fis dock fortfarade ige egetlig aledig es för operativsystemsprogrammerare att träga i iaför skalet på cetralehete, aalysera dess arkitektur i i mista detalj och förstå exakt hur de fugerar. Såda kuskap är strägt taget av direkt praktisk ytta edast för de som vill kostruera e cetralehet. Varför skall ma då bry sig om sådaa itrikata detaljer i e grudkurs i datortekik? Aledigara är flera. Först och främst är det just e grudkurs, och som såda skall de förklara grudera för e dators fuktio grudligt, ite ytligt, och ite förtiga ågot väsetligt. E viss kuskap om cetralehetes ire bör rimlige igå äve i e bred överblick över ämet, åtmistoe i e kurs på högskoleivå. Dessutom är det faktiskt ite e så ovalig syssla att kostruera cetraleheter som det först ka låta. Måga digitala system i dag byggs krig ågot slags mikroprogrammerad styrehet som företer stora likheter med e mikroprocessor, på grud av att ett sådat system blir mycket geerellt och därför också lätt att bygga ut och ädra. Det fis också ret veteskapliga och igejörsmässiga skäl för att äma ågot om mikroprogrammerig. I och med detta kapitel kyts datortekike ihop med digitaltekike. Med ett gott teoretiskt grepp om helhete frå de lägsta ivå till de högsta är ma betydligt bättre rustad för att lösa problem ä om ma bara har hadbokskuskaper iom ett smalare område. Slutlige ligger det också, om uttrycket tillåts, e itellektuell tillfredsställelse i det hela. Om ma ka ågot om digitaltekik, har skaffat sig ett hum om hur maskiära programmerig går till och dessutom förstått vad mikroprogrammerig går ut på ka ma faktiskt säga att ma verklige vet hur e dator egetlige fugerar. - 2 -

2. Kompoeter E cetralehet är igetig aat ä ett sykrot digitalt sekvesät. Förvisso är det ett mycket komplicerat sekvesät, me det är lyckligtvis uppbyggt av ett atal ekla grudelemet som var för sig gaska lätt låter sig beskrivas helt i termer av ekla digitala byggstear som vippor och gridar. Vi kommer ite att beröra alla elemet här, me vi visar ågra ekla exempel. 2.1. Register Ett register är kaske det valigaste byggblocket i e cetralehet. I ett register lagras ett atal biära bitar. Registret ka laddas frå ett atal dataigågar, och ma skall kua läsa av iehållet i registret på ett lika stort atal datautgågar. Ma ka om ma så vill kalla detta för skrivig respektive läsig i registret. Alla idividuella bitar i ett ekelt register som bara skall lagra data har exakt samma fuktio. Vi öjer oss därför med att visa ett sätt att med e D-vippa och e multiplexer kostruera ett register som ka lagra de blygsamma datamägde e bit. Kopplige visas i figur 2. Register med flera bitar byggs upp med ett atal sådaa koppligar där ma kopplar samma de eskilda Ladda - igågara med varadra, och klockigågara CLK med varadra. I 0 1 CLK D Q Ut Ladda Figur 2: Ett 1-bits register E symbol som döljer de oväsetliga detaljera i registrets uppbyggad och i stället symboliserar dess fuktio visas i figur 3. Vi ka aväda samma allmäa symbol för register med godtyckligt atal bitar, förutsatt att vi håller reda på hur måga dataledigar vi butat ihop i pilara som symboliserar i- och utgågar. I Ladda Ut Figur 3: Geeraliserad symbol för ett register med bitar Förutom läsig och skrivig ka ma täka sig adra fuktioer som är bra att ha i ett register, till exempel e ollställigssigal eller e sigal för att räka upp eller er iehållet med ett. I så fall får registret karaktäre av e biär räkare, och det blir självfallet e hel del mer kombiatoriska fuktioer krig vippora i ett sådat register ä i det ekla exemplet ova. I e allmä fuktioell symbol för registret ka vi däremot struta i exakt hur detta skulle realiseras. Vi öjer oss med att rita i ågra extra kotrollsigaler och förklara vilke iverka dessa sigaler - 3 -

har, som till exempel i figur 4, där vi gett kotrollsigalera am efter si fuktio: LADDA laddar i ett värde frå igågara, NOLLSTÄLL ollställer registret, +1 räkar upp iehållet med ett och -1 räkar ed iehåller med ett. I Ladda Nollställ Ut +1-1 Figur 4: Register med extra kotrollsigaler för upp- och edräkig samt ollställig Ett register är e sykro digital kompoet, och alla förädrigar av registrets iehåll sker alltså på bestämda tidpukter som bestäms av e klocksigal. Vilke förädrig som skall äga rum bestäms av vilka kotrollsigaler som är aktiverade vid klockflake. Laddig av data till ett register, ollställig, upp- eller edräkig eller vad det u ka vara sker alltså ite omedelbart i och med aktiverige av kotrollsigale ifråga, uta först vid ästföljade klockflak. Det dröjer alltså ett klockitervall ia registrets ya iehåll fis tillgägligt för läsig på datautgågara. Detta är viktigt att komma ihåg, me det ka vara lätt att glömma, speciellt som vi har ratioaliserat bort klocksigale i de geeraliserade symbole för registret. Oftast har ett register datautgågar som ormalt är fråkopplade, så kallade three-state-utgågar vilka beskrivs i ästa stycke, och därför också e extra kotrollsigal för att mata ut data, som visas i figur 5. Ett sådat register ka fysiskt kostrueras geom att koppla i e three-state-buffert som de som visas i figur 6 på utgåge av kopplige i figur 2. Ladda Mata ut I Ut Figur 5: Register med three-state-utgåg och e extra kotrollsigal för att mata ut data 2.2. Three-state-utgågar Oftast skall datautgågara frå ett register kua aslutas till e buss, e samlig dataledigar där flera adra eheter också skall kua skicka data, och ma vill därför att utgågara skall vara bortkopplade är ma ite uttrycklige läser i registret. E såda bortkopplig av datautgågara ka göras med e så kallad three-state-utgåg, som förutom de valiga logiska ivåera 0 och 1 dessutom ka ata ett så kallat högimpedivt läge, där utgåge elektriskt sett ka betraktas som e oaslute ledig. Pricipe för e three-state-utgåg visas i figur 6. När de övre trasistor är ledade atar utgåge hög ivå ( 1 ), och är de udre trasistor leder ligger utgåge på låg ivå ( 0 ). Om igedera av trasistorera leder är utgåge varke hög eller låg, uta i ett särskilt högimpedivt tillståd, ofta beteckat med Z. (Det fjärde möjliga tillstådet, att båda trasistorera leder samtidigt, får ite iträffa eftersom det då blir kortslutig i kretse.) Flera three-state-utgågar ka kopplas till e och samma bussledig, och geom att låta alla utom e utgåg stå i högimpedivt läge ka ma välja frå vilke utgåg ma vill läsa data. Detta är ågot som aväds mycket ofta i modera digitala koppligar. - 4 -

A +U G B Ut I Ut 0 Figur 6: Three-state-utgåges pricip och symbole för e three-state-buffert Fuktiostabeller för de två koppligara i figur 6 visas i tabell 7. A B Ut G I Ut 0 0 Z 0 0 Z 0 1 0 0 1 Z 1 0 1 1 0 0 1 1 Otillåtet! 1 1 1 Tabell 7: Fuktiostabeller för koppligara i figur 6 2.3. Läsmie (ROM) Det uppstår ofta behov av komplicerade kombiatoriska fuktioer i digitala system, och det ire av e mikroprocessor är iget udatag. Om e kombiatorisk fuktio ite ekelt låter sig realiseras med gridar ka ett läsmie (read-oly memory, ROM) vara mycket praktiskt att ta till. Ett läsmie ka realisera e godtycklig kombiatorisk fuktio geom att helt ekelt programmeras med fuktiostabelle för fuktioe ifråga. E föreklad symbol för ett läsmie med adressledigar och m dataledigar, som följdaktlige iehåller 2 ord om m bitar, visas i figur 8. m Figur 8: Läsmie (ROM) med adressledigar och m dataledigar Ett läsmie är, precis som de gridar det ka ersätta, ett kombiatoriskt ät uta vippor. Till skillad frå ett register är läsmiet därför e asykro kompoet som ite har ågo klocksigal. Förädrigar av utsigalera sker så sart isigalera byter värde. Det tar dock alltid e viss tid ia utgågaras värde stabiliserats. Fördröjige brukar kallas för miets accesstid eller åtkomsttid. 2.4. Läs- och skrivbart mie (RWM, äve kallat RAM) Ett register ka lagra estaka biära ord om ågra få bitar. För att kua lagra större mägder data aväder ma ett läs- och skrivbart mie (read/write memory, RWM eller RAM som det ofta kallas). De adress som utpekas av adressledigara ka atige läsas eller skrivas, styrt av yttre kotrollsigaler. E symbol för ett läs- och skrivbart mie visas i figur 9. Dataigågar och datautgågar är ofta kopplade till samma fysiska aslutigar på kapsel på ett RWM. I vilke riktig datatrasporte sker bestäms av e eller flera kotrollsigaler till miet. De eda - 5 -

förluste med e såda lösig är att ma ite samtidigt ka läsa och skriva i miet, me det är oftast ige allvarlig begräsig. Läs/Skriv m Figur 9: Läs- och skrivbart mie (RWM) med adressledigar och m dataledigar Äve ett skrivbart mie är e asykro kompoet. Läsig och skrivig av data sker omedelbart som svar på respektive kotrollsigaler. Data lagras visserlige ofta i vippor itert i kretse, me dessa vippor är ite sykroa, och ett RWM har därför ige klocksigal. 2.5. Aritmetisk och logisk ehet (ALU) Förutom att flytta data mella olika register och mie måste e dator aturligtvis kua maipulera data på olika sätt, till exempel geom att göra aritmetiska beräkigar eller bilda logiska fuktioer av data. De ehet som ombesörjer detta brukar beämas aritmetisk och logisk ehet (arithmetic/logic uit, ALU). De aritmetiska och logiska ehete ka sägas vara själva hjärtat (eller hjära) i e cetralehet. E aritmetisk och logisk ehet är ett komplicerat kombiatoriskt ät som ka realisera flera olika kombiatoriska fuktioer av ett atal biära bitar. E typisk ALU har två uppsättigar igågar och e uppsättig utgågar. I-och utgågara är lika måga bitar breda som dataregistre i cetralehete. På igågara skickar ma i två biära tal, varvid ma får ett tredje tal på utgågara som utgör e fuktio av dessa två tal. Vilke fuktio som skall realiseras bestäms av ett atal kotrollsigaler. E symbol för e mycket ekel ALU visas i figur 10. De fuktioer som ka realiseras av dea ALU geom att aktivera olika kotrollsigaler är additio, subtraktio, additio med ett, subtraktio med ett, bitvis AND, OR, XOR och NOT, samt kopierig av data frå edera igåge. Detta är e gaska ekel ALU, och i verklighete vill ma kaske ha ågot fler fuktioer. Vi kommer dock ite att förlora oss i detaljer krig exakt vilka fuktioer ma ka täkas behöva. Faktiskt skall vi i stället aväda e äu eklare ALU i exemple framöver. F = X+Y F = X-Y F = X+1 F = X-1 F = X F = Y X F Y F = X or Y F = X ad Y F = X xor Y F = ot X Figur 10: ALU med två igågar (X, Y), e utgåg (F) samt ågra exempel på fuktioer - 6 -

3. E ekel cetralehet För att förklara i detalj hur e cetralehet är uppbyggd kommer vi i det följade att bygga upp e ekel såda, edast med hjälp av de ova preseterade kompoetera. För att göra det ekelt för oss väljer vi att bygga e så kallad ackumulatormaski med edast ågra få itera register och e mycket ekel struktur i övrigt. Cetralehete kommer att byggas upp krig e eda iter buss, över vilke alla datatrasporter sker. Vi börjar med det mest cetrala, ämlige busse, de aritmetiska ehete, ackumulatorregistret och primärmiet. 3.1. Aritmetisk ehet (ALU) och ackumulatorregister (AR) Ackumulatorregistret AR skall ta emot resultatet frå alla beräkigar i cetralehete. Dataigåge på ackumulatorregistret kopplar vi därför till vår aritmetiska ehet ALU, som i vår cetralehet är av mycket ekelt slag och bara ka utföra fyra operatioer: ladda frå de ea igåge, ladda frå de adra igåge, addera tale på de båda igågara eller subtrahera tale på de båda igågara. E av igågara på ALU: kopplas till datautgågara på AR, och de adra till busse. Geom att välja edera av de fyra tillgägliga fuktioera i vår ALU ka vi på så sätt välja att atige ladda AR frå busse, addera eller subtrahera talet på busse till AR, eller behålla talet i AR geom att ladda AR frå sig självt. Vi väljer att ratioalisera bort e kotrollsigal geom att ata att om ige kotrollsigal är aktiverad laddas AR frå sig självt. 3.2. Primärmie (PM) och adressregister (ADR) Vi kopplar också i ett läs- och skrivbart mie som primärmie, PM, direkt på de itera databusse. För att kua hålla adresse till miet stabil meda vi läser och skriver data behövs dessutom ett adressregister, ADR, vars datautgåg i vårt fall är permaet aslutet till miets adressledigar. Vår kostruktio hittills visas i figur 11. Fyllda pilar i figure markerar permaet asluta datavägar, ofyllda pilar markerar datavägar som aktiveras av kotrollsigaler. Kotrollsigalera markeras i figure med e irigad siffra itill respektive pil. Sigalera 1, 2, 3, 4 och 14 styr datatrasporter hit och dit över busse, och sigalera 15, 16 och väljer öskad fuktio hos ALU:. (Siffrora kommer ite i ordigsföljd, och figure är tämlige gles och dåligt balaserad, me ha tålamod! När kostruktioe är klar kommer vi att ha e fullklottrad figur med totalt kotrollsigaler umrerade i e ågorluda logisk ordig.) Vi ka u täka oss hur vi skulle kua utföra e ekel databearbetig. Atag att vi har e adress i ADR och ett tal i AR. På adresse som pekas ut av ADR fis ett aat tal lagrat. Vi vill addera detta tal till AR och skriva tillbaka resultatet på samma adress. För att göra detta ka vi aväda oss av de olika kotrollsigalera. Först måste vi hämta talet ur miet och utföra själva additioe. Sigale 15 väljer additio i ALU, och sigale 4 väljer läsig i miet på de adress som pekas ut av ADR. Om vi sätter dessa båda kotrollbitar samtidigt till 1 och alla de övriga till 0 kommer AR efter ästa klockflak att iehålla summa av det tidigare iehållet i AR och talet som fas i miet. Seda skall vi skriva tillbaka talet i AR till miet ige. Detta ka vi ite göra uder samma klockitervall som vi utför additioe, eftersom iehållet i AR ite uppdateras förrä vid ästa klockflak. Dessutom är det fysiskt omöjligt att samtidigt både läsa och skriva till miet, så vi måste väta ett klockitervall på att additioe blir klar. Uder ästa klockitervall ka vi seda aktivera kotrollsigalera 14 och 3 tillsammas för att skriva iehållet i AR till miet. - 7 -

ADR 1 2 PM 3 4 15 16 Add Sub Load 14 AR Figur 11: Skelettet till e cetralehet Ett föreklat skrivsätt för de ova beskriva sekvese av aktiverigar av kotrollsigaler visas eda. Vi kommer att aväda detta skrivsätt i det följade. Sigaler Kommetar 4, 15 Läs i PM, addera till AR 14, 3 Skriv AR till PM 3.3. Mikroprogrammet och kotrollehete För att utföra de öskade operatioe skall vi alltså aktivera ett atal kotrollsigaler i e bestämd sekves. Dea sekves utgör i själva verket ett mycket primitivt program. Ett sådat här program på de lägsta täkbara digitaltekiska ivå brukar allmät kallas för mikroprogram. För att skicka ut e sekves av kotrollsigaler behöver vi ett autoomt sekvesät som matar ut dessa till övriga delar av cetralehete, samtidigt som det styr sig självt till öskad sekves. De ehet som ombesörjer detta i e cetralehet brukar kallas styrehet eller kotrollehet. Kotrollehete har ett stort atal utsigaler och måga tillståd, och för att göra det ågorluda ekelt att kostruera vår cetralehet realiserar vi detta sekvesät med ett läsmie, ROM, som vi ger amet mikroprogrammie, MM. Vi låter kotrollsigal motsvaras direkt av bit blad datautgågara frå MM. Varje ord i MM iehåller således lika måga bitar som vi har kotrollsigaler i cetralehete. Ett ord i MM kommer i det följade att kallas för e mikroistruktio. - 8 -

Eftersom vi ormalt vill skicka ut e förutbestämd lägre sekves av olika kombiatioer av kotrollsigaler adresserar vi MM med e räkare som vi kallar MPC (Micro Program Couter, mikroprogramräkare). För att kotrollehete skall kua styra sig själv låter vi dessutom två kotrollsigaler till dea räkare igå i mikroistruktiosordet: sigale 10 för uppräkig och sigale 11 för ollställig, som visas i figur 12. ADR 1 2 PM 3 4 10 11 +1 0 MPC MM 15 16 Add Sub Load 1 2... 14 AR Figur 12: Skelettet frå figur 11 plus e mikroprogrammerad kotrollehet med mikromie MM och mikroprogramräkare MPC Nu ka vi programmera i e öskad sekves av mikroistruktioer i MM. Atag att MPC är ollställd är vi startar kotrollehete. I de första klockcykel kommer då kotrollsigaler att aktiveras i elighet med miesiehållet på adress 0 i MM, vilket vi ka kalla för att mikroistruktio 0 utförs. Om mikroistruktio 0 u aktiverar kotrollsigale 10 geom att ha bit 10 ettställd kommer MPC dessutom att räkas upp vid ästa klockflak, och i ästa klockitervall kommer kotrollsigalera att aktiveras i elighet med iehållet på adress 1 i mikromiet - mikroistruktio 1 kommer att utföras. Så läge mikroistruktioera som utförs har bit 10 ettställd kommer MPC att räkas upp och mikroistruktioera att utföras i sekves e efter e. Förutom bit 10 ka aturligtvis flera adra bitar vara ettställda i e och samma mikroistruktio, och på detta sätt ka vi få vår styrehet att geerera e godtycklig sekves av kotrollsigaler till - 9 -

reste av cetralehete. För att utföra de uppgift som skisserades i föregåede stycke ka vi till exempel programmera i följade två mikroistruktioer i MM: Mikroadress Sigaler Kommetar 0 4, 15, 10 Läs i PM, addera till AR, räka upp MPC 1 14, 3 Skriv AR till PM Detta iebär ret kokret att ordet på adress 0 i MM har bitara 4, 15 och 10 ettställda och övriga bitar ollställda, samt att ordet på adress 1 har bitara 14 och 3 ettställda och reste ollställda. Vad vi skall göra med MPC i de sista mikroistruktioe beror på hur vi täker oss att exekverige skall fortsätta. Om vi skall fortsätta och göra mer i vårt program skall MPC räkas upp med ett och ytterligare mikroistruktioer skall programmeras i i efterföljade ord i MM. Om vi ite vill fortsätta exekverige ka vi läma mikroprogrammet som det står ova, uta att räka upp MPC. Styrehete kommer då att staa, eller sarare låsa sig i e oädlig repetitio av de sista mikroistruktioe. Vi kommer i detta speciella fall att fortsätta att skriva till samma adress i PM i all oädlighet, vilket ite är så värst vettigt. Ett bättre och syggare sätt att staa efter de adra mikroistruktioe är att räka upp MPC med ett och på de efterföljade adresse i MM skriva e helt tom mikroistruktio med alla bitar i ordet ollställda, där alltså varke extera kotrollsigaler (till övriga delar av cetralehete) eller itera kotrollsigaler (till styrehete själv) aktiveras. Notera att hur vi ä gör kommer kotrollehete egetlige ite att bokstavlige staa. Ret digitaltekiskt sett kommer klocka att fortsätta att gå och cetralehete kommer att vara aktiv, me iehållet i samtliga register och i PM kommer att bevaras - det stora sekvesät som vår cetralehet utgör byter ite tillståd. Om vi ite vill staa, uta ta om hela vår sekves av mikroistruktioer frå börja, ka vi i de sista mikroistruktioe aktivera kotrollsigale 11 för att ollställa MPC. Vid ästa klockflak kommer då exekverige att börja om med mikroistruktio 0. Sekvese kommer seda att upprepas i all oädlighet. 3.4. Det lagrade programmets pricip och vo Neuma Kostruktioe i figur 12 är e maski som ka programmeras till att utföra e godtycklig sekves av mikroistruktioer, atige e gåg eller oädligt måga gåger i repetitio. Måga av de mycket tidiga datorera som byggdes på 1940- och 1950-tale fugerade i pricip på detta sätt. Alla program skrevs med hjälp av mikroistruktioer i ett separat programmie vars iehåll var mer eller midre permaet. Det är emellertid ite på detta sätt ma programmerar modera datorer. E stor del av flexibilitete och geeralitete hos e moder dator kommer sig av det faktum att ma ite har programmet i ett separat programmie, uta att både data och program lagras i primärmiet, PM. Dea idé kallas det lagrade programmets pricip, the stored program cocept, och brukar tillskrivas e amerikask datortekiker vid am Joh vo Neuma, som tillsammas med ågra kolleger publicerade e serie veteskapliga artiklar om detta omkrig slutet av adra världskriget. I dag är detta ågot så självklart att ma kappast täker på vilke betydelse det har, me det faktum att programmet lagras i primärmiet är i själva verket det som utgör de fudametala skillade mella e dator och e tvättmaski. Tvättmaskie ka förmås att utföra e gaska komplicerad sekves av operatioer uder ett tvättprogram, och ma ka till och med välja mella flera olika tvättprogram, me det fis bara ett begräsat atal program som alla är ibyggda i maskie vid leveras, och programme går ite att ädra. E dator å adra sida ka ekelt programmeras om till att utföra de mest skiftade uppgifter, frå ordbehadlig och beräkigar till spel och aa förströelse. De allra flesta av de program som exekveras på e moder dator var ite es skriva är dator tillverkades. Hur dator beter sig utåt sett bestäms helt - 10 -

av vilket program ma laddar i i primärmiet. E aa följd av detta är att två i grude mycket olika datorer ka programmeras till att bete sig likadat ur avädares syvikel. 3.5. Istruktioer i primärmiet Det är alltså av fudametal betydelse att vi ka lagra program i primärmiet. Hur går ma då ret digitaltekiskt tillväga för att göra ågot sådat möjligt i vår ekla modellmaski? Uta att gå ärmare i på detaljer rörade väge fram dit preseterar vi lösige eda. De är dock ite på ågot vis självklar ia ma sett de. Vo Neuma är med rätta berömd för si skapelse. Vi iför ytterligare två register i vår maski, ämlige programräkare PC (Program Couter), och istruktiosregistret IR. PC pekar ut de adress i PM där ästa istruktio som skall exekveras fis lagrad, och IR aväds för att hämta dea istruktio frå PM. PC laddas frå busse med kotrollsigale 5, och ka mata ut data på busse geom att kotrollsigale 6 aktiveras. Vi iför dessutom e speciell kotrollsigal 7 för att räka upp iehållet i PC med ett. Dea kostruktio visas i figur 13 eda. 1 2 9 ADR IR 3 4 PM 7 +1 PC 5 6 10 11 +1 0 MPC MM 15 16 Add Sub Load 1 2... 14 AR Figur 13: Cetralehete med PC och IR Det vi behöver för att kua programmera vår maski med istruktioer i PM är ågo form av mekaism för att exekvera olika sekveser av mikroistruktioer beroede på vilke istruktio - 11 -

som hämtats frå PM. För att göra detta måste vi först och främst hämta e istruktio frå PM till IR. Detta görs med följade sekves av mikroistruktioer: 6, 1, 7, 10 Kopiera iehållet i PC till ADR, räka upp PC med 1 4, 9, 10 Läs i PM, skriv i IR Notera att det är viktigt att vi räkar upp PC med 1 för att seare kua hämta ästa istruktio ur miet. Om vi ite räkar upp PC kommer vi att hämta och utföra samma istruktio i all oädlighet, precis som vi kommer att utföra e och samma mikroistruktio i all oädlighet om ite MPC räkas upp i varje mikroistruktio. För att kua låta iehållet i IR bestämma vilke sekves av mikroistruktioer som skall utföras måste vi kua utföra hopp i mikroprogrammet. Detta motsvaras ret fysiskt av att vi måste kua ladda MPC med ett värde som bestäms av iehållet i IR. De simplaste lösige vore att ladda MPC direkt frå IR, och därigeom direkt age med istruktiosordet i PM vilke mikroistruktio som skulle utföras häräst. Detta har dock flera ackdelar. De flesta istruktioer måste mikroprogrammeras som flera mikroistruktioer, vilket skulle medföra att måga av de möjliga istruktiosorde i PM ite skulle utyttjas, eftersom de ite pekar på börja av e istruktio. Dessutom skulle det uppstå stora problem om ma av misstag agav e felaktig mikroadress och började exekvera mitt i e lägre sekves av mikroistruktioer. På grud av detta iför vi ett mellasteg för hoppe i MPC: e hopptabell som för varje möjligt istruktiosord ager på vilke adress i mikromiet som mikrokode för att utföra dea istruktio ligger lagrad. Vi realiserar hopptabelle med ett läsmie som adresseras av IR. I brist på bättre am kallar vi läsmiet för K1. I K1 lagrar vi seda mikroadressera för de olika istruktioera som vi väljer att programmera i i mikromiet. Istruktio ummer i kommer att kodas som det biära talet i i PM. När istruktioe laddas i i IR kommer detta tal att peka ut adress i i K1, där mikroadresse för istruktio ummer i fis lagrad. Figur 14 förklarar kahäda detta bättre. Till mikroistruktiosordet läggs sigale 12 som laddar MPC frå K1. 3.6. Operader, adresser och adresserigssätt Vi har u det som behövs för att kua hämta och utföra istruktioer som ligger lagrade i primärmiet. Förutom istruktioer iehåller emellertid ett program äve data i form av adresser till operader, eller iblad direkta agivelser av operader (omedelbara operader). E operad eller adress placeras oftast i ordet direkt efter istruktiosordet i PM, och hämtas då på samma sätt som istruktioe, det vill säga geom att adressera PM med iehållet i PC, hämta operade och seda räka upp PC med ett. Mekaisme för att göra detta fis reda i vår cetralehet, me vi sakar e lite me viktig detalj: det är mycket praktiskt att kua specificera operader med hjälp av flera olika adresserigssätt. Ett sätt att välja ett av flera adresserigssätt för e istruktio är att mikroprogrammera e helt y istruktio för varje variatio av adresserigssätt. Om vi till exempel vill mikroprogrammera istruktioe LDA, ladda ackumulatorregistret, med två olika adresserigssätt skulle vi kua göra detta som två helt skilda istruktioer. Det är iget pricipiellt fel i detta, me det iebär att stora delar av mikrokode kommer att upprepas för flera likartade istruktioer. Olika istruktioer med samma adresserigssätt kommer att ha samma mikrokod för adressberäkige, och olika adresserigssätt för e och samma istruktio kommer att ha idetisk mikrokod för själva istruktiosexekverige. Därför är det mer praktiskt att separera adressberäkige frå istruktiosexekverige och återaväda mikrokod geom att aropa de flera gåger, i stället för att upprepa de på flera ställe i mikroprogrammiet. Ma skriver så att säga små programsuttar i mikrokode för vissa elemetära operatioer, vilka seda aropas i olika kombiatioer för att utföra öskad istruktio. - 12 -

1 2 9 ADR IR PM 3 4 K1 12 7 +1 PC 5 6 10 11 +1 0 MPC MM 15 16 Add Sub Load 1 2... 14 AR Figur 14: Idirekta hoppadresser i mikromiet via hopptabelle K1 Ett valigt sätt att göra detta är att dela upp istruktiosordet i två delar, e del som ager själva istruktioe, ofta kallad operatioskod, och e del som ager öskat adresserigssätt. Vi gör dea uppdelig och låter de västra dele av IR adressera K1 som tidigare, me lägger till ytterligare e hopptabell som vi kallar K2, vilke adresseras av de högra dele av IR. I de västra dele av IR (de mest sigifikata bitara) ager vi operatioskode för de öskade istruktioe, och med iehållet i de högra dele (de mist sigifikata bitara) ager vi öskat adresserigssätt. Adressera till mikrokode för att beräka adresser och hämta operader ka u ages av iehållet i K2. Till mikroordet läggs sigale 13 för att ladda MPC frå K2. Vår cetralehet är u ästa klar, och ser ut som visas i figur 15. - 13 -

1 2 9 ADR IR PM 3 4 K1 K2 12 13 7 +1 PC 5 6 10 11 +1 0 MPC MM 15 16 Add Sub Load 1 2... 14 AR Figur 15: De ästa färdiga cetralehete Vi visar u ett par förklarade exempel på avädige av K1 och K2. Vi skriver mikroprogramme för istruktioera LDA (Load Accumulator, ladda ackumulator ) och STA (Store Accumulator, lagra ackumulator ), samt de två adresserigssätte direkt adresserig och idirekt adresserig. LDA och STA ka skrivas med e eda mikroistruktio vardera: LDA: 4, PM -> AR STA: 14, 3 AR -> PM Detta förutsätter dock att de öskade miescelle reda har utpekats geom att e lämplig adress lagts i adressregistret ADR. Det är just precis detta som ombesörjs av adressberäkige. Adressberäkige för direkt adresserig iebär att ma hämtar adresse till adressregistret frå miesordet direkt efter istruktiosordet. Detta ka göras med följade två mikroistruktioer: 6, 1, 7, 10 PC->ADR, PC+1->PC 4, 1 PM->ADR - 14 -

För idirekt adresserig skall vi dessutom hämta ett tal ur primärmiet frå adresse som utpekas av adressordet (ordet efter istruktiosordet), och seda aväda detta tal som adress till operade. Detta ka göras med följade mikroistruktioer: 6, 1, 7, 10 PC->ADR, PC+1->PC 4, 1, 10 PM->ADR 4, 1 PM->ADR Efter adressberäkige ligger de så kallade effektiva adresse EA lagrad i adressregistret ADR. 3.7. Exekverig i tretakt Nu har vi allt som behövs för att hämta istruktioer, beräka adresser och exekvera istruktioer. Dessa tre steg skall utföras för varje istruktio, och vår cetralehet kommer att arbeta i ett slags tretakt: 1. Istruktioshämtig Istruktiosordet hämtas frå PM och läggs i IR. 2. Adressberäkig Operadiformatio hämtas ur PM, adresse till operade läggs i ADR. 3. Istruktiosexekverig De egetliga databehadlige sker. Dea tretakt ka vi implemetera geom att lägga istruktioshämtige allra först i mikromiet, på mikroadress 0. När e istruktio hämtats hoppar vi i mikroprogrammet med hjälp av hopptabelle K2 till rätt mikroprogram för adressberäkige. Efter adressberäkige hoppar vi slutlige med hjälp av hopptabelle K1 till mikroprogrammet för exekverig av själva istruktioe. Allra sist i istruktiosexekverige ollställer vi MPC med kotrollsigale 11, varvid cetralehete fortsätter med att hämta ästa istruktio, och sekvese hämtig - adressberäkig - exekverig upprepas. 3.8. Villkorliga hopp Det sakas u bara e väsetlig sak för att vi skall kua aväda vår cetralehet som e ågorluda geerell dator, ämlige villkorliga hopp. Hopp i mikroprogrammet har vi implemeterat geom att ladda MPC med ett bestämt värde, och vi ka på samma sätt implemetera hopp i huvudprogrammet geom att ladda PC med ett bestämt värde. För att kua göra programflödet beroede av data, till exempel för att kua göra e så väsetlig sak som sligor ( loopar ) i programmet, behöver vi emellertid äve kua ladda PC villkorligt. Vi väljer att implemetera edast ett villkor i vår ekla arkitektur, ämlige: Ladda PC frå busse om ackumulators iehåll är lika med oll. Detta gör vi ret fysiskt geom att iföra e sigal Z frå ALU: som talar om är AR iehåller edast ollor. Detta görs ret digitaltekiskt med e ELLER-fuktio på samtliga bitar b i i AR följt av e iverterig: Z = ICKE ( b 0 ELLER b 1 ELLER b 2 ELLER b 3 ELLER... ). Vi lägger seda till kotrollsigal ummer 8 i vår arkitektur. Dess fuktio är att ladda PC frå busse om sigale Z frå ALU: är ettställd. I aat fall ädras ite iehållet i PC. (Symbolike som aväds för att beskriva dea fuktio i figure eda är ite så där alldeles uppebar eller etydig. De ärade läsare förstår dock säkert vad som meas.) Detta var de sista kotrollsigale vi behöver. Vår helt färdiga cetralehet visas i figur 16. Nästa kapitel ägas åt att visa i detalj hur ma ka mikroprogrammera dea skapelse. - 15 -

1 2 9 ADR IR PM 3 4 K1 K2 12 13 7 +1 PC 5 6 10 11 +1 0 MPC MM 8 & Z 15 16 Add Sub Load 1 2... 14 AR 1 Z Figur 16: De färdiga cetralehete i si fulla prakt - 16 -

4. Mikroprogrammerig av cetralehete 4.1. Istruktioslista Vi väljer att implemetera följade sex istruktioer i vår cetralehet: LDA Ladda AR: (EA)->AR STA Lagra AR: AR -> (EA) ADD Addera: AR + (EA) -> AR SUB Subtrahera: AR - (EA) -> AR JMP Hoppa: EA -> PC JMPZ Villkorligt hopp: EA -> PC edast om AR=0 Samtliga istruktioer har e operad som specificeras med hjälp av ordet A efter istruktioe i PM. Vi väljer att implemetera följade tre adresserigssätt för tolkige av operadiformatioe: Omedelbar operad EA=PC, operad=a Direkt adresserig EA=A, operad=m(a) (Operade ager e adress i miet där operade fis) Idirekt adresserig EA=M(A), operad=m(m(a)) (Operade ager e adress i miet som iehåller ett tal, vilket i si tur skall tolkas som e adress i miet där operade fis) I tabell återges hela iehållet i mikromiet MM med kommetarer. Mikroadress Sigaler Fuktio Kommetar 0 6, 1, 7, 10 PC->ADR, PC+1->PC, MPC+1->MPC Istruktioshämtig 1 4, 9, 10 PM->IR, MPC+1->MPC 2 13 K2->MPC 3 6, 1, 7, 12 PC->ADR, PC+1->PC, K1->MPC Omedelbar operad 4 6, 1, 7, 10 PC->ADR, PC+1->PC, MPC+1->MPC Absolut adress 5 4, 1, 12 PM->ADR, K1->MPC 6 6, 1, 7, 10 PC->ADR, PC+1->PC, MPC+1->MPC Idirekt adress 7 4, 1, 10 PM->ADR, MPC+1->MPC 8 4, 1, 12 PM->ADR, K1->MPC 9 4,, 11 PM->AR, 0->MPC LDA 10 14, 3, 11 AR->PM, 0->MPC STA 11 4, 15, 11 AR+PM->AR, 0->MPC ADD 12 4, 16, 11 AR-PM->AR, 0->MPC SUB 13 2, 5, 11 ADR->PC, 0->MPC JMP 14 2, 8, 11 ADR->PC om Z=1, 0->MPC JMPZ Tabell : Mikromiets iehåll Notera att istruktioshämtige och adressberäkige utgör de största dele av hela istruktiosexekverige. När väl istruktioe är hämtad och adresse är beräkad ka alla de sex istruktioer vi valt att implemetera programmeras som e eda mikroistruktio. Ett mer realistiskt exempel skulle kaske tagit upp ågra mer komplicerade istruktioer, me faktum är att istruktioshämtig och adressberäkig ofta tar upp större dele av de egetliga istruktiostide äve i komplicerade processorer. - -

4.2. Istruktioskodig Vi skall u slutlige programmera hopptabellera K1 och K2 så att vi får e lämplig kodig av istruktiosordet. Vi väljer att ge våra sex istruktioer ordigsummer frå 0 till 5 eligt edaståede tabell: 0 LDA 1 STA 2 ADD 3 SUB 4 JMP 5 JMPZ De olika adresserigssätte tilldelas ordigsummer eligt följade: 0 Omedelbar operad 1 Direkt adress 2 Idirekt adress Iehålle i K1 och K2 kommer således att bli som visas i tabellera 18 och 19. Adress Iehåll Kommetar 0 9 LDA 1 10 STA 2 11 ADD 3 12 SUB 4 13 JMP 5 14 JMPZ Tabell 18: Iehållet i K1 Adress Iehåll Kommetar 0 3 Omedelbar operad 1 4 Direkt adress 2 6 Idirekt adress Tabell 19: Iehållet i K2-18 -

5. Programmerig av cetralehete Kostruktioe av vår cetralehet är u avslutad. Vi skall slutlige visa ett ekelt exempel på programmerig av desamma. Vi har sex istruktioer att arbeta med: LDA, STA, ADD, SUB, JMP och JMPZ, samt tre olika adresserigssätt: Omedelbar operad, direkt adress och idirekt adress. Äve om detta är e gaska begräsad uppsättig verktyg ka vi faktiskt göra e hel del med dem. Vi skall dock ite äga oss åt ågra avacerade övigar, uta bara skriva ett ekelt program som hämtar ett tal på adress 10 i miet, adderar 1 till detta tal och skriver tillbaka resultatet till adress 11 i miet. Programmet lägger vi med börja på adress 0 i PM. Vi börjar med att skriva programmet i e hemslöjdad assemblerotatio som vi uppfier ekom för detta ädamål. Vi har ju själva kostruerat processor, så det är vi som bestämmer hur assemblerkode skall se ut. 0: LDA 10 ADD #1 STA 11 SLUT: JMP SLUT De sista istruktioe måste vi lägga till för att programmet skall staa. Aars löper cetralehete amok och börjar hämta istruktioer frå miesadresser där vi ite skrivit ågra istruktioer, och där vi kaske till och med har lagt data. E mer kompetet cetralehet bör ha ågo istruktio för att staa, me vår ekla maski måste vi stoppa geom att skicka i de i e oädlig sliga i form av e istruktio som hoppar till sig själv. Nu skall vi översätta vår assemblerotatio till maskikod. Vi har ite tillgåg till ågot automatiskt assemblerigsprogram till vår maski, så vi får göra översättige mauellt, vilket är arbetsamt me i detta fall också lärorikt. Istruktioera LDA, ADD, STA och JMP har operatioskodera 0, 2, 1, respektive 4. LDA, STA och JMP skall aväda absolut adresserig, viket kodats som adresserigssätt 1, och ADD skall aväda e omedelbar operad, vilket kodats som adresserigssätt 0. För att kua age det exakta biära iehållet i PM bit för bit atar vi u att PM och IR båda har ordlägde 8 bitar, och att IR delats på mitte i två halvor om 4 bitar, vilka vardera adresserar K1 och K2. Det exakta iehållet i PM på adressera som är itressata för vårt program blir då som visas i tabell 20. Adress Data Kommetar 0 0000 0001 LDA, absolut adresserig 1 0000 1010 Adresse till ovaståede istruktio (10) 2 0010 0000 ADD, omedelbar operad 3 0000 0001 Operade till ovaståede istruktio (1) 4 0001 0001 STA, absolut adresserig 5 0000 1011 Adresse till ovaståede istruktio (11) 6 0100 0001 JMP, absolut adresserig 7 0000 0110 Adresse till börja av JMP-istruktioe (6) 8 9 10 x Idata till programmet 11 y Utdata frå programmet: y = x+1 Tabell 20: Iehållet i PM för vårt ekla program Programmet exekveras geom att vi på ågot sätt ollställer programräkare PC och mikroprogramräkare MPC, och därefter startar klocksigale till systemet. De itresserade läsare uppmaas stega sig igeom mikroprogrammet för åtmistoe de första istruktioe för att övertyga sig om att detta verklige fugerar, och hur. - 19 -

6. Slutord De ova beskriva cetralehete är av mycket ekelt slag. De ka till och med sägas vara e ästa brottsligt föreklad karikatyr av e verklig cetralehet. Om ma verklige skulle kostruera e praktiskt avädbar cetralehet skulle ma säkerlige välja att bygga i åtmistoe ågra fler fuktioer i ALU: och lägga till ytterligare ågra register i arkitekture. Det väsetliga i framställige var emellertid ite att visa hur ma bygger e bra cetralehet, uta att visa hur e cetralehet fugerar i pricip på detaljivå. Cetralehete som beskrivits i detta kapitel har i allt väsetligt samma uppbyggad som de flesta eklare mikroprocessorer. Vi har skalat bort e hel del detaljer och förtigit vissa problem som ka uppstå, me kära och gruddrage i kostruktioe är kvar, och det är det som är väsetligt för att förstå hur e dator egetlige fugerar. Blotta isikte om att det ligger sykroa digitala sekvesät och kombiatoriska fuktioer i botte är mycket yttig att ha med sig i bagaget, och om ma dessutom har e viss förståelse av hur mikroprogrammerig fugerar ger det e mycket god grud att stå på för vidare studier i datortekik. 7. Sammafattig Några grudläggade begrepp som du bör ha med dig frå det här kapitlet är följade: 1. Mikroprocessorer är sykroa digitala sekvesät. 2. De allra lägsta ivå av datatrasporter itert i processor sköts av ett mikroprogram, som ite ka programmeras om av avädare. 3. Maskiistruktioer exekveras geom att översättas till e sekves av mikroistruktioer. Översättige är mycket rättfram och sabb, och görs varje gåg e istruktio exekveras. 4. Äve de allra eklaste maskiistruktioera i e mikroprocessor kräver flera steg för att exekveras. Istruktioe skall hämtas, adresse skall beräkas, data skall hämtas i, e operatio skall utföras och data skall slutlige lämas på rätt ställe ige. Alla dessa steg tar mist e klockcykel vardera. 5. Itert ka e mikroprocessor iehålla ett stort atal register som ite sys utåt. I vår ekla modell är det egetlige bara AR som ma som programmerare behöver käa till om processor, reste är dolda itera register. - 20 -