eda 451 - digital och datorteknik dagens föreläsning: dataväg och minne,
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
Digital och Datorteknik – EDA451 2009/2010
1Dataväg och minne
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
Digital och Datorteknik – EDA451 2009/2010
Vi ansluter flaggregister och väljarfunktion Cin
2Dataväg och minne
Digital och Datorteknik – EDA451 2009/2010
Väljarfunktion för Cin
3Dataväg och minne
f3 f2 f1 f0U = f(D,E,F,Cin)
Operation Resultat
0 0 0 0 Bitvis nollställning 0
0 0 0 1 D
0 0 1 0 E
0 0 1 1 Bitvis invertering D1k
0 1 0 0 Bitvis invertering E1k
0 1 0 1 Bitvis OR D OR E
0 1 1 0 Bitvis AND D AND E
0 1 1 1 Bitvis XOR D XOR E
1 0 0 0 D + 0 + Cin D + Cin
1 0 0 1 D + FF16 + Cin D 1 + Cin
1 0 1 0 D + E + Cin
1 0 1 1 D + D + Cin 2D + Cin
1 1 0 0 D +E1k + Cin D E 1 + Cin
1 1 0 1 Bitvis nollställning 0
1 1 1 0 Bitvis nollställning 0
1 1 1 1 Bitvis ettställning FF16
G=2 (1,0)=g1G=g1 g0
Digital och Datorteknik – EDA451 2009/2010
Flaggregister (Condition Codes register)
4Dataväg och minne
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
Digital och Datorteknik – EDA451 2009/2010
Vi ansluter minne till en centralenhet
5Dataväg och minne
Digital och Datorteknik – EDA451 2009/2010
PrincipLäs-/Skriv-minne
6Dataväg och minne
OE0
1
Minnes-register
0
LD0
CP
&
&
skriv
läs
OE255
1
Minnes-register
255
LD255
CP
&
&
skriv
läs
e0
e255
e254
e1
e2
Adress
Data
MW
MR
Digital och Datorteknik – EDA451 2009/2010
Dataväg utökad med minne
7Dataväg och minne
(Adress)
16 xxxxxxxx00Data
xxxxxxxx01
xxxxxxxxFFxxxxxxxxFE
OEB
1OEA
1
ALU
B
LDB
CPA
LDA
CP T
LDT
CP
R
LDR
CP
OER1
f0f1f2f3
Cin
C
V
Z
N
MWMinne
MA
LDMA
CP
Adress
Data MR
CP
RTN:
Att skriva till minne:data →M(MA)
Att läsa från minne:
M(MA) → data
Digital och Datorteknik – EDA451 2009/2010
Random Access Memory (RAM)
8Dataväg och minne
Alla minnets delar har samma åtkomsttid.
central-enhet
primär-minnes-system
adressering
dataöverföring
styrsignaler
OE0
1
Minnes-register
0
LD0
CP
&
&
skriv
läs
OE255
1
Minnes-register
255
LD255
CP
&
&
skriv
läs
e0
e255
e254
e1
e2
Adress
Data
MW
MR
MinneCP
MW
MR
Adress
Data
Digital och Datorteknik – EDA451 2009/2010
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
9Dataväg och minne
RAM - Minnestyper
Digital och Datorteknik – EDA451 2009/2010
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
Snabb tillbakablick
10Dataväg och minne
Digital och Datorteknik – EDA451 2009/2010
”Williamstuben”, 1946-1950
11Dataväg och minne
Första elektrostatiska minnet
Lagrad nolla
Lagrad etta
Bilden visar 32 st. 40-bitars ord och en 20-bitars sidadress
(Ferranti Mark I)
Elektronstrålens efterlysning (minnestid) c:a 0,2 sek.
Metallplatta framför skapar ”kondensator” för varje minnesbit.
Digital och Datorteknik – EDA451 2009/2010
Kärnminne c:a 1950-1975
12Dataväg och minne
Skrivström, läsström – riktning anger lagrad
nolla eller etta
Digital och Datorteknik – EDA451 2009/2010
Halvledarminnen 1966
13Dataväg och minne
Statiskt RAM (SRAM) 6 transistorer/-bit
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)
256-bit TTL RAM (Fairchild)
128-bit RAM (IBM System/360 Model 145 primärminne)jämförd med kärnminne.
Digital och Datorteknik – EDA451 2009/2010
Dynamiskt RAM (DRAM) 1970
14Dataväg och minne
Intel i1103 1024-bit Dynamiskt RAM
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)
Digital och Datorteknik – EDA451 2009/2010
ROM (1965)
15Dataväg och minne
Intel 3301, 1024-bit ROM
A2
A1
A0
ord 0ord 1ord 2ord 3ord 4ord 5ord 6ord 7
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
”1” ”0”
Dioder (ettor) placeras i diodmatrisens skärningar vid tillverkningsprocessen, “mask-programmerade”
Digital och Datorteknik – EDA451 2009/2010
EPROM (1971)
16Dataväg och minne
Dov Frohman uppfann EPROM (Intel)
Intel 1702, EPROM.UV-ljus användes för att radera minnet.
Intel EPROM- programmerare (1971)
Digital och Datorteknik – EDA451 2009/2010
FLASH 1988
17Dataväg och minne
NOR-FLASH
NAND-FLASH
”BLOCK”-minnes åtkomst
MINNE STYRKRETS
Digital och Datorteknik – EDA451 2009/2010
Läs-cykel
18Dataväg och minne
Exempel: Kopiera minnesinnehåll på adress (FF)16 till register A
OEB
1OEA
1
ALU
B
LDB
CPA
LDA
CP T
LDT
CP
R
LDR
CP
OER1
f0f1f2f3
Cin
C
V
Z
N
MWMinne
MAR
LDMAR
CP
Adress
Data MR
CP
Cykel Operation (RTN) Aktiva styrsignaler Beskrivning1 (FF)16→R f3, f2, f1, f0, LDR F(15), dvs f3=1,f2=f1=f0=1. dvs. FF placeras i R2 R→MAR OER,
LDMAR
FF kopplas till bussen. Vid klockpuls laddas MAR
3 M(MAR) →A MR LDA
Lässignal till minnetVid klockpuls laddas minnesinnehåll i A
FF
FF
M(FF)
Digital och Datorteknik – EDA451 2009/2010
19Datavä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.
Digital och Datorteknik – EDA451 2009/2010
20Datavä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)
CP OE LD Mem ALU Funk Source RTNS1 A B R A B T R R W 3 2 1 0 Cin 1 2
1 1 24 04 24→M(04)
2 1 13 05 13→M(05)
Digital och Datorteknik – EDA451 2009/2010
21Datavä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 RSkriv tillbaks resultatet till minnet från register R
CP OE LD Mem ALU Funk Source RTNS1 A B R A B T R R W 3 2 1 0 Cin 1 2
3 1 1 04 M(04)→T
4 1 1 1010 05 M(05)+T→R
5 1 1 06 R→M(06)
Digital och Datorteknik – EDA451 2009/2010
John Louis Von Neumann (1903-1957)”Det lagrade programmets princip”, dvs
program och data i samma minne.
Program och minne
22Dataväg och minne
Maskinprogram i minnet
Tillhörande assemblerprogram
Instruktion
Adress
Data
Digital och Datorteknik – EDA451 2009/2010
Maskininstruktioner
23Dataväg och minne
(Adress)16
00000000 00
Innehåll
11110000 01
00000000 FF xxxxxxxx FE
10101100 02 00110100 03 11001110 04 01011100 05
instruktion 1
instruktion 2
instruktion 3
data
Kan ha olika “INSTRUKTIONSFORMAT”
EXEMPEL:
Digital och Datorteknik – EDA451 2009/2010
24Dataväg och minne
OP-kod AdrADDB Adr
OP-kodTFR B,A
Instruktionsformat
LDAB #data OP-kod data
Exempelvis:
Maskinprogram000100012
001000112
001010012
111100112
000000102
010011112
000000112
011000012
000100112
Instruktion”mnemonic”
Assemblerprogram
operand-information
Adress
”Byte-wide” 8 bitar data på varje adress
Digital och Datorteknik – EDA451 2009/2010
Exempel: Instruktionen ”Clear”
25Dataväg och minne
Instruktion Adressering Operation FlaggorClear Variant metod OP # ~ N Z V CCLRA Inherent 47 1 4 0 A 0 1 - 0CLRB Inherent 48 1 4 0 B 0 1 - 0CLR <ADR> Absolute 49 2 5 0 M(ADR) 0 1 - 0
Följande instruktionsbeskrivning specificerar ”Clear”. Instruktionen nollställer operanden och finns i olika varianter:
CLRA nollställ register ACLRB nollställ register BCLR <ADR> nollställ minnesinnehåll
Antag att vi placerar instruktionssekvensen i minnet med start på adress 01, minnet skulle då få följande utseende:CLRACLRBCLR (55)16
0100011101010010000201001001030101010104
OP-kod, (47)16
OP-kod, (48)16
OP-kod, (49)16
operandinformation,(55)16
Digital och Datorteknik – EDA451 2009/2010
OEPC1
OEB1
OEA1
MinneCP
MW
MR
g1g0
0
1
C
C
ALU
B
LDB
CPA
LDA
CP T
LDT
CP
R
LDR
CP
OER1
I
LDI
CP
0
1
2
3
g2
MA
LDMA
CP
Adress
Data
CCR
LDCCR
CP
OECCR1
0 1
b 3 b
2 b
1 b
0
N Z
V C
N Z V C
PC
LDPC
CP
INCPC
f3 f2 f1 f0
flaggor
Styrenhet
CP
Reset
operations-kod
styrsignaler
Dataväg för program i minne
26Dataväg och minne
Digital och Datorteknik – EDA451 2009/2010
Centralenhetens instruktionsbearbetning
27Dataväg och minne
EXECUTEFETCH
Utför maskininstruktion
Hämta maskininstruktion från minne
I sin enklaste form kan bearbetningen av en instruktion delas in i två faser
Digital och Datorteknik – EDA451 2009/2010
Instruktionshämtning – ”FETCH”
28Dataväg och minne
Cykel Operation (RTN)
Aktivastyrsignaler
Beskrivning
1 PC→MAPC+1→PC
OEPC,LDMA
INCPC
Innehållet i PC adresserar minnetUppdateras för att peka på nästa minnesposition
2 M(MA) →I MR,LDI Läsning från minnet till instruktionsregistret.
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.
OEPC1
OEB1
OEA1
MinneCP
MW
MR
g1g0
0
1
C
C
ALU
B
LDB
CPA
LDA
CP T
LDT
CP
R
LDR
CP
OER1
I
LDI
CP
0
1
2
3
g2
MA
LDMA
CP
Adress
Data
CCR
LDCCR
CP
OECCR1
0 1
b3
b2
b1
b0
N Z
V C
N Z V C
PC
LDPC
CP
INCPC
f3 f2 f1 f0
flaggor
Styrenhet
CP
Reset
operations-kod
styrsignaler
Digital och Datorteknik – EDA451 2009/2010
29Datavä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
Digital och Datorteknik – EDA451 2009/2010
30Dataväg och minne
FETCH - Hämtningsfas
State RTN Styr-signaler
Kommentar
0 PC→MA,
PC+1→PC
OEPC=1, LDMA=1,
IncPC=1.
Adressen till instruktionens operationskod kopieras från PC till minnesadressregistret MA. Adressen som finns i PC ökas med ett.
1 MI MR=1, LDI=1.
Läs operationskoden från minnet. Placera den i instruktionsregistret I. Nästa state skall vara det första i EXECUTE-sekvensen.
Det förutsätts alltså att det finns en operationskod på denna adress..
FETCH
EXEMPEL: PC = (0C)16
Digital och Datorteknik – EDA451 2009/2010
31Dataväg och minne
EXECUTE - Utförandefas Utförandefasen är unik för varje instruktion.
Exempel: INCAOP-kodInstruktionsformat
State RTN Styrsignaler Kommentar0 A+1→R,
Flaggor→CC OEA=1, f3=1,g0=1,LDR=1,LDCC=1
ALU-funktionen (1000) utför “A+0+Cin”.g0=1 väljer Cin = 1.Resultatet överförs till R.ALU’ns flaggor (NZCV) överförs till flaggregister CC.
1 R→A OER=1, LDA=1NF=1
Resultatet från operationen (i R) återförstill register A.Nästa klockcykel skall vara den första i ny FETCH-sekvens.
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.
Detaljerad beskrivning av instruktionen
EXECUTE
NF
NF
Digital och Datorteknik – EDA451 2009/2010
32Dataväg och minne
Exempel: LDAA #data
OP-kod dataInstruktionsformat
State RTN Styrsignaler Kommentar0 PC→MA,
PC+1→PCOEPC=1, LDMA=1,IncPC=1.
Instruktionens datadel finns i minnesordet efter OP-koden. När EXECUTE-sekvensen inleds pekar PC på instruktionens datadel. PC kopieras därför över till minnesadressregistret MA så att datadelen kan läsas från minnet under nästa klockcykel. Innehållet i PC ökas med ett, så att PC pekar på nästa adress i minnet där OP-koden för nästa instruktion skall finnas.
1 M→A MR=1, LDA=1,NF=1
Läs instruktionens datadel "Data" från minnet och placera den i A-registret.Nästa klockcykel skall vara den första i ny FETCH-sekvens.
LDAA #data Load A Immediate
RTN: Data A
Flaggor: Påverkas ej.
Beskrivning: Laddar dataord från instruktionen till register A.
Detaljerad beskrivning av instruktionen
Digital och Datorteknik – EDA451 2009/2010
33Dataväg och minne
Exempel: LDAA Adr
OP-kod AdrInstruktionsformat
State RTN Styrsignaler Kommentar0 PC→MA,
PC+1→PCOEPC=1, LDMA=1,IncPC=1.
“Adressen till Adr”, dvs PC, vid execute-fasens början, adresserar minnet för att kunna läsa “Adr”.
1 M→MA MR=1, LDMA=1,
“Adr” läses och placeras direkt i MA för att vi i nästa fas ska kunna adressera minnet.
2 M→A MR=1, LDA=1,NF=1
Data från “Adr” läses...... och placeras i register A .Nästa klockcykel skall vara den första i ny FETCH-sekvens.
LDAA Adr Load A from memory
RTN: Data A
Flaggor: Påverkas ej.
Beskrivning: Laddar dataord från minnet till register A.
Detaljerad beskrivning av instruktionen
Digital och Datorteknik – EDA451 2009/2010
Centralenhetens arbetsätt
34Dataväg och minne
EXECUTEFETCHRESET
NF
NF NF NF
NF NF
FETCH EXECUTERESET
Digital och Datorteknik – EDA451 2009/2010
RESET - Återställningsfas
35Dataväg och minne
S RTN-beskr
Styrsignaler Kommentar
0 FF16→R ALU-fkn = F16, LDR=1.
ALU-funktionen väljs så att talet FF16 finns på ALU:ns utgång. Laddingången på R-registret ettställs så att utvärdet från ALU’n (FF16) laddas i R-registret vid nästa klockpuls.
1 R→MA OER=1, LDMA=1.
Talet FF16 i R-registret kopplas ut på bussen. Bussinnehållet laddas i minnesadressregistret vid nästa klockpuls.
2 M→PC MR=1, LDPC=1.
Minnesinnehållet på adressen FF16 läses. Det dataord som läses placeras i PC vid nästa klockpuls.Nästa klockcykel skall vara den första i FETCH-sekvensen.
(Start-tillstånd)
RESET
I exemplet placeras adressen 0C i PC. En instruktion förutsätts finnas på denna adress.