21
Maskinorienterad Programmering 1 Datorsystemets bussar

EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 , ”Uppbyggnad.pdf” Ur innehållet:

  • Upload
    kaoru

  • View
    40

  • Download
    0

Embed Size (px)

DESCRIPTION

EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 , ”Uppbyggnad.pdf” Ur innehållet: Datorns byggblock Busskommunikation Synkron buss Asynkron buss Multiplex-buss Adressavkodning för minne och I/O Minnesavbildad I/O Direktadresserad I/O. Adressrum, programmerarens bild. - PowerPoint PPT Presentation

Citation preview

Page 1: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

1Datorsystemets bussar

Page 2: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

Adressrum, programmerarens bild

2Datorsystemets bussar

Linjärt fysiskt adressrum

Segmenterat adressrum

”Bank”-indelat adressrum

PC

IP

DP

PC

BANK

CS

DS

Page 3: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

Datorsystemets bussar 3

HCS12DG256,blockdiagram

Page 4: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

Datorsystemets bussar 4

Minne och IO

AD – Analog till Digital omvandling

ECT- Räknarkretsar för noggrann tidmätning

SCI – Asynkron seriekommunikation

Parallell In-Utmatning

PWM – Pulsbreddsmodulering

Etc…

Page 5: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

Buss-system

Datorsystemets bussar 5

Central-

enhet

Central-

enhetMinnes-enheter

Minnes-enheter

Gränssnitt mot yttre enheter

Gränssnitt mot yttre enheter

databussadressbuss

styrbuss

Page 6: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

Buss protokoll

Datorsystemets bussar 6

•”Språket”, betydelsen av hög respektive låg logiknivå•Organisation av bitarna i ett ord, ”endian bit order”•Organisation av bytes i ett ord ”endian byte order”•Tidsegenskaper, händelser korrekt ordnade i tid

Page 7: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

Logiknivåer

”Aktiv hög” – Logiknivå 1, ”Enable”

”Aktiv låg” – Logiknivå 0, ”Enable”

Datorsystemets bussar 7

Page 8: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

Bit ordning ”bit endianess”

Datorsystemets bussar 8

b7 b6 b5 b4 b3 b2 b1 b0

b0 b1 b2 b3 b4 b5 b6 b7

big-endian (”LSB 0”)

little-endian (”MSB 0”)

8-bitars ord där b7 är den MEST signifikanta biten och b0 den MINST signifikanta biten

Page 9: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

Byte ordning

Datorsystemets bussar 9

α+n

LSB MSB

α

minne register

little-endian byte ordningbig-endian byte ordning

MSB LSB

α

α+n

minne register

Page 10: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

Exempel: HCS12/Intel 8086 byte ordning

Datorsystemets bussar 10

HCS12

(big endian)

11

α

α+1

minne

register D

A22B

11

22

8086

(little endian)

11

α

α+1

minne

register AXAH

22

AL

22

11

Page 11: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

Busskommunikation

Datorsystemets bussar 11

Synkron buss

Multiplex-buss

Asynkron buss

Processor

Adress- buss Data- buss

Processor

A/D

Adress och data-buss

Data Data Data Data Data Data

Adr Adr

Klocka

Buss-cykel

Buss-cykel

Data buss

Adr Adr. buss

Buss-cykel

Adr Adr Adr

Buss-cykel

Buss-cykel

centralenhet perifer enhet

Adressbuss

Databuss

Giltig adress

Accept/UtförtACK

VA

Databuss

Klocka

ACK

VA

Adressbuss

centralenhet perifer enhet

Adressbuss

Databuss

ECLK

R/W

Data

Klocka

BusscykelBusscykel

Buss

A/D

DataAdress Adress

Page 12: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

Synkron buss

Datorsystemets bussar 12

centralenhet perifer enhet

Adressbuss

Databuss

ECLK

R/W

Processor

Adress- buss Data- buss

Page 13: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

”Timing”

Datorsystemets bussar 13

Page 14: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

Multiplex

Datorsystemets bussar 14

central enhet

A/D

Adress och data-buss

Data Adr H

Adr L

Klocka

Busscykel Busscykel

Buss

A/D

Data

Adr L Adr H

A/D 0 A/D 1 A/D 2 A/D 3 A/D 4 A/D 5 A/D 6 A/D 7

A/D

Kombinerad Adressbuss/Databuss, 8 bitar

Styrsignal, Adress eller Data

16 bitar adress8 bitar data8 bitar fysisk buss

Page 15: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

Multiplex

Datorsystemets bussar 15

Data

Klocka

BusscykelBusscykel

Buss

A/D

DataAdress Adress

central enhet

A/D

Adress och data-buss

16 bitar adress8 bitar data16 bitar fysisk buss

A0/D 0 A1/D 1 A2/D 2 A3/D 3 A4/D 4 A5/D 5 A6/D 6 A7/D 7

A8A9

A10A11A12A13A14A15

A/D

Kombinerad Adressbuss Låg/Databuss, 8 bitar

Styrsignal, Adress eller Data

Adressbuss hög 8 bitar

Page 16: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

Datorsystemets bussar 16

Multiplex

16 bitar adress16 bitar data16 bitar fysisk buss

A0/D 0 A1/D 1 A2/D 2 A3/D 3 A4/D 4 A5/D 5 A6/D 6 A7/D 7

A8/D8A9/D9

A10/D10A11/D11A12/D12A13/D13A14/D14A15/D15

A/D

Kombinerad Adressbuss/Databuss, 16 bitar

Styrsignal, Adress eller Data

central enhet

A/D

Adress och data-buss

Data

Klocka

BusscykelBusscykel

Buss

A/D

DataAdress Adress

Page 17: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

Programmerbar konfiguration hos HCS12

Datorsystemets bussar 17

Vid ”RESET” avläses nivåerna hos pinnarBKGD, PE6, PE5, PK7, ROMONDärefter sätts ev. Port A/B som adress/databuss

Page 18: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

SynkronMultiplex-buss, CPU12

Datorsystemets bussar 18

CPU12latch

Vid positiv flank hos E(CLK) ”låses” adressen via latchen

E

16-bitars adressbuss

16-bitars databuss

dataöverföringadress ”låses”

Page 19: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

Asynkron buss

Datorsystemets bussar 19

Databuss

Klocka

ACK

VA

Adressbuss

Dessutom signalerRE, Read EnableWE, Write EnableBestämmer riktning på dataöverföring

Centralenheten signalerar”Giltig adress på adressbussen”

Perifer enhet signalerar”Data har placerats på databussen” (om RE)”Data kar klockats in från databussen” (om WE)

Page 20: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

Datorsystemets bussar 20

Asynkron buss

Databuss

Klocka

ACK

VA

Adressbuss

1

RE

2 3

wait state

Vid ”1” börjar periferienheten avkoda adressen från adressbussen, detta tar en kort stund, varefter databussen drivs av periferienheten och ACK-signalen aktiveras. ACK-signalen upptäcks av centralenheten vid ”2” och databussen läses av vid nästa positiva klockflank ”3”. Antalet klockcykler från det att centralenheten upptäcker ACK, tills data klockas in från databussen kallas väntecykler (”wait states”).

Page 21: EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 ,  ”Uppbyggnad.pdf” Ur innehållet:

Maskinorienterad Programmering

Datorsystemets bussar 21

Asynkron buss, synkrona minnen

CPUavkodnings-logik

adress

ACK-logik

data

1

ACKCEVA

Enkel ”ACK-logik”

CE VA ACK

0 0 0

0 1 1

1 0 1

1 1 1

CE, VA och ACK är aktivt låga