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 Datorsystemets bussar
Adressrum, programmerarens bild Linjärt fysiskt adressrum Segmenterat adressrum ”Bank”-indelat adressrum CS IP PC PC DS BANK DP Datorsystemets bussar
HCS12DG256, blockdiagram Datorsystemets bussar
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… Datorsystemets bussar
Gränssnitt mot yttre enheter Buss-system Central- enhet Minnes- enheter Gränssnitt mot yttre enheter databuss adressbuss styrbuss Datorsystemets bussar
Buss protokoll ”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 Datorsystemets bussar
Logiknivåer ”Aktiv hög” – Logiknivå 1, ”Enable” ”Aktiv låg” – Logiknivå 0, ”Enable” Datorsystemets bussar
Bit ordning ”bit endianess” 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 Datorsystemets bussar
Byte ordning α+n LSB MSB α minne register little-endian byte ordning big-endian byte ordning Datorsystemets bussar
Exempel: HCS12/Intel 8086 byte ordning (big endian) 11 α α+1 minne register D A 22 B 8086 (little endian) register AX AH AL Datorsystemets bussar
Busskommunikation Synkron buss Multiplex-buss Asynkron buss centralenhet perifer enhet Adressbuss Databuss ECLK R/W Data Klocka Busscykel Buss A/D Adress centralenhet perifer enhet Adressbuss Databuss Giltig adress Accept/Utfört ACK VA Datorsystemets bussar
Synkron buss Datorsystemets bussar centralenhet perifer enhet Adressbuss Databuss ECLK R/W Datorsystemets bussar
”Timing” Datorsystemets bussar
Multiplex 16 bitar adress 8 bitar data 8 bitar fysisk buss Kombinerad Adressbuss/ Databuss, 8 bitar Styrsignal, Adress eller Data 16 bitar adress 8 bitar data 8 bitar fysisk buss Datorsystemets bussar
Multiplex 16 bitar adress 8 bitar data 16 bitar fysisk buss Klocka A/D Kombinerad Adressbuss Låg /Databuss, 8 bitar Styrsignal, Adress eller Data Adressbuss hög 16 bitar adress 8 bitar data 16 bitar fysisk buss Data Klocka Busscykel Buss A/D Adress Datorsystemets bussar
Multiplex 16 bitar adress 16 bitar data 16 bitar fysisk buss Klocka Kombinerad Adressbuss /Databuss, 16 bitar Styrsignal, Adress eller Data 16 bitar adress 16 bitar data 16 bitar fysisk buss Data Klocka Busscykel Buss A/D Adress Datorsystemets bussar
Programmerbar konfiguration hos HCS12 Vid ”RESET” avläses nivåerna hos pinnar BKGD, PE6, PE5, PK7, ROMON Därefter sätts ev. Port A/B som adress/databuss Datorsystemets bussar
Synkron Multiplex-buss, CPU12 Vid positiv flank hos E(CLK) ”låses” adressen via latchen E CPU12 latch adress ”låses” dataöverföring 16-bitars adressbuss 16-bitars databuss Datorsystemets bussar
Asynkron buss Dessutom signaler RE, Read Enable WE, Write Enable Bestä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) Datorsystemets bussar
Asynkron buss 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”). Datorsystemets bussar
Asynkron buss, synkrona minnen CPU avkodnings-logik adress ACK-logik data CE VA ACK 1 CE, VA och ACK är aktivt låga Enkel ”ACK-logik” 1 ACK CE VA Datorsystemets bussar