In che modo la latenza e la larghezza di banda formano un compromesso?

4

Dalla sezione pipeline di istruzioni in Structured Computer Organization di Tanenbaum:

Pipelining allows a trade-off between latency (how long it takes to execute an instruction), and processor bandwidth (how many MIPS the CPU has).

With a cycle time of T nsec, and n stages in the pipeline, the latency is nT nsec because each instruction passes through n stages, each of which takes T nsec.

Since one instruction completes every clock cycle and there are 10^9/T clock cycles/second, the number of instructions executed per second is 10^9/T. To get the number of MIPS, we have to divide the instruction execution rate by 1 million to get (10^9/T)/10^6 = 1000/T MIPS.

Penso che la minore latenza sia, meglio è, e maggiore è la larghezza di banda, meglio è. Poiché i due sono correlati come reciproci, si muovono sempre simultaneamente in entrambe le direzioni, buone o cattive. Allora, come fanno le due forme di compromesso? Grazie.

    
posta Tim 11.02.2015 - 23:51
fonte

2 risposte

7

La risposta breve è che non sono correlati come reciproci.

Supponiamo di avere una CPU molto noiosa con un'istruzione che richiede 1 ns per essere completata. Pertanto la tua latenza è 1 ns e la tua larghezza di banda è 1 istruzione per ns.

Supponiamo di aggiungere una fase della pipeline per suddividere le istruzioni in fasi di recupero ed esecuzione. Ognuna di queste fasi potrebbe essere in grado di completare in 0,5 ns, quindi ora puoi aumentare la velocità di clock, ma non puoi raddoppiarla, perché hai aggiunto il sovraccarico della logica della pipeline. Inoltre, tutti gli stadi devono utilizzare lo stesso orologio, anche se uno è più veloce di un altro. Quindi forse puoi fare un orologio a 0.6 secondi. La tua latenza è ora aumentata a 1,2 ns, ma anche la larghezza di banda è aumentata a 1,7 istruzioni per ns.

La relazione non è lineare, soprattutto quando sei già vicino ai limiti della tecnologia dei semiconduttori, ma la latenza e la larghezza di banda aumentano entrambi quando vengono aggiunti gli stadi della pipeline, fino a un certo punto.

    
risposta data 12.02.2015 - 00:36
fonte
1

Non sono reciproci. Queste equazioni non forniscono una relazione completa tra latenza, MIPS e fasi della pipeline; in questo estratto vengono utilizzati solo per definire cosa intende per "latenza" e "MIPS" in modo che la sua affermazione sul compromesso sia più precisa.

Il compromesso di cui parla Tanenbaum è che quando dividi la pipeline della CPU in più fasi, puoi eseguire più istruzioni in parallelo (più larghezza di banda), ma ogni istruzione impiega più tempo a terminare a causa della complessità aggiunta (più latenza). / p>     

risposta data 12.02.2015 - 00:18
fonte

Leggi altre domande sui tag