350 likes | 492 Views
EDA 451 - Digital och Datorteknik Dagens föreläsning: Dataväg och minne, Arbetsboken kapitel 15-18 Ur innehållet: Läs- och skrivbart minne Dataväg med manuell styrenhet Centralenhetens arbetssätt: FETCH/EXECUTE. Vi ansluter flaggregister och väljarfunktion Cin. Väljarfunktion för Cin.
E N D
EDA 451 - Digital och Datorteknik • Dagens föreläsning: • Dataväg och minne, • Arbetsboken kapitel 15-18 • Ur innehållet: • Läs- och skrivbart minne • Dataväg med manuell styrenhet • Centralenhetens arbetssätt: FETCH/EXECUTE Dataväg och minne
Vi ansluter flaggregister och väljarfunktion Cin Dataväg och minne
Väljarfunktion för Cin G=2 (1,0)=g1 G=g1 g0 Dataväg och minne
Flaggregister (Condition Codes register) Vid g2=0 och LDCC=1 överförs ALU’ns flaggor till CC. CC kan också laddas från bussen (g2=1). Med OECC förs innehållet i CC till bussen Dataväg och minne
Vi ansluter minne till en centralenhet Dataväg och minne
PrincipLäs-/Skriv-minne Dataväg och minne
(Adress)16 Data xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx 00 01 FF FE Dataväg utökad med minne RTN: Att skriva till minne: data→M(MA) Att läsa från minne: M(MA) → data Dataväg och minne
Random Access Memory (RAM) Alla minnets delar har samma åtkomsttid. primär-minnes-system central-enhet adressering styrsignaler dataöverföring Dataväg och minne
RAM - Minnestyper Volatile (”Flyktigt”) innehållet försvinner vid spänningsbortfall, vid spänningstillslag är innehållet oftast slumpmässigt bestämt. Kallas ofta “RAM”. • RWM (Read Write Memory) NON Volatile (”Icke flyktigt”) behåller sitt innehåll även efter spänningsbortfall • ROM (Read Only Memory) • programmeras vid tillverkningen, innehållet kan därefter inte ändras • PROM (Programmable ROM) • minnestypen kan programmeras (kräver speciell utrustning) en gång • EPROM (Erasable PROM) • minnestypen kan programmeras och raderas med speciell utrustning • FLASH • minnestypen kan programmeras/raderas utan speciell typ av utrustning Dataväg och minne
Snabb tillbakablick • Skriv/läs-minnen, kallas ibland ”dataminne” • Williamstub • Kärnminnen • Halvledarminnen, SRAM/DRAM • Läs-minnen, kallas ibland”Programminne” • Halvledarminne, ROM • Halvledarminne, EPROM • Halvledarminne, FLASH Dataväg och minne
”Williamstuben”, 1946-1950 Bilden visar 32 st. 40-bitars ord och en 20-bitars sidadress (Ferranti Mark I) Första elektrostatiska minnet Lagrad nolla Elektronstrålens efterlysning (minnestid) c:a 0,2 sek. Metallplatta framför skapar ”kondensator” för varje minnesbit. Lagrad etta Dataväg och minne
Kärnminne c:a 1950-1975 Skrivström, läsström – riktning anger lagrad nolla eller etta Dataväg och minne
Halvledarminnen 1966 Statiskt RAM (SRAM) 6 transistorer/-bit 128-bit RAM (IBM System/360 Model 145 primärminne) jämförd med kärnminne. 256-bit TTL RAM (Fairchild) WL = 1, väljer denna cell. (M5 och M6 leder). Minneselementet har två stabila tillstånd: BL=1 och BL’ = 0 →”1” BL=0 och BL’ = 1→”0” (Jämför med SR-latch) Dataväg och minne
Dynamiskt RAM (DRAM) 1970 Endast en transistor krävs för att lagra en bit. Kräver ”refresh” eftersom kondensatorn laddas ur efter hand. (Jämför med Wiliamstuben) Intel i1103 1024-bit Dynamiskt RAM Dataväg och minne
ROM (1965) ”0” ”1” ord 0 ord 1 A2 ord 2 A1 ord 3 ord 4 A0 ord 5 ord 6 ord 7 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 Dioder (ettor) placeras i diodmatrisens skärningar vid tillverkningsprocessen, “mask-programmerade” Intel 3301, 1024-bit ROM Dataväg och minne
EPROM (1971) Dov Frohman uppfann EPROM (Intel) Intel 1702, EPROM. UV-ljus användes för att radera minnet. Intel EPROM- programmerare (1971) Dataväg och minne
FLASH 1988 MINNE STYRKRETS NAND-FLASH ”BLOCK”-minnes åtkomst NOR-FLASH Dataväg och minne
Läs-cykel Exempel: Kopiera minnesinnehåll på adress (FF)16 till register A M(FF) FF FF Dataväg och minne
Arkiv -> Datavägen ->Dataväg med RWM Exempel: Addera minnesinnehållen på adress 0416 och 0516 och spara resultatet på adress 0616. Dataväg och minne
Lösning: Vi börjar med att placera 2416 på adress 0416 och 1316 på adress 0516. (För att kunna kontrollera styrsignalsekvensen) Dataväg och minne
Nu till utförandet: Läs första operanden från minnet till register T. Läs därefter andra operanden och utför ALU-operationen, spara resultatet i register R Skriv tillbaks resultatet till minnet från register R Dataväg och minne
Program och minne • John Louis Von Neumann (1903-1957) ”Det lagrade programmets princip”, dvs program och data i samma minne. Tillhörande assemblerprogram Maskinprogram i minnet Instruktion Adress Data Dataväg och minne
Maskininstruktioner EXEMPEL: Kan ha olika “INSTRUKTIONSFORMAT” Dataväg och minne
OP-kod OP-kod Adr data Exempelvis: Instruktionsformat ADDB Adr LDAB #data OP-kod TFR B,A Adress Maskinprogram 000100012 001000112 001010012 111100112 000000102 010011112 000000112 011000012 000100112 Assemblerprogram operand-information Instruktion ”mnemonic” ”Byte-wide” 8 bitar data på varje adress Dataväg och minne
01 02 03 04 01000111 01001000 01001001 01010101 Exempel: Instruktionen ”Clear” Följande instruktionsbeskrivning specificerar ”Clear”. Instruktionen nollställer operanden och finns i olika varianter: CLRA nollställ register A CLRB nollställ register B CLR <ADR> nollställ minnesinnehåll Antag att vi placerar instruktionssekvensen i minnet med start på adress 01, minnet skulle då få följande utseende: CLRA CLRB CLR (55)16 OP-kod, (47)16 OP-kod, (48)16 OP-kod, (49)16 operandinformation,(55)16 Dataväg och minne
Dataväg för program i minne Dataväg och minne
FETCH Centralenhetens instruktionsbearbetning I sin enklaste form kan bearbetningen av en instruktion delas in i två faser EXECUTE Hämta maskininstruktion från minne Utför maskininstruktion Dataväg och minne
Instruktionshämtning – ”FETCH” Vid instruktionshämtning placeras operationskoden som PC “pekar på” i instruktionsregistret. PC räknas upp och pekar därefter på antingen en operand eller en ny instruktion. Dataväg och minne
Arkiv -> Datavägen ->Dataväg med manuell styrenhet Nya register i datavägen: S – Stackpekare, speciellt register med flera viktiga funktioner. X– Generellt register för adressinformation Dataväg och minne
FETCH FETCH - Hämtningsfas EXEMPEL: PC = (0C)16 Det förutsätts alltså att det finns en operationskod på denna adress.. Dataväg och minne
EXECUTE - Utförandefas Utförandefasen är unik för varje instruktion. Detaljerad beskrivning av instruktionen Exempel: INCA INCA Increment register A RTN: A + 1 A Flaggor: N: Ettställs om resultatets teckenbit (bit 7) får värdet 1.Z: Ettställs om samtliga åtta bitar i resultatet blir noll.V: Ettställs om 2-komplementoverflow uppstår.C: Ettställs om summan ej ryms i åtta bitar, dvs blir lika med 256. I detta fall ettställs även Z. OP-kod Instruktionsformat NF NF EXECUTE Dataväg och minne
OP-kod data Detaljerad beskrivning av instruktionen Exempel: LDAA #data LDAA #data Load A Immediate RTN: Data AFlaggor: Påverkas ej.Beskrivning: Laddar dataord från instruktionen till register A. Instruktionsformat Dataväg och minne
OP-kod Adr Detaljerad beskrivning av instruktionen Exempel: LDAA Adr LDAA Adr Load A from memory RTN: Data AFlaggor: Påverkas ej.Beskrivning: Laddar dataord från minnet till register A. Instruktionsformat Dataväg och minne
RESET FETCH EXECUTE NF NF NF NF NF NF RESET FETCH EXECUTE Centralenhetens arbetsätt Dataväg och minne
(Start-tillstånd) RESET RESET - Återställningsfas I exemplet placeras adressen 0C i PC. En instruktion förutsätts finnas på denna adress. Dataväg och minne