EDA 480 – Maskinorienterad Programmering 2009/2010 MC68HC12 , ”Uppbyggnad.pdf” Ur...

Preview:

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

Maskinorienterad Programmering

1Datorsystemets bussar

Maskinorienterad Programmering

Adressrum, programmerarens bild

2Datorsystemets bussar

Linjärt fysiskt adressrum

Segmenterat adressrum

”Bank”-indelat adressrum

PC

IP

DP

PC

BANK

CS

DS

Maskinorienterad Programmering

Datorsystemets bussar 3

HCS12DG256,blockdiagram

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…

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

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

Maskinorienterad Programmering

Logiknivåer

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

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

Datorsystemets bussar 7

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

Maskinorienterad Programmering

Byte ordning

Datorsystemets bussar 9

α+n

LSB MSB

α

minne register

little-endian byte ordningbig-endian byte ordning

MSB LSB

α

α+n

minne register

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

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

Maskinorienterad Programmering

Synkron buss

Datorsystemets bussar 12

centralenhet perifer enhet

Adressbuss

Databuss

ECLK

R/W

Processor

Adress- buss Data- buss

Maskinorienterad Programmering

”Timing”

Datorsystemets bussar 13

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

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

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

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

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”

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)

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”).

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

Recommended