Bus del computer

Un bus di computer è un dispositivo di trasmissione dati condiviso tra diversi componenti di un sistema digitale. Il termine deriva dal latino omnibus (a tutti); questo è il significato, di un uso più antico, del termine bus in elettronica . Il bus del computer è l'unione delle parti tangibili e immateriali che consente la trasmissione dei dati tra i componenti partecipanti.

Si distingue generalmente un bus da un lato da un collegamento punto-punto , che riguarda solo due componenti che ne hanno l'esclusivo utilizzo, e dall'altro, da una rete , che coinvolge tra loro partecipanti indipendenti, cioè per dire, in grado di operare in modo autonomo, e che comprende più canali che consentono comunicazioni simultanee.

Definizione e implementazione

Definizione funzionale

Un bus è un sistema per il trasferimento di dati tra più unità di elaborazione dati funzionali tramite un percorso di trasmissione comune, in cui i componenti non prendono parte alla trasmissione di dati tra gli altri partecipanti.

Questa definizione implica che i dati debbano essere accompagnati da un'identificazione del componente a cui sono destinati, che viene chiamato per metafora l' indirizzo di destinazione, e da un comando indicante il tipo di trasferimento, in particolare per indicare se questo componente deve ricevere il dati o trasmetterli. Possiamo quindi suddividere il bus in tre sottoinsiemi logici:

Questi tre gruppi sono comunemente chiamati bus (bus indirizzi, bus dati, bus di controllo). Fisicamente possono essere bus nel senso elettronico del termine, cioè essere trasportati da conduttori indipendenti, oppure essere prodotti in altro modo, ad esempio mediante multiplazione a divisione di tempo su un singolo conduttore; un bus del computer li combina in un unico dispositivo per trasferire i dati tra più componenti.

Oltre all'aspetto fisico che consente la trasmissione delle informazioni, un bus del computer è costituito da circuiti di interfaccia e dal protocollo che definisce il modo in cui i segnali devono comportarsi per effettuare questo trasferimento. Le caratteristiche dell'apparecchiatura condizionano in parte il tipo di comunicazione e talvolta il protocollo può dettare il tipo di apparecchiatura.

Il bit rate massimo , espresso in bit al secondo, descrive la capacità del bus del computer di trasferire le informazioni più o meno rapidamente.

Altre modalità di comunicazione

Quando sono coinvolti solo due componenti, il problema dell'indirizzo non si pone. Stiamo parlando più di collegamenti punto a punto. Un sistema di trasferimento dati fornito per diversi componenti può eseguire il trasferimento, ma l'elaborazione non necessaria delle informazioni sull'indirizzo pesa sulle sue prestazioni.

Quando il dispositivo di comunicazione comprende più di un canale di trasmissione, consentendo più comunicazioni simultanee, la nozione di rete di computer è più appropriata.

I tre approcci, collegamento punto-punto, bus di computer, rete di computer, condividono la stessa funzione di comunicazione, con crescente complessità. Corrispondono a ottimizzazioni specifiche in ciascuna delle loro aree.

Caratterizzazione

I bus dei computer possono essere costruiti con diverse varianti.

Capacità di controllare l'autobus La designazione dei componenti coinvolti e la direzione dei trasferimenti è spesso privilegio di uno dei componenti, denominato master ( Gustavson 1984 ). Nel caso in cui più componenti possano controllare il bus (bus multi-master), questo deve includere un arbitrato tra le richieste. Un componente chiamato “bus arbitro” quindi designa quale altro componente è autorizzato a prenderne il controllo, mediante diversi algoritmi: round-robin , in cui la scelta del componente è periodica, o anche secondo una priorità definita dal componente che effettua la richiesta. Interrogazioni Il protocollo più semplice include solo richieste di lettura e scrittura. Il componente indicato dall'indirizzo deve o copiare i dati presentati dal bus o comunicarne i dati. Alcuni bus includono funzioni di controllo che consentono trasferimenti più veloci. Modalità di trasmissione Un bus parallelo trasmette simultaneamente ogni bit costituente il messaggio su un particolare canale, mentre un bus seriale li trasmette uno dopo l'altro sullo stesso canale. Sincronizzazione La trasmissione può essere sincrona, con un segnale di clock, o asincrona, quando ogni trasmissione include informazioni di sincronizzazione. Se la trasmissione è sincrona, le differenze di tempo di trasmissione dovute alla distanza tra i componenti non devono superare il limite consentito dal segnale di clock. Topologia In una topologia lineare, l'autobus si presenta come una linea elettrica dove di tanto in tanto vengono appese delle lampade; in una configurazione ad albero, rami e ramoscelli emergono da un tronco comune verso i componenti. In una configurazione ad anello esistono due percorsi da un componente all'altro. Nelle reti complesse, strutturate come reti di telecomunicazione , i circuiti di gestione del bus determinano l'adeguato percorso di trasmissione, tra un certo numero di percorsi disponibili.

Un bus software è un software di interfaccia che consente a una stazione di accedere ai dati di altri componenti con la stessa facilità con cui sono collegati ad esso da un bus. Questo software scarica i programmi per la selezione dei canali e dei protocolli di comunicazione. Dal punto di vista del programma chiamante, c'è un solo autobus. Dal punto di vista dell'analisi dei sistemi, tutti i canali di comunicazione più i bus software che forniscono l'interfaccia formano il bus del computer.

Topologie

L'implementazione di un bus può seguire diverse topologie a seconda dell'uso che se ne fa e della strategia di ottimizzazione: prestazioni, quantità di risorse impiegate, consumi,  ecc. La topologia influenza questi fattori senza influire sui componenti collegati. Questi generalmente utilizzano un protocollo generico e gli adattatori tra il componente e le risorse di comunicazione consentono la traduzione delle richieste in trasferimenti effettivi. Quindi alcune definizioni di bus, come l'AXI, non danno alcun vincolo alla topologia. Indicano solo il protocollo che i componenti devono utilizzare per accedere al bus, lasciando l'implementazione delle linee di comunicazione alla discrezione dell'architetto.

Attrezzature

Nel architettura di un sistema di computer , autobus trasmettono dati tra i componenti. Le caratteristiche di questi componenti determinano quelle del bus. È molto diverso trasmettere byte milioni di volte al secondo tra milioni o miliardi di componenti molto vicini tra loro, come è il caso tra il microprocessore e la memoria di un personal computer, pacchetti di migliaia di byte in pochi millesimi di a secondo tra poche decine di componenti a pochi metri di distanza, come nel caso di un bus USB , e codici di poche decine di bit poche decine di volte al secondo, tra componenti dispersi in un sito industriale, come in un bus di campo .

Un bus può utilizzare diversi mezzi di comunicazione: fili o cavi per collegare le periferiche alla scheda madre di un computer (ad esempio i bus SCSI o USB), circuiti stampati sulla stessa scheda o su un backplane (ad esempio nel caso di un PCI Express bus ), instradamento logico in un FPGA (ad esempio un bus AXI ), fibra ottica ,  ecc.

Circuiti di interfaccia, compresa la conversione da parallelo a seriale e viceversa, memoria buffer e gestori di comunicazione, nonché distributori e nodi di comunicazione come hub USB fanno parte del bus del computer.

La struttura fisica del bus può tradurre la rappresentazione logica in tre sottosistemi fisici, con fasci di conduttori separati per la trasmissione di indirizzi, dati e segnali di controllo, associati a un albero di clock per la sincronizzazione. Un bus può anche trasmettere questi diversi segnali uno dopo l'altro attraverso un singolo canale di una o più coppie di conduttori come nel caso dell'USB.

Quando il dispositivo è un bus nel senso elettronico del termine, vale a dire che tutti i componenti partecipanti sono collegati agli stessi conduttori elettrici, per consentire a un componente, che l'indirizzo e le linee di controllo o comandi designano tra i vari, di riparare lo stato delle linee dati con transizioni rapide, sia verso l'alto che verso il basso, i componenti partecipanti utilizzano uscite a 3 stati o a collettore aperto . La frequenza di comunicazione massima limita la lunghezza di questo tipo di bus. Quando la lunghezza del conduttore supera un quarto d'onda della frequenza massima nel conduttore, i fenomeni di riflessioni sulle rotture di impedenza portano a preferire linee di trasmissione con ripetitore ad ogni nodo (come nell'USB).

I canali di comunicazione elettronica possono essere asimmetrici, con ritorno di corrente attraverso la massa, o simmetrici, con due conduttori di uguale impedenza a terra. La differenza di potenziale, positiva o negativa, tra i due conduttori costituisce il segnale. I canali simmetrici, in particolare sui doppini intrecciati, sono meno sensibili ai disturbi, che agiscono più o meno equamente sui due conduttori, e non ne influenzano la differenza.

In generale, i sistemi distinguono due segnali corrispondenti uno a 1 e l'altro a 0. Questi segnali possono essere, in un breve intervallo di tempo determinato dal segnale di clock, livelli elettrici, transizioni tra livelli oppure una transizione o una manutenzione. L' elemento segnale della trasmissione è un bit . Tuttavia, i sistemi possono trasmettere distinguendo più livelli. In questo caso, ogni n- livello digitale elemento contiene bit. Quando hai bisogno di ottenere il massimo da linee di scarsa qualità, usi il modulatore-demodulatore ( modem ) . Il bit rate può quindi essere espresso anche in baud , cioè nel numero di segnali scambiati al secondo.

Il protocollo governa il modo in cui gli scambi sul bus vengono effettuati a livello logico. Ad esempio, una prima fase può consistere nella richiesta di accesso al bus, seguita da una seconda fase consistente nell'indicare l'indirizzo al quale si desidera eseguire un'operazione di lettura o scrittura, quindi infine nel trasferimento di questi dati. Il protocollo specifica l'ordine in cui i valori devono essere posizionati sui diversi segnali del bus. Generalmente può essere espresso da un cronogramma che rappresenta i valori da dare ai diversi segnali per eseguire un'operazione.

In alcune tipologie di bus viene definito solo il protocollo e non la natura del mezzo trasmissivo, lasciata all'apprezzamento del progettista del bus. Ad esempio, il protocollo AXI definisce le interfacce del bus senza decidere sulla topologia di quest'ultimo, che può assumere diverse forme a seconda delle esigenze del sistema. Pertanto, se la necessità in termini di numero di comunicazioni simultanee è bassa, sceglieremo una topologia di tipo bus per salvare i fili, mentre se alcune coppie di componenti comunicano frequentemente tra loro contemporaneamente, sceglieremo una topologia a barra trasversale per evitare le linee di attesa . Questo tipo di bus è particolarmente indicato per FPGA , per i quali la topologia può essere modificata con un click, l'implementazione è lasciata al software che esegue la sintesi del circuito.

Approcci paralleli e seriali

Si possono distinguere due principali categorie di bus a seconda del modo in cui i dati vengono trasmessi: tutti i bit contemporaneamente, oppure uno per uno.

Bus parallelo

Un bus parallelo trasmette simultaneamente gli elementi digitali di un segnale digitale su un numero appropriato di percorsi paralleli tra i componenti partecipanti.

Attrezzature

Dal punto di vista hardware , questo tipo di bus può essere scomposto in tre sottogruppi:

  • le linee dati trasmettono i dati. Ad ogni ciclo di tempo, ogni conduttore trasmette un elemento digitale. La dimensione del bus in bit è il numero di conduttori in questo sottoinsieme, vale a dire il numero di informazioni (o bit) che il bus può trasmettere in un singolo ciclo. Le dimensioni dei bit più comuni sono: 8, 16, 32 o 64, tuttavia alcune schede grafiche possono avere bus fino a 1024 bit.
  • le righe dell'indirizzo indicano quale componente deve inviare o ricevere le informazioni presenti sui bus dati. Il numero di conduttori di indirizzo determina lo spazio indirizzabile del bus. Un bus con n conduttori di indirizzo ha uno spazio indirizzabile di 2 n , corrispondente al numero di possibili combinazioni di stati dei conduttori. Ciascuna di queste combinazioni può corrispondere a un componente.
  • le linee di controllo indicano quale operazione eseguire. Quando il trasferimento viene sempre eseguito da o verso lo stesso componente, è sufficiente una riga che indica la lettura o la scrittura .
Operazione

Il bus viene utilizzato per trasmettere un codice binario con un numero di bit pari alla dimensione del bus. Ad esempio, per un bus a quattro bit, possono essere trasmessi 16 codici diversi (2 4 = 16).

Il trasmettitore imposta contemporaneamente tutti i bit del bus. Al momento giusto il componente lettore copierà tutti i bit contemporaneamente. Questo momento adeguato può essere determinato da uno dei segnali di controllo che cambierà valore per segnalare al dispositivo lettore che è ora di leggere i dati sul bus.

Caso d'uso
  • Lettura e scrittura di RAM da un processore. Questi autobus sono strutturati intorno agli autobus in senso elettronico , con la loro limitazione di lunghezza. Più veloce è il trasferimento, più brevi dovrebbero essere. Quando l'applicazione richiede che siano più lunghi, come nella Small Computer System Interface , la velocità di trasmissione deve essere ridotta.
  • Interconnessione di dischi rigidi SCSI . Un nastro a 68 conduttori va da ciascuna unità all'adattatore e trasporta a sua volta segnali di controllo e dati a 16  bit . Questo tipo di bus è molto veloce quando il cavo è di alta qualità, può raggiungere i 320  Mb / s .
  • Connettori PCI per schede di espansione di un personal computer , consentono trasferimenti fino a 2133  MB / s .

Bus seriale

Un bus seriale trasmette in successione gli elementi digitali di un segnale digitale attraverso un unico percorso tra due punti.

Attrezzature

Un bus seriale può includere due linee distinte che consentono a questi bus di essere bidirezionali e di consentire la trasmissione di informazioni in entrambe le direzioni contemporaneamente, più linee ausiliarie per eventuali segnali di controllo.

Operazione

Il bus seriale che trasmette i dati elemento per elemento, il trasmettitore deve serializzare le informazioni per la sua trasmissione. Il ricevitore dovrà eseguire l'operazione inversa.

Trasmissione di una parola tramite collegamento seriale:

Il componente mittente deve trasmettere una parola a 32 bit. Il protocollo bus specifica in quale ordine inserirli, iniziando dal bit più significativo (MSB) o dall'altra estremità (LSB). Trasforma così la parola in una sequenza su 32 cicli di sincronizzazione del bus. Il componente ricevente ricostruisce la parola a 32 bit dai bit ricevuti.

Il cavo del bus seriale ha molti meno conduttori di un bus parallelo, il che semplifica il cablaggio e ostacola meno il flusso d'aria attraverso i dispositivi IT grazie alla riduzione delle dimensioni del cavo e alla flessibilità. Un bus seriale impiega necessariamente componenti elettronici per la serializzazione .

Alcuni bus seriali, come FireWire , utilizzano il multiplexing a divisione di tempo per trasmettere le varie informazioni (indirizzo, controllo e dati). Possono anche essere caratterizzati come giunzione multiplex .

Caso d'uso

Sistemi con bus di computer

La natura degli autobus utilizzati è diversa a seconda del tipo di impianto, ognuno con le proprie esigenze e vincoli.

In un computer

I bus situati all'interno dello stesso computer collegano le sue diverse parti funzionali.

Il bit rate di un bus è il prodotto della frequenza massima alla quale può avvenire un trasferimento e del numero di bit di informazione che può trasmettere simultaneamente.

Esempio:

Un bus parallelo a 32 bit il cui segnale ha una frequenza di 33 1 ⁄ 3  megahertz potrebbe trasmettere fino a:

  • 32  bit × 33 1 ⁄ 3 × 10 6 bit al secondo o 1067  M bit / s  ;
  • byte x 33 1 ⁄ 3 x 10 6 byte al secondo o 133  MB / s .

Questo calcolo è valido per i bus paralleli. I bus seriali devono trasmettere, oltre ai dati, segnali che indicano l'inizio di una sequenza e molto spesso informazioni di indirizzo e controllo. Se sono asincroni, è necessario aggiungere ulteriori informazioni sulla sincronizzazione. Possono inoltre includere informazioni ridondanti, checksum o controllo di ridondanza ciclico , per abilitare il rilevamento degli errori. Sono caratterizzati solo dal bit rate.

Autobus interni

I bus interni, noti anche come bus dati, bus di memoria, bus di sistema o bus lato anteriore , collegano i principali componenti interni di un computer, come processore e memoria, sulla scheda madre . Anche il bus dati interno è considerato un bus locale, poiché è destinato alla connessione a dispositivi locali. Questo bus è generalmente abbastanza veloce ed è indipendente dal resto delle operazioni IT.

Di solito ci sono due bus interni collegati all'esterno di un microprocessore di personal computer:

Il Northbridge che lo collega a periferiche veloci come memoria e schede grafiche PCI; Il southbridge che lo collega a tutte le periferiche interne più lente e al bus PCI  ; Il bus PCI utilizzato per effettuare la connessione tra il southbridge e tutti i dispositivi esterni ( dischi rigidi , stampante,  ecc .). Dal 2004, il bus PCI Express è stato utilizzato per periferiche veloci ( schede grafiche e talvolta SSD ) e collegato al “north bridge” mentre il bus PCI è ora collegato al “south bridge”; il bus InfiniBand bus ad alta velocità utilizzabile sia internamente che esternamente; dal 2003 La connessione SATA semplifica la connessione di dischi rigidi / SSD e unità CD / DVD interne; Bus esterno

Dispositivi elettronici che collegano il computer ( scheda madre ) a vari dispositivi esterni, come stampante , disco rigido , scanner ,  ecc. costituiscono i “bus esterni” o “bus di espansione”. Quelli sono :

storicamente HPIB , SCSI  ; dal 1979 USB , Firewire . dal 2007 eSATA che consente la connessione esterna di dispositivi SATA.

Nei sistemi embedded

I sistemi embedded richiedono bus con pochi conduttori per minimizzare gli ingressi / uscite necessari per la loro definizione. È in questo contesto che sono emersi diversi standard, basati sulla comunicazione seriale con un minimo di segnali necessari.

La Serial Peripheral Interface (SPI) fornisce un bus a quattro fili: un cavo di clock per la temporizzazione, due cavi di dati per entrambe le direzioni di lettura e scrittura e un cavo di selezione del dispositivo che funge da indirizzo. Ogni periferica ha il proprio cavo di selezione, il master deve avere tanti cavi di selezione quante sono le periferiche.

l' I2C è un bus che consente la trasmissione dei dati utilizzando solo due fili: uno per l'orologio e uno per i dati. L'indirizzo viene trasmesso dallo stesso filo dei dati.

Questo tipo di bus è molto facile da implementare su ingressi / uscite generali ( General Purpose Input / Output , GPIO), il che ha permesso la loro generalizzazione su sistemi di tipo Arduino , accessibili a tutti per il loro basso costo e utilizzati per molti controlli e comandi applicazioni, ad esempio nella domotica. Molti sensori sono interfacciati in particolare utilizzando uno di questi standard.

All'interno di un chip

Lo sviluppo di sistemi su chip ( sistema su chip o SoC in inglese) ha portato alla comparsa di nuovi tipi di bus. Questi sistemi riuniscono vari computer e periferiche, che devono essere interconnessi e comunicare, all'interno di un singolo chip. La natura integrata e fisicamente molto vicina di questi sistemi elimina alcune limitazioni (legate in particolare alla lunghezza dei conduttori) e, in alcuni casi, ne sviluppa di nuove (come la superficie disponibile per i componenti dell'interfaccia).

Questi bus non hanno bisogno di essere interfacciati all'esterno della scheda, diventa possibile creare un bus personalizzato per le esigenze del sistema. Tuttavia, con la nozione di riutilizzo dei componenti, la standardizzazione di questi autobus rimane rilevante. Essendo infatti lo sviluppo di componenti un compito complesso e costoso, si tratta di poter riutilizzare in modi differenti la struttura di un componente realizzata in modo da contenere i costi relativi al loro sviluppo. Si parla di proprietà intellettuale  (en) , o IP, per questi componenti riutilizzabili, a volte distribuiti su licenza (commerciale o gratuita). Questi componenti hanno quindi generalmente un'interfaccia standardizzata in grado di interfacciarsi con una particolare tipologia di bus, in modo da non dover riqualificare un'interfaccia per ogni utilizzo del componente.

In questo contesto, la definizione di bus standard per SoC è diventata centrale per consentirne il riutilizzo. Standard diversi sono emersi come Advanced Microcontroller Bus Architecture sviluppata da ARM e che specifica più bus destinati a diverse applicazioni, Avalon , sviluppato da Altera , o la libera Wishbone bus . Questi tipi di bus standardizzano le interfacce, consentendo di facilitare il riutilizzo di IP in un SoC, lasciando all'architetto del sistema un certo margine di manovra per quanto riguarda l'implementazione della parte trasmissiva. Pertanto, l'architetto può in alcuni casi scegliere la topologia del bus, scegliere il tipo di arbitrato per bus multi-master,  ecc.

