SIE 4005, 9/10 (4. Forelesn.) Tredje forelesning: 8.1 The control unit 8.2 Algorithmic state machines 8.3 Design example: Binary multiplier 8.4 Hardwired Control Fjerde forelesning: litt repetisjon 8.4 Hardwired Control 8.7 Mikroprogrammert kontroll 8.8 A simple computer architecture Liten oppsummering hvis tid..
En flip-flop per tilstand; (side 406-410) Bare den aktuelle tilstanden lagrer 1. Denne 1eren flyter rundt i logikken tilsvarende transisjoner i ASM. Enkel konstruksjon Fig. 8-10 viser regler for å transformere et ASM diagram til en sekvensiell krets med en flip-flop per tilstand.hver regel spesifiserer hvordan en komponent i et ASM-diagram kan erstattes med en logisk krets. For utgangssignaler kan det være aktuelt å legge til logikk Binær multiplikator implementert på denne måten er vist i figur 8-11. ASM-diagram fra fig. 8-8 s. 404 er benyttet.
Transformasjonsregler for kontrollenhet med en flip-flop per tilstand (kap. 8-4, s. 408) Direkte mapping fra fig 8-8 (s. 404) Sequence part of ASM chart for binary multiplier til figur 8-11 Control Unit with one flip-flop per state for the binary multiplier (s. 409) vha transformasjonsr eglene i fig. 8-10 s. 408.
Mikroprogrammert kontrollenhet (kap. 8.7, fig. 8-16, s. 417)
Kontrollsignaler for mikroprogrammert multiplikator (tab. 8-3, s. 420) Siden Load_B og Load_Q ikke er inkludert er 4 kontrollsignal nødvendige: Initialize, Load, Clear_C, Shift_dec. Disse tas fra tabell 8.1, med tilhørende register transfer operasjoner og inkluderes i tab. 8-3. Deretter er 3. Kolonne i tab. 8-3 dannet ut fra inspeksjon av ASM-diagram i fig. 8-17, s. 419, for å finne ut hvilke tilstander de ulike kontrollsignalene er aktive i. Her er det ikke benyttet enkoding for å krympe bredden, slik at 4 bit benyttes i den delen av kontrollordet som kontrollerer datapath (kunne hatt 2 bit (s. 420)). (Initialize: 0001, Load: 0010, Clear_C: 0100, ) Notasjonen i siste kolonne i tabell 8-3 er tenkt brukt ved skriving av mikroprogrammer.
Mikroinstruksjon kontrollord format (fig. 8-18, s. 420) 4-bit kode basert på tabell 8-3 benyttes i datapath feltet i kontrollordet i figur 8-18, i bit 0-3. Resten av kontrollordet har med sekvensiering å gjøre, dvs bit 4 til og med 11. Ved å se på ASM-diagram i fig. 8-17 er det klart at for IDLE og ADD tilstandene avhenger neste tilstand av hhvis G og Z. I slike tilfeller kreves to addresseverdier en for inputverdi lik 0, og en for inputverdi lik 1. Metodikk for å definere addresser er et viktig valg ved design av sequencer. De to mest typiske er nevnt i boka: 1) De to addressene er inkluderte i mikroinstruksjonen (ord i kontrollminnet), og basert på en variabel lastes den ene addressen i CAR. Ulemper: lange ord, plass; pris, effekt. Benyttet her. 2) En teller med parallell load, som CAR. Da kommer en av de to adderssene fra mikroinstruksjonen, mens den andre fås ved ganske enkelt å telle opp CAR (Controll Address Register) Ulemper: tilordning av addresser til tilstander kan være problematisk, og tilstander må i en del tilfeller adderes. Dette kan bidra til reduksjon av systemets maksimale klokkehastighet, som i gitte tilfeller er uønsket.
SEL Field Definition for Binary Multiplier Control Sequencing (tab. 8-4, s. 421) SEL-feltet, bit 4 og 5 har fått symbolsk notasjon, binærkoder for ulike mikrooperasjoner som i tabell 8-4. Basert på informasjon fra tabellene 8-3, og 8-4 samt figur 8-17 designes kontrollenheten. Multiplikator blokkdiagram finnes i figur 8-19 s. 422.
Mikroprogrammert kontrollenhet (kap. 8.7, fig. 8-16, s. 417)
Design av kontrollenhet, s. 422-423 Lengden på mikroinstr. (fig 8-18) gir ROM kontrollord lengde på 12 bit. 5 tilstander i ASM (fig. 8-17) gir 5 ord i ROM 3-bit adr. Trenges for å addressere 5 ord; 3-bit CAR. Addressene for innlasting i CAR kommer fra NXTADD0 eller NXTADD1. 2-inp. MUX på CAR sin datainngang benyttes for å velge mellom de to addressekildene, basert på informasjon i tab. 8-4. 4-1 MUX benyttes for valg knyttet til de 4 SEL kodene (tab. 8-4). 4 av utgangene fra ROM styrer datapath, men s de resterende 8 bit avgjør neste addresse for CAR. Eks: SEL = 00 MUX2 velger 0 som inngang, som når S- inngangen på MUX1, som velger NXTADD0 som neste addresse, som spesifisert i tab. 8-4, s. 421. (Flere eksempler i boka.)
Mikroinstruksjon kontrollord format (fig. 8-18, s. 420) En mikroinstruksjon i mikroprogrammet korresponderer med hver av tilstandene i ASM diagrammet.
Symbolsk mikroprogr. Og binært mikroprogram for multiplikator (tab. 8-6, s. 423) Det er en mikroinstruksjon i mikroprogrammet som korresponderer med hver av tilstandene i ASM-diagrammet. Binærkoden for hver tilstand er innholdet i CAR for den aktuelle tilstanden. I venstre halvdel av tabell 8-6 er register transfer mikroprogrammet (Se tab. 8-5, s. 423) konvertert til et symbolsk mikroprogram ved at hver register transfer har fått symbolske navn, og at tilstandene for addressene. Til høyre i tab. 8-6 er det symbolske mikroprogrammet konvertert til et binært mikroprogram, vha figur 8-17 og tabellene 8-3 og 8-4. Etter introduksjon til hardwirede og mikroprogrammerte kontrollenheter i boken behandles mer komplekse kontrollenheter for programmerbare digitale systemer.
A Simple Computer Architecture, Kap. 8-8 Kontrolldesign for programmerbare systemer. Hvordan kan operasjoner spesifisert av instruksjoner implementers ved register transfers i datapath, og hvordan håndtere forflytning av informasjon mellom datapath og minne (memory). (Mer detaljert i kap. 9 (og 10, som lite pensum er hentet fra.)) INSTRUKSJONER OG HÅNDTERING AV SLIKE: Brukeren instruerer computeren om hvilke operasjoner som skal utføres og deres sekvens vha et program. Ulike programmer kan spesifiseres, og en ny fleksibilitet er oppnådd. Muligheten for å utføre et program fra minnet er den viktigste enkeltegenskapen hos en generell computer. Kontrollenheten leser en instruksjon fra minnet, dekoder og utfører denne ved å sette i gang en sekvens av en eller flere mikrooperasjoner. En instruksjon er en samling bit som instruerer computeren om å foreta en spesifikk operasjon. Operation code ( opcode ) spesifiserer en operasjon som for eksempel add, subtract, shift, complement. Samlingen instruksjoner for en bestemt computer er instruksjonssettet hos denne, og en grundig beskrivelse av instruksjonssettet beskriver instruction set architecture for computeren. 128 ulike instruksjoner gir 7 bit opcode (2**7=128) En instruksjon må i tillegg til å spesifisere selve operasjonen også spesifisere registre og ord i minnet der operasjonene skal finnes og hvor resultatet skal plasseres.
Tre instruksjonsformater (Kap. 8-8, fig. 8-20, s. 425) Bit i instruksjon er delt opp i felter / fields. Kombinasjonen av disse utgjør instruksjonsformatet. Disse 3 brukes i kapittel 8.
Instruksjonsformater (Kap. 8-8, s. 425-427.) Register, fig. 8-20 a): Opcode spesifiserer bruk av to sourceog ett destination-register. Ved bruk av 8 registre kan tre bit i SB være 011 og spesifisere R3, for eksempel. Immediate, fig. 8-20 b): Innhold : opcode, to register fields og en operand. Operanden er en konstant kalt immediate operand. Eks: SA spesifisert som R7, DR som R2 og 011 som OP gir at verdien 3 adderes til innholdet i R7 og resultatet plasseres i R2. Jump and branch, fig. 8-20 c): Ikke noe register eller memoryinnhold endres. I stedet påvirkes den rekkefølgen som instruksjonene hentes fra memory. Lokasjonen finnes vha programteller, PC. ( i stedet for at PC henter instruksjoner fra sekvensielle addresser i memory.) Jump and branch i fig. 8-20 c) har operasjonskode, ett registerfelt SA og delt addressefelt AD. (Nærmere beskrivelse s. 426.)
Memory representation of Instructions and Data ( fig. 8-21, s. 427)
Lagerressurs diagram for en enkel computer (Kap. 8-8, fig. 8-22, s. 429)