35
Digital och Datorteknik – EDA451 2009/2010 1 Datavä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

EDA 451 - Digital och Datorteknik Dagens föreläsning: Dataväg och minne,

Embed Size (px)

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 Presentation

Citation preview

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.