Vai al contenuto
Microelettronica

Ritardi nei circuiti integrati: Elmore e logical effort

Ritardo di Elmore delle reti RC, sforzo logico ed elettrico, ritardo minimo di un percorso dimostrato con la media geometrica, numero ottimo di stadi, catena di invertitori.

Quanto è veloce una porta logica, e come si dimensionano i transistor per pilotare un carico grande nel minor tempo possibile? Le simulazioni danno risposte precise, ma per progettare servono modelli semplici che indichino la direzione giusta. In questa lezione vediamo il ritardo di Elmore delle reti RC, il modello del logical effort per il ritardo delle porte, la dimostrazione di come si minimizza il ritardo di un percorso distribuendo lo sforzo in parti uguali, e un esempio con una catena di invertitori.

Il ritardo di Elmore

Una porta che commuta carica o scarica le capacità a valle attraverso la resistenza dei suoi transistor e dei collegamenti: una rete RC. Per una rete ad albero alimentata da un gradino, una stima molto usata del ritardo verso il nodo i è il ritardo di Elmore

    \[ t_{D,i} = \sum_k R_{ik}\,C_k \]

dove la somma è su tutte le capacità C_k della rete e R_{ik} è la resistenza del tratto di percorso in comune tra il percorso dalla sorgente al nodo i e quello dalla sorgente al nodo k. Per una catena di N tratti, con resistenze R_1, \dots, R_N e capacità C_1, \dots, C_N, diventa t_D = \sum_{k=1}^{N}C_k\sum_{j=1}^{k}R_j: ogni capacità è caricata attraverso tutte le resistenze che la precedono.

L’idea è che ogni capacità, per caricarsi, fa passare la propria carica attraverso le resistenze in comune con il percorso osservato, e ciascuna vi produce una caduta che ritarda il nodo. Matematicamente il ritardo di Elmore è il primo momento della risposta all’impulso della rete, ed è un limite superiore del ritardo al 50 %: impreciso nei dettagli, ma semplice, additivo e quasi sempre nel verso giusto, perfetto per confrontare alternative.

Il modello del logical effort

Il ritardo di una porta, misurato in unità \tau (il ritardo di un invertitore ideale che pilota un invertitore uguale), si scrive

    \[ d = g\,h + p \]

  • h = C_{out}/C_{in} è lo sforzo elettrico (fan-out elettrico): quanto carico pilota rispetto alla propria capacità d’ingresso;
  • g è lo sforzo logico: quanto la porta è peggiore di un invertitore nel produrre corrente a parità di capacità d’ingresso. Vale 1 per l’invertitore, 4/3 per una NAND a due ingressi, 5/3 per una NOR a due ingressi, perché i transistor in serie vanno allargati per dare la stessa corrente;
  • p è il ritardo parassita, dovuto alla capacità propria dell’uscita: circa 1 per l’invertitore, 2 per la NAND a due ingressi.

Il prodotto f = gh è lo sforzo di stadio.

Il ritardo minimo di un percorso

Per un percorso di N stadi si definisce lo sforzo di percorso F = G\,H\,B, prodotto dello sforzo logico totale G = \prod g_i, dello sforzo elettrico totale H = C_{carico}/C_{ingresso} e di un fattore B per le diramazioni. F non dipende da come si dimensionano le porte intermedie: è fissato dal carico finale, dalla capacità d’ingresso concessa e dalla logica.

Teorema. Il ritardo di un percorso di N stadi con sforzo di percorso F è minimo quando tutti gli stadi hanno lo stesso sforzo

    \[ f = F^{1/N} \]

e vale allora D_{min} = N\,F^{1/N} + \sum p_i.

Dimostrazione. Il ritardo è D = \sum f_i + \sum p_i, e il secondo termine non dipende dal dimensionamento. Il prodotto degli sforzi di stadio è fissato: \prod f_i = \prod g_ih_i = G\,H\,B = F, perché i carichi intermedi si semplificano tra uno stadio e il successivo. Per la disuguaglianza tra media aritmetica e media geometrica, \frac{1}{N}\sum f_i \ge \left(\prod f_i\right)^{1/N} = F^{1/N}, con uguaglianza solo se tutti gli f_i sono uguali. Quindi \sum f_i è minima, e vale NF^{1/N}, quando ogni stadio ha sforzo F^{1/N}. ∎

Si può anche scegliere il numero di stadi: minimizzando NF^{1/N} + Np_{inv} rispetto a N si trova che lo sforzo di stadio ottimo è circa 3,6, in pratica tra 3 e 5. Aggiungere invertitori a un percorso troppo corto lo rende più veloce, e toglierli da uno troppo lungo pure.

Un esempio

Catena di quattro invertitori che pilota un carico 256 volte la capacità d'ingresso
Ogni invertitore è quattro volte più grande del precedente: ogni stadio ha sforzo 4, il valore che minimizza il ritardo complessivo.

Un segnale con capacità d’ingresso C_{in} deve pilotare un carico C_L = 256\,C_{in}, per esempio un bus lungo o un pad d’uscita. Con un solo invertitore il ritardo è 256 + 1 = 257\,\tau. Con una catena di invertitori lo sforzo di percorso è F = 256; con N = 4 stadi lo sforzo ottimo di ciascuno è 256^{1/4} = 4, e ogni invertitore deve essere quattro volte più grande del precedente: 1, 4, 16, 64. Il ritardo totale è 4\cdot 4 + 4\cdot 1 = 20\,\tau, quasi tredici volte meno. È il motivo per cui i buffer d’uscita e i circuiti che pilotano i clock sono catene di invertitori via via più grandi, e per cui un progettista esperto, guardando un percorso critico, cerca per prima cosa gli stadi con uno sforzo troppo diverso dagli altri.

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
0
Would love your thoughts, please comment.x
()
x