Autore Topic: Bus quad-pumped vs QPI  (Letto 2437 volte)

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Bus quad-pumped vs QPI
« il: 26 Aprile 2012, 16:35:37 »
Ciao a tutti!
Qualcuno mi sa spiegare bene la differenza tra questi due BUS e come mai, un BUS seriale come il QPI è più veloce del quad-pumped parallelo?
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »
Claudio CP La Rosa

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re: Bus quad-pumped vs QPI
« Risposta #1 il: 26 Aprile 2012, 16:56:28 »
In linea generale, con i bus paralleli sorgono due grossi problemi:
1- interferenza tra le linee
2- Clock skew

1- Alla frequenza di pochi MHz non ci sono problemi, ma salendo di frequenza le piste di rame diventano vere e proprie antenne, pertanto i bus devono essere cortissimi se non vuoi degradare troppo il segnale, oppure devi spaziare maggiormente le linee (enorme spreco di spazio su PCB).
2- la differenza di lunghezza delle piste determina un disallineamento dei fronti di clock delle linee parallele (*). Su circuiti particolari si possono creare piste di "lunghezza controllata", aggiungendo dei tratti a serpentina per far pareggiare la lunghezza delle linee. Anche questo spreca spazio e non puoi farlo per bus troppo ampi (ho visto questo approccio in modulatori in RF e in circuiti di input di strumenti di misura ad alta precisione, come oscilloscopi).

Usando linee di trasmissioni seriali, invece, puoi spingere il clock molto più in alto, risparmiare spazio ed eliminare i circuiti di de-skew.
Inoltre, le linee seriali sono facilmente multiplexabili con pochissimo spazio di PCB e numero di componenti, per cui viene agevole implementare bus locali con logiche di packet switching.

(*) i segnali elettrici si propagano alla velocità della luce. Un'onda quadra da 1GHz presenta un periodo di 1ns. In 1ns la luce percorre solamente 30 cm circa, quindi bastano pochi millimetri di differenza per provocare un disallineamento dei fronti misurabile in alcuni punti percentuali (con un bus da 15cm, e un segnale da 1GHz, all'altro capo del filo arriva un segnale con fase invertita!).
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Re: Bus quad-pumped vs QPI
« Risposta #2 il: 26 Aprile 2012, 17:02:45 »
Questo vuol quindi dire che con soli pochi fili si riescono a trasmettere uno dietro l'altro (serialmente) più informazioni (più bit) nell'unità di tempo rispetto ad un bus più "ampio".
Immagino che la frequenza del bus seriale sia mediamente più alta del corrispondente parallelo (cioè, un BUS seriale che trasmette un byte dovrebbe avere una frequenza di 8 volte maggiore del corrispondente parallelo "ideale"...è un ragionamento corretto questo?) I bus Seriali lavorano in logica binaria (0/1) binaria bilanciata (-1/1) oppure usano una qualche forma MVL (multi-value logic)?
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »
Claudio CP La Rosa

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re: Bus quad-pumped vs QPI
« Risposta #3 il: 26 Aprile 2012, 17:17:56 »
Citazione da: "clros"
Questo vuol quindi dire che con soli pochi fili si riescono a trasmettere uno dietro l'altro (serialmente) più informazioni (più bit) nell'unità di tempo rispetto ad un bus più "ampio".
Immagino che la frequenza del bus seriale sia mediamente più alta del corrispondente parallelo (cioè, un BUS seriale che trasmette un byte dovrebbe avere una frequenza di 8 volte maggiore del corrispondente parallelo "ideale"...è un ragionamento corretto questo?) I bus Seriali lavorano in logica binaria (0/1) binaria bilanciata (-1/1) oppure usano una qualche forma MVL (multi-value logic)?

Esatto, le frequenze sono molto più alte.
Considera che un tipico bus parallelo molto ampio va max a 100-200 MHz (se è un bus DDR, i dati vengono trasmessi su entrambi i fronti del clock, quindi hai un data rate effettivo di 200-400 MHz), mentre con un bus seriale puoi spingerti ad un paio di GHz. Se poi metti in parallelo tanti bus seriali, sembra un controsenso, puoi avere una banda elevatissima senza gli svantaggi del parallelo. Questo è ad esempio il principio di funzionamento del PCI-Express.

Ad esempio se devo comunicare N byte, li suddivido in 4 pacchetti da N/4 byte e invio, serialmente, un pacchetto per ogni linea seriale. In questo modo il controller ricevente deve avere una logica di ricostruzione dei pacchetti, quindi è più complesso e costoso, ma guadagno mostruosamente in velocità di throughput (anche se in realtà aumento le latenze a causa del protocollo di impacchettamento-spacchettamento dei comandi e dei dati).
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Re: Bus quad-pumped vs QPI
« Risposta #4 il: 26 Aprile 2012, 17:30:19 »
Uhmmm molto interessante.
Questo sistema è usato anche all'interno delle CPU per i BUS interni o solo all'esterno?
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »
Claudio CP La Rosa

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re: Bus quad-pumped vs QPI
« Risposta #5 il: 26 Aprile 2012, 19:13:11 »
Citazione da: "clros"
Uhmmm molto interessante.
Questo sistema è usato anche all'interno delle CPU per i BUS interni o solo all'esterno?
solo per bus esterni, dentro il chip le distanze sono molto piccole :)
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Re: Bus quad-pumped vs QPI
« Risposta #6 il: 26 Aprile 2012, 21:41:53 »
Citazione da: "TheKaneB"
Citazione da: "clros"
Uhmmm molto interessante.
Questo sistema è usato anche all'interno delle CPU per i BUS interni o solo all'esterno?
solo per bus esterni, dentro il chip le distanze sono molto piccole :)
Veramente molto interessante!
Ma dove prendi tt qst informazioni? Io sono fermo al mio esame di calcolatori alla statale con il Tanenbaum e vorrei aggiornarmi su qst aspetti tecnici, ma purtroppo o so dove reperire info di livello adeguato (anche perchè, praticamente è come se nn lavorassi affatto nel campo dell'informatica  :cry: )
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »
Claudio CP La Rosa

Offline Z80Fan

  • Administrator
  • Guru
  • *****
  • Post: 1671
  • Karma: +13/-2
    • Mostra profilo
    • http://z80fan.altervista.org
Re: Bus quad-pumped vs QPI
« Risposta #7 il: 27 Aprile 2012, 02:13:45 »
Citazione da: "clros"
Ma dove prendi tt qst informazioni? Io sono fermo al mio esame di calcolatori alla statale con il Tanenbaum e vorrei aggiornarmi su qst aspetti tecnici, ma purtroppo o so dove reperire info di livello adeguato (anche perchè, praticamente è come se nn lavorassi affatto nel campo dell'informatica  :cry: )
Sai, c'è questa cosa che si chiama Internet...

:P
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re: Bus quad-pumped vs QPI
« Risposta #8 il: 27 Aprile 2012, 02:16:27 »
boh, leggo dove capita e memorizzo :-D
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Re: Bus quad-pumped vs QPI
« Risposta #9 il: 27 Aprile 2012, 09:18:53 »
Si vabbè, ma nn riesco a trovare fonti affidabili e contemporaneamente approfondite su internet...almeno non mi sembra...
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »
Claudio CP La Rosa

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re: Bus quad-pumped vs QPI
« Risposta #10 il: 27 Aprile 2012, 10:35:20 »
e allora noi che ci stiamo a fare qui? viewtopic.php?f=64&t=140&p=846

 8-)
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Re: Bus quad-pumped vs QPI
« Risposta #11 il: 27 Aprile 2012, 11:03:30 »
Citazione da: "TheKaneB"
e allora noi che ci stiamo a fare qui? viewtopic.php?f=64&t=140&p=846

 8-)
Grandi!  :lol:

Cmq c'è una cosa che non mi è chiara; avere tanti bus seriali "affiancati" fisicamente, non produce lo stesso effetto di disturbo reciproco che esiste tra le linee di un bus parallelo?
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »
Claudio CP La Rosa

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re: Bus quad-pumped vs QPI
« Risposta #12 il: 27 Aprile 2012, 11:21:34 »
Citazione da: "clros"
Citazione da: "TheKaneB"
e allora noi che ci stiamo a fare qui? viewtopic.php?f=64&t=140&p=846

 8-)
Grandi!  :lol:

Cmq c'è una cosa che non mi è chiara; avere tanti bus seriali "affiancati" fisicamente, non produce lo stesso effetto di disturbo reciproco che esiste tra le linee di un bus parallelo?

si, ma puoi avere un filo di massa per ogni linea di trasmissione (e implementare così un segnale differenziale, che è sostanzialmente immune alle interferenze), implementare un sistema di correzione degli errori integrato nel protocollo, un sistema di retry (pacchetto corrotto, invialo di nuovo) ecc... i bus interni diventano molto simili a quelli usati su internet, che consentono elevato throughput a scapito dei tempi di risposta.

Per componenti di sistema critici si continuano comunque ad usare bus paralleli con linee a lunghezza controllata, ad esempio per la Ram di sistema. Ma è anche da notare che i banchi di RAM sono appiccicatissimi al socket della CPU, proprio per avere piste cortissime.
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »

Offline clros

  • ASM Lover
  • *****
  • Post: 457
  • Karma: +3/-1
    • Mostra profilo
Re: Bus quad-pumped vs QPI
« Risposta #13 il: 27 Aprile 2012, 13:50:15 »
Citazione da: "TheKaneB"

Per componenti di sistema critici si continuano comunque ad usare bus paralleli con linee a lunghezza controllata, ad esempio per la Ram di sistema. Ma è anche da notare che i banchi di RAM sono appiccicatissimi al socket della CPU, proprio per avere piste cortissime.

Ecco, era una cosa che non capivo nemmeno questa...a questo punto chi mi vieta di usare un bus seriale anche per la RAM?
E, senza considerare la densità della RAM, chi mi vieterebbe di creare delle RAM che funzionino alla stessa frequenza della CPU (usando ad esempio dei FF al posto delle capacità per immagazzinare i dati)?
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »
Claudio CP La Rosa

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re: Bus quad-pumped vs QPI
« Risposta #14 il: 27 Aprile 2012, 14:08:31 »
Citazione da: "clros"
Citazione da: "TheKaneB"

Per componenti di sistema critici si continuano comunque ad usare bus paralleli con linee a lunghezza controllata, ad esempio per la Ram di sistema. Ma è anche da notare che i banchi di RAM sono appiccicatissimi al socket della CPU, proprio per avere piste cortissime.

Ecco, era una cosa che non capivo nemmeno questa...a questo punto chi mi vieta di usare un bus seriale anche per la RAM?
E, senza considerare la densità della RAM, chi mi vieterebbe di creare delle RAM che funzionino alla stessa frequenza della CPU (usando ad esempio dei FF al posto delle capacità per immagazzinare i dati)?

1- Le Ram seriali avrebbero una latenza troppo elevata, avvicinandosi più alle prestazioni di un disco SSD (che usa un bus seriale), che a quelle di una Ram.
2- Il costo esorbitante (una decina di FET per bit di una ram statica contro 2 soli FET per bit di una DRAM). Le Ram fatte con FF esistono e si usano internamente alla CPU come cache, hanno frequenze uguali o sottomultiple della CPU, a scalare dalla L1 ai livelli più esterni :-)
« Ultima modifica: 01 Gennaio 1970, 02:00:00 da Guest »

Tags: