Bus (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 5.91.60.149 (discussione), riportata alla versione precedente di 82.52.177.234
Etichetta: Rollback
Nessun oggetto della modifica
Etichette: Modifica visuale Modifica da mobile Modifica da web per mobile Link a pagina di disambiguazione
 
(45 versioni intermedie di 30 utenti non mostrate)
Riga 1:
{{U|verso=da|Ordine dei bit|informatica|settembre 2023}}
{{F|protocolli di rete|luglio 2009}}
[[File:ST-506 MFM Twin Cables.xcf|thumb|upright=1.4|Esempio di bus o [[trasmissione parallela|collegamento parallelo]] (nastri blu) tra dueun hard disk [[Seagate ST-506]] e il suo controller su [[scheda elettronica|schedescheda]] elettroniche[[Industry Standard Architecture|ISA]]]]
 
Il '''bus''' ({{Senza fonte|da una contrazione del [[Lingua latina|latino]] ''omnibus''<ref>{{Cita web|url=https://www.lexico.com/definition/bus|titolo=BUS {{!}} Definition of BUS by Oxford Dictionary on Lexico.com also meaning of BUS|sito=Lexico Dictionaries {{!}} English|lingua=en|accesso=2021-09-20|dataarchivio=19 maggio 2021|urlarchivio=https://web.archive.org/web/20210519035539/https://www.lexico.com/definition/bus|urlmorto=sì}}</ref>), in [[elettronica]] e [[informatica]], è un [[canale (telecomunicazioni)|canale di comunicazione]] che permette a [[periferiche]] e componenti di un [[computer|sistema elettronico - come ad esempio un [[computer]] - di [[interfaccia (informatica)|interfacciarsi]] tra loro scambiandosi [[informazione|informazioni]] o [[Dato|dati]] di sistemavario tipo attraverso la [[trasmissione (telecomunicazioni)|trasmissione]] e la ricezione di [[segnale (fisica)Segnale|segnali]].
 
== Caratteristiche ==
Diversamente dalle [[connessione (informatica)|connessioni]] punto-punto, un solo bus può collegare tra loro più dispositivi. In pratica è il canale di trasferimento con cui colloquiano le componenti di un [[elaboratore elettronico]]. Le connessioni elettriche del bus possono essere realizzate direttamente su [[circuito stampato]] oppure tramite un apposito [[cavo elettrico|cavo]]. Ciò nonostante, i bus possono essere di due tipi: seriale oppure parallelo. Un bus è di tipo ''parallelo'' quando adotta una [[trasmissione parallela]]. Sono di questo tipo i bus [[Industry Standard Architecture|ISA]], [[Peripheral Component Interconnect|PCI]] e [[Accelerated Graphics Port|AGP]]. Un bus è invece ''seriale'' se adotta una [[trasmissione seriale]]. Esempi di bus seriali sono: [[Serial Peripheral Interface|SPI]], [[I²C]], [[Serial ATA|SATA]], [[PCI Express]], [[USB]], [[LonWorks]], [[KNX (standard)|Konnex]], [[PROFIBUS]], [[Controller Area Network|CAN]] e, [[Local Interconnect Network|LIN]].
 
Principalmente esistono due tipologie di bus in un elaboratore elettronico: il bus interno o FSB ([[front side bus]]), e i bus esterni (bus di espansione, USB, etc.). Ci possono poi essere delle varianti ibride, come le porte [[eSATA]] con prese esterne.
Il progredire della tecnologia sembra preferire la trasmissione ''seriale'' a quella parallela (oramai obsoleta), che tra l'altro soffre di maggiori ingombri e spesso anche di maggiori costi.
 
Il progredire della tecnologia sembra preferire la trasmissione ''seriale'' a quella parallela, parzialmente caduta in disuso sui bus esterni, che talvolta soffre di maggiori ingombri e spesso anche di maggiori costi, mentre nei bus interni è ampiamente impiegata, per esempio nel bus PCI Express 4.0, che utilizza uno schema ibrido con un parallelismo di 128 bit (128 linee solo per i dati principali). A livello di connessione e contando le linee di gestione e di alimentazione il totale aumenta, cosicché già una PCI Express da x16 ha 82 pin.
 
=== Principi di funzionamento ===
In ogni transazione sul bus:
* un dispositivo prende il controllo del bus;
* invia una richiesta (I/O) a un secondo dispositivo;
* svolta la richiesta, il bus viene liberato per un'altra comunicazione.
 
Il ruolo di un dispositivo può cambiare nel tempo; un dispositivo può comportarsi da master o da slave in contesti differenti. Lo standard che definisce il bus deve fornire le regole per gestire tali condizioni o vietarle. Esistono due diversi meccanismi di temporizzazione dei segnali:
* un dispositivo prende il controllo del bus
* invia una richiesta (I/O) a un secondo dispositivo
* svolta la richiesta, il bus viene liberato per un'altra comunicazione.
 
Il ruolo di un dispositivo può cambiare nel tempo; un dispositivo può comportarsi da master o da slave in contesti differenti. Lo standard che definisce il bus deve fornire le regole per gestire tali condizioni o vietarle. Esistono due diversi meccanismi di temporizzazione dei segnali:
 
Esistono due diversi meccanismi di temporizzazione dei segnali:
* Protocollo sincrono: è previsto un segnale di sincronizzazione (clock) che permette di gestire la temporizzazione delle comunicazioni.
* Protocollo asincrono: tutta la temporizzazione della comunicazione è gestita dal protocollo stesso attraverso lo scambio dei messaggi.
 
La scelta dipende da:
 
* Interfaccia del dispositivo;
* adattare interfacce con differenti velocità;
Riga 28 ⟶ 31:
* Uno schema completamente asincrono è affidabile e flessibile ma le interfacce e la logica di controllo sono molto più complicate da realizzare.
 
Si sente spesso parlare in ambito [[hardware]] della velocità ([[larghezza di banda]]) del '''FSB''', acronimo che sta per [[Front Side Bus]] e identifica quellail partebus diinterno busdella discheda sistemamadre del caso specifico dell'architettura Intel, che mettedesignava inl'interconnessione collegamentofra laALU o [[CPU]] con qualunqueil altranorthbridge, perifericao installatagli nelhub computercon (adinterfaccia esempiodi modemgestione per la interniRAM, schedain videocontrapposizione con il BSB (backside bus) che connette la CPU alla cache L2 a frequenza massima (cioè alla stessa velocità di lavoro della CPU). L'FSB è stato sostituito dall'HyperTransport mutuata da PowerPC G5 e poi dagli AMD ai socket Intel-based, schedama audioanche dal canale DMI e dai sistemi UPI, eccCSI e QPI.) In linea generale si può intendere con FSB il canale che connette la CPU alla RAM a una frequenza superiore agli altri bus delle mainboard e rispetto ai bus esterni e di interconnessione. In AMD si usano anche le equivalenti tecnologie LDT.
 
=== Modalità di connessione ===
Riga 36 ⟶ 39:
 
== Bus di sistema ==
Il bus di sistema, presente in tutti i microcalcolatori, è composto da 50una ao 100più filipiste in rame incisi sulla scheda madre (di solito da 4 a centinaia, a seconda della tipologia di computer e dell'implementazione della SoC o della mother board) ed è dotato di connettori separati a intervalli regolari per l'innesto dei moduli di memoria e di I/O. Si tratta di una serie di connessioni elettriche ognuna delle quali può trasmettere [[bit|cifre binarie]] (0 o 1) in successione, l'insieme delle quali (che può essere o meno interpretato come un valore numerico) è interpretato dai vari componenti del sistema secondo [[protocollo di rete|protocolli]] prestabiliti.
Un bus che collega due componenti appartenenti alla stessa scheda integrata è detto ''bus interno'' (''internal bus'') (di solito proprietario), se collega due componenti generici è detto ''bus esterno'' (''external bus''). Se c'è un solo bus esterno è detto ''bus di sistema'' (''system bus'').
 
Riga 42 ⟶ 45:
* bus dati
* bus indirizzi
* bus controllicontrollo
 
Il motivo per cui gli elaboratori dispongono in genere di un solo bus è semplice: l'architettura a più bus, proposta teoricamente agli albori dell'informatica dall'[[architettura Harvard]] nel [[1943]], non è praticamente realizzabile, visto l'altissimo numero di connessioni che sarebbero necessarie.
Riga 51 ⟶ 54:
 
=== Bus indirizzi ===
È il bus (unidirezionale) attraverso il quale la [[CPU]] decide in quale indirizzo andare a scrivere o a leggere informazioni; sia le celle di memoria ([[RAM]]) sia le periferiche di I/O (Input/Output) sono infatti divise in zone e porte, ognuna delle quali ha un dato indirizzo. La memoria viene usualmente suddivisa in segmenti, offset, pagine, e locazioni interne o inter-pagina. Dopo aver comunicato l'indirizzo tramite questo bus, la scrittura o lettura avviene normalmente tramite il bus dati.
Naturalmente ilIl bus indirizzi è fruibile in scrittura solo dalla [[CPU]] e anche in lettura dagli altri componenti, inmediante quantol'utilizzo tramitedel questoDMA buscontrollato vienesolo datoparzialmente solodalla l'indirizzoCPU dellae cellapoi dalla DMAC (controller DMA) anche in modo bidirezionale, cheper èdare decisoaccesso dallaa [[CPU]]dischi, schede grafiche ed eventuali altre risorse.
 
Tali caratteristiche possono essere accompagnate dalla presenza di un supporto in parallelo per la paginazione della RAM, che tipicamente consta di una o più unità MMU per paging o per sistema ibrido a segmentazione e paging.
=== Bus controlli ===
Il bus controlli è un insieme di collegamenti il cui scopo è coordinare le attività del sistema; tramite esso, la [[CPU]] può decidere quale componente deve scrivere sul bus dati in un determinato momento, quale indirizzo leggere sul bus indirizzi, quali celle di memoria devono essere scritte e quali invece lette, etc.
Infatti la memoria e tutti gli altri componenti comunicano con la CPU attraverso un unico bus condiviso; questo significa che senza un controllo da parte della [[CPU]] si verrebbero a creare dei [[conflitto (informatica)|conflitti]] e delle [[collisione|collisioni]].
 
=== TipiBus di bus daticontrollo ===
Il bus controllicontrollo è un insieme di collegamenti il cui scopo è coordinare le attività del sistema; tramite esso, la [[CPU]] può decidere quale componente deve scrivere sul bus dati in un determinato momento, quale indirizzo leggere sul bus indirizzi, quali celle di memoria devono essere scritte e quali invece lette, etc.
il bus dati viene utilizzato per lo scambio di informazioni tra i vari dispositivi. È bidirezionale in quanto l'invio dei dati non è di sola appartenenza alla CPU e si divide:
Infatti la memoria e tutti gli altri componenti comunicano con la CPU attraverso un unico bus condiviso; questo significa che senza un controllo da parte della [[CPU]] si verrebbero a creare dei [[conflitto (informatica)|conflitti]] e delle [[collisione|collisioni]].
 
Per agevolare e rendere efficienti i vari processi sui bus, di norma, almeno su computer abbastanza recenti (in passato non era una regola fissa), vengono utilizzati meccanismi di controllo supplementari, quali interrupt hardware (IRQ, ma non NMI, che hanno diversa funzione) e software (int xx, syscall), e soprattutto firmware e device di controllo quali il DMA (Direct Memory Access), gli schemi PIO, la gestione dei PIC in cascata.
=== [[Industry Standard Architecture|ISA]] (Industry Standard Architecture Bus) ===
Evoluzione dei bus PC bus e PC/AT bus utilizzati nei primi PC (8086, 80286). Sviluppato da un consorzio in contrapposizione all'IBM Microchannel. Contiene 64 + 36 linee:
 
=== Bus controllidi dati ===
ilIl bus dati viene utilizzato per lo scambio di informazioni tra i vari dispositivi. È bidirezionale in quanto l'invio dei dati non è di sola appartenenza alla CPU e si divide:
 
===''' [[Industry Standard Architecture|ISA]] (Industry Standard Architecture Bus) ==='''
 
Evoluzione dei bus PC bus e PC/AT bus utilizzati nei primi PC (8086, 80286). Sviluppato da un consorzio in contrapposizione all'IBM Microchannel. Contiene 64 + 36 linee:
 
Contiene 64 + 36 linee:
* 20 + 4 linee indirizzi
* 8 + 8 linee dati
Riga 69 ⟶ 78:
Sincrono con clock a 8,33&nbsp;MHz. Estensione a 32 bit: EISA
 
===''' [[Zorro (informatica)|Zorro]] ==='''
 
Bus di espansione sviluppato per i computer [[Amiga]] prodotti dalla [[Commodore]]. Esistono tre versioni di questo bus, le prime due erano a 16 bit, la terza era a 32 bit. Questo bus è stato fornito nativamente della capacità [[Plug and Play]] fin dalla prima versione risalente al [[1985]]. È un bus parallelo che lavora in modo sincrono ma nella terza revisione poteva lavorare anche in modo asincrono rendendo le comunicazioni più efficienti ma nel contempo rendendo le schede di espansione più costose e difficili da progettare.
 
===''' [[Peripheral Component Interconnect|PCI]] (Peripheral Component Interconnect Bus) ==='''
 
Bus di sistema PC, (ma anche Apple, Sun), sviluppato dalla Intel nel 1992 (in sostituzione del bus ISA). Esiste in diverse versioni: PCI, PCI 2.0, PCI 2.1, PCI 2.2, PCI-X, PCI-X DDR. 32 – 64, PCI-E linee dati-indirizzi (sovrapposte) (multiplexed) Clock a 33 – 66 – 133 – 266&nbsp;MHz. Alimentazione 5 – 3,3 [[Volt]]. Il trasferimento che avviene attraverso un bus PCI è un "burst", composto da una fase di indirizzamento e da una o più fasi di dato, con bassa latenza ed elevato throughput(velocità effettiva).
 
===''' [[USB]] (USBUniversal Serial Bus) ==='''
 
Bus per il collegamento di periferiche (lente), sviluppato nel 1995 da un consorzio: (Compaq, HP, Intel, Lucent, Microsoft, Nec, Philips). Caratteristiche: flessibilità, semplicità; un unico bus per molte periferiche; non sono necessari dispositivi di controllo e porte dedicate; facilmente espandibile; economico e con possibilità di connessione a caldo; supporto dispositivi tempo reale (audio - telefono).
 
Riga 86 ⟶ 98:
* USB 3.0: 4,8&nbsp;Gbit/s.
 
===''' [[Small Computer System Interface|SCSI]] (Small Computer System Interface) ==='''
 
Collegamento per dispositivi interni o esterni al computer: dischi rigidi (dischi SCSI), ma anche CD - DVD – unità nastro - stampanti - scanner.
 
Riga 96 ⟶ 109:
Collega sino a 7- 15 controllori (unità) e massimo 2048 periferiche per controllore. Collegamento a cascata, con terminatore. Semplice ed economico. Parte della logica delegata ai controllori. 50 fili - 25 di massa per eliminare disturbi (8 dati — 1 parità — 9 controllo — 7 alimentazione e usi futuri). Asincrono: con protocollo di hand-shake. Arbitraggio decentralizzato: utilizzo linee dati, priorità prestabilita.<br />Il bus SCSI è un bus parallelo, mentre una sua estensione, il [[Serial Attached SCSI]] (SAS), è di tipo seriale.
 
===''' [[FireWire]] (IEEE 1394) ==='''
 
Ha molte similitudini con l'USB: bus seriale con alimentazione (60 W), sviluppato da un consorzio di aziende (1984 - Apple, 1995 Standard, ma con Royalties); possibilità di connessione a caldo, meccanismi di identificazione, struttura ad albero.
 
Riga 104 ⟶ 118:
* Non necessita di un calcolatore (Root Hub) di riferimento.
* Alcuni protocolli sono simili a quelli del bus SCSI.
La porta FireWire ha due tipi di standard che differiscono tra loro essenzialmente nella velocità e nel numero di conduttori pin di trasporto dati. Questi standard, stabiliti dall’dall{{'}}''Institute of Electrical and Electronic Engineer'' (IEEE), sono la '''IEEE 1394a''' e la '''IEEE 1394b'''.
 
L'IEEE 1394a può avere da 4 a 6 conduttori e una velocità di comunicazione non superiore a 400&nbsp;Mbit/s.
Riga 112 ⟶ 126:
È importante sapere che entrambi i cavi non possono avere lunghezza superiore a 4,5&nbsp;m
 
===''' [[Low Pin Count]] ==='''
 
È un bus interno ideato da [[Intel]] per evitare di usare l'obsoleto [[Industry Standard Architecture|ISA]] per collegare il chip [[Southbridge (elettronica)|southbridge]] al [[Super I/O]] nelle [[scheda madre|schede madri]] e ridurre così sia il numero di piedini impiegati (da cui il nome) che il numero di piste di rame nel circuito stampato.
 
===''' [[PCI-X]] ==='''
 
=== [[PCI-X]] ===
Il PCI-X è un'evoluzione del PCI. È stata sviluppata dallo stesso consorzio che sviluppò il PCI e fornisce una larghezza di banda fino a 4 [[Byte|GByte]]. Pur avendo prestazioni molto più elevate del PCI è retrocompatibile con le periferiche PCI e quindi permette il riutilizzo delle schede PCI.
 
===''' [[PCI Express]] ==='''
 
Il PCI Express è il successore (seriale) del bus di espansione PCI (parallelo) e ha sostituito il bus AGP precedentemente in uso per le schede grafiche.
Riga 137 ⟶ 153:
* [[Architettura master-slave]]
* [[Bus mastering]]
* [[ChipsetBus sniffing]]
* [[Computer]]
* [[IEEE 488]]
* [[Microprocessore]]
Riga 143 ⟶ 160:
 
== Altri progetti ==
{{interprogetto|preposizione=sui|wikt=bus}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC}}
 
{{Bus computer|bus = }}
{{Controllo di autorità}}
 
{{portale|informatica}}