Appendici

Bibliografia

Articoli Correlati

Note e riferimenti

Appunti

  1. In ingegneria elettrica si parla di sbarra collettrice .
  2. Unità funzionale: “entità presa in considerazione definita in base alla sua funzione o effetto. (…) Un'unità funzionale può essere implementata da una o più unità fisiche o moduli di programma. " .
  3. In alcuni casi, soprattutto fieldbus , i componenti possono eseguire solo un'azione. Ad esempio, i sensori possono solo trasmettere, gli attuatori possono solo ricevere. In questo caso, solo l'unità centrale può trasmettere, ricevere e assegnare gli indirizzi. La presenza dell'indirizzo sul bus è sufficiente per controllare gli altri partecipanti.
  4. Niente impedirebbe le miscele tra queste modalità di trasmissione, ad esempio un bus parallelo a otto bit che trasmette i primi quattro byte di indirizzo, poi otto byte di dati; ma in generale, i bus sono completamente seriali o completamente paralleli.
  5. Nel vuoto, l'informazione viaggia alla velocità della luce, cioè 3  × 10 8  m s −1  ; nei conduttori di un circuito, molto più lento ( Gustavson 1984 , p.  10). Con una frequenza del bus di 300  MHz il tempo consentito per la lettura di uno stato del bus è inferiore a 1 × 10 −9  s , il tempo necessario affinché il segnale viaggi al massimo 30  cm .
  6. Con uscite open collector la maggiore impedenza per lo stato realizzato dal resistore di carico rallenta il passaggio a questo stato, impedendo la realizzazione di bus veloci.
  7. Transizione verso l'alto o verso il basso , ad esempio la codifica Manchester .
  8. Ad esempio Codifica non ritorno a zero invertita .
  9. Dal 2004 e dall'implementazione del bus PCI express, il bus PCI è stato collegato al “south bridge”.

Riferimenti

  1. 151-12-30 "barra collettrice" , IEC 60050
  2. 351-56-02 Unità funzionale , IEC 60050
  3. 351-56-10 "bus" , IEC 60050 .
  4. 714-21-10 "indirizzo (nel software)" , IEC 60050 .
  5. Cos'è un bus per computer?, Sul sito commentcamarche.net, agosto 2014
  6. Definizione di: bus, PC mag enciclopedia, accesso 12 luglio 2014
  7. IEC .
  8. Nozioni di base sulle architetture di sistemi elettronici ,2008( leggi in linea ) , p.  24 [PDF]  ; IEC  ; Gustavson 1984 , p.  4.
  9. Gustavson 1984 , p.  40.
  10. (in)  Topologie del bus della cronologia.
  11. In inglese Crossbar switch  (en) , Michel Fleutry , Dizionario enciclopedico di elettronica: inglese-francese , Parigi, La casa del dizionario,1991, 1054  p. ( ISBN  2-85608-043-X ) , p.  164.
  12. 731-08-02 bus ottico , IEC 60050 .
  13. Gustavson 1984 , p.  8-9.
  14. 704-16-01 "elemento di segnale (in trasmissione digitale)" , IEC 60050 .
  15. 704-16-05 "segnale digitale n -ario" , IEC 60050 .
  16. (in) vista  Trasmissione digitale (codifica linea) 35.
  17. 731-08-02 "trasmissione parallela (digitale)" , IEC 60050 .
  18. JEDEC pone le basi per HBM 2 , sul sito web hardware.fr del 13 gennaio 2016, consultato il 28 gennaio 2016.
  19. 731-08-02 "trasmissione seriale (digitale)" , IEC 60050 .
  20. 704-14-12 "autostrada" , IEC 60050 .
  21. (in)  Cos'è il cancello nord e il cancello sud era la scheda madre sul sito answer.com
  22. Presentazione di USB e Firewire , sul sito telecom-lille.fr, consultato il 24 febbraio 2016.
  23. Dischi rigidi esterni: tecnologia eSATA, successore di USB? , su zdnet.fr del 20 dicembre 2006, consultato il 18 novembre 2018
  24. Confronto tra AMBA AHB e AXI Bus utilizzando System Modeling , sul sito design-reuse.com