La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Durata istruzioni e programmi Ogni istruzione in linguaggio di basso livello ha una sua durata definita, ricavabile dal set di istruzioni; nel caso dello.

Presentazioni simili


Presentazione sul tema: "Durata istruzioni e programmi Ogni istruzione in linguaggio di basso livello ha una sua durata definita, ricavabile dal set di istruzioni; nel caso dello."— Transcript della presentazione:

1 Durata istruzioni e programmi Ogni istruzione in linguaggio di basso livello ha una sua durata definita, ricavabile dal set di istruzioni; nel caso dello Z80 è indicata nella colonna No of T cycles (numero di cicli T) e varia da un minimo di 4, per le istruzioni più semplici, a un massimo di 23. T è il periodo relativo alla frequenza di lavoro del microprocessore (per lo Z80 varia da 2,5 a 4 MHz); moltiplicando quindi T per il numero di cicli dell istruzione, si ha la durata di una singola esecuzione della stessa; dunque, sapendo con precisione il numero di volte (iterazioni) che ogni istruzione sarà eseguita durante l esecuzione completa di un programma, è possibile risalire all intera durata dello stesso. Anelli di ritardo Spesso è opportuno sincronizzare il sistema a microprocessore, creando artificiosamente nel programma dei tempi morti apparentemente inutili, ma in realtà necessari a dare il tempo, alle periferiche collegate, di svolgere il loro compito, prima che la CPU svolga le operazioni successive. Questi sono detti anelli di ritardo (delay loop), costituiti da un determinato blocco di istruzioni, di durata definita. Ipotizzando di impiegare una CPU Z80 che lavora a 2,5 MHz, in un blocco costituito dalle istruzioni: labelcod.opoperandin. cicli Titerazionicicli T tot. ……………………………………… LDA,64H717 L1:DECA JPNZ,L la prima istruzione viene eseguita una volta, la seconda e la terza vengono ripetute 100 volte, fino a che il registro A si azzera e il salto all indietro non avviene più, essendo 64H il corrispondente esadecimale di ; la durata totale del blocco è uguale alla somma dei cicli T totali di ogni istruzione, cioè 1407 moltiplicato per 0,4 x sec, che è il periodo relativo alla frequenza di lavoro della CPU (T = 1/f), vale a dire 562,8 x (μsec).

2 Utilizzando per la struttura precedente un registro a 8 bit, la massima durata possibile, caricando il registro a 00H così da avere 256 decrementi prima del nuovo azzeramento, è di 1,4364 msec; per ottenere un anello di durata maggiore si hanno due possibilità: 1° - usare un registro a 16 bit, con l accortezza di inserire istruzioni che alterino il flag di zero (l istruzione DEC BC, come tutte le istruzioni di incremento e decremento a 16 bit, non altera il flag di zero), per controllare la condizione di salto, come nell esempio: labelcod.opoperandin. cicli Titerazionicicli T tot. ……………………………………… LDBC,0000H 717 L1:DECBC LDA,B ORC JPNZ,L dove (2 16 ) è il numero di decrementi del registro BC necessari ad azzerarlo di nuovo; così la massima durata possibile è x 0,4 x 10 -6, vale a dire ,6 μsec (0,63 secondi circa). 2° - creare una struttura ad anelli nidificati, come nell esempio: labelcod.opoperandin. cicli Titerazionicicli T tot. ……………………………………… LDA,02H717 *L1:LDB,03H7214 **L2:LDC,04H7642 ***L3:DECC42496 ***JPNZ,L **DECB4624 **JPNZ,L *DECA428 *JPNZ,L

3 nella precedente struttura a 3 anelli nidificati, la prima istruzione (priva di etichette o label) viene eseguita una volta, le istruzioni contrassegnate da un asterisco vengono ripetute 2 volte, perché dipendono solo dall azzeramento del registro A, le istruzioni con il doppio asterisco vengono ripetute 6 volte (2 x 3 volte), perché dipendono dall azzeramento dei registri A e B (quest ultimo viene ricaricato a 3 ogni volta che A risulta diverso da 0), le istruzioni con il triplo asterisco vengono ripetute 24 volte (2 x 3 x 4 volte) perché dipendono dall azzeramento di tutti e tre i registri (il registro C viene ricaricato a 4 ogni volta che B risulta diverso da 0). Nell esempio la durata del blocco è data dalla somma dei cicli totali di ogni istruzione, cioè 511 moltiplicato x 0,4 x 10 -6, vale a dire 204,4 μsec. La formula: durata totale = {7 + [21 + ( x N 3 ) x N 2 ] x N 1 } x T aiuta a determinare, per tentativi, i numeri N 1, N 2 e N 3 da caricare nell ordine (dopo averli convertiti in esadecimale) nei 3 registri a 8 bit, per la struttura a 3 anelli nidificati; in questo caso, sempre alla frequenza di lavoro di 2,5 MHz, la massima durata possibile è di μsec, vale a dire 1 minuto 34 secondi e 5 decimi circa.


Scaricare ppt "Durata istruzioni e programmi Ogni istruzione in linguaggio di basso livello ha una sua durata definita, ricavabile dal set di istruzioni; nel caso dello."

Presentazioni simili


Annunci Google