Räknare

All programexekvering innebär att rätt adress måste pekas ut av adresshanteraren för att processorn ska kunna utföra nästkommande instruktion i programmet. Programräknare och adresshantering:

All programexekvering innebär att rätt adress måste pekas ut av adresshanteraren för att processorn ska kunna utföra nästkommande instruktion i programmet. Denna processor klarar minneshantering med bredden 16 bitar, trots den interna databussen om endast 8 bitar. Eftersom adresshanteraren måste bygga upp hela adressbredden under flera klockcykler innebär det en viss prestandasänkning.

Programräknaren driver via adressväljaren, ASEL, processorns adressbuss och pekar därmed ut vilken byte i programminnet som skall läsas av processorn. Vid normal programavverkning stegas programräknaren framåt med signalen IPC. Vid hoppinstuktioner kan PC laddas med den nya adressen genom signalen WPC. Destinationsadressen skall då finnas tillgänglig i H_L_int och via SPA=00 vidarebefodras den till signalen pc_del_int. För återhopp väljs återhoppsadressen från stacken via PCSEL, kontrollsignalen SPA skall då driva “01”.

Avbrottsrutinerna däremot startar alltid från den fasta adressen “0008” varför SPA intället driver “10” eller “11”. Återhoppsadressen finns redan lagrad i stacken och nås automatiskt vid instruktionen RTI, return from interrupt.

Vid tillfällig adressering av annan adress, exempelvis vid inläsning av variabel från yttre dataminne, skall den önskade adressen finnas tillgänglig i adressregistren HAR och LAR. Den resulterande 16-bitars adress kopplas via ASEL ut till databussen utan att värdet i PC påverkas.

Leave a Reply

Your email address will not be published. Required fields are marked *

Erfaren HW- Mjukvarukonstruktör, testare, verifierare, VHDL-programmerare och administratör