Assembly/Organizzazione di sistema/Componenti base di sistema/System Bus

Wikibooks, manuali e libri di testo liberi.
Indice del libro

Introduzione[modifica]

Il Bus di sistema (o System Bus) connette i vari componenti di una VNA. Il System Bus è l'insieme di tutti i Bus presenti nel sistema. L'80x86 ha tre Bus:

Un Bus è un insieme di fili elettrici attraverso i quali passano i segnali elettronici per la comunicazione fra tutti i componenti della macchina. Questi Bus variano da processore a processore. Comunque ogni Bus porta lo stesso tipo di segnale, qualunque sia il processore. Per esempio il Bus Dati potrà essere diverso tra l'886 e il 386, ma il suo scopo è sempre quello di trasportare dati.

I processori 80x86 usano i TTL Logic Levels. Ossia ogni filo di un Bus usa un determinata tensione per rappresentare 0 oppure 1. Generalmente quando ci si riferisce ai bit, si parla di bit 0 e bit 1, e non di 0v e 5v, poiché la tensione cambia da processore a processore, specialmente nei portatili.

Il Bus Dati[modifica]

I processori 80x86 utilizzano il Bus Dati per trasportare dati (ovviamente) da un componente all'altro del computer. La dimensione (intesa come numero di fili) del bus varia da processore a processore. Questo valore viene utilizzato per classificare il processore. Sui processori 80x86, il System Bus, contiene 8, 16, 32 o 64 fili. Avere un bus a 8 linee, non significa che il processore non possa gestire Word o DWord o QWord. Significa solo che il processore potrà prelevare solo 8 bit alla volta dalla memoria. In un processore a 64 linee, potrà prelevare 64 bits (8 bytes) alla volta. Questo processore, quindi, sarà molto più veloce. La dimensione del Bus Dati influenza le prestazioni del sistema più di qualunque altro bus. Avrete certamente sentito parlare di processori a 32bit o 64bit. Questi valori, sono dati appunto dalle dimensioni del bus dati.

Dimensione del Bus Dati nei processori 80x86
Processore Dimensione del bus di dati
8088 8
80188 8
8086 16
80186 16
80286 16
80386SX 16
80386DX 32
80486 32
80586/Pentium 64
Pentium Pro 64

Il Bus degli indirizzi[modifica]

Come abbiamo detto, il Bus Dati in un processore della famiglia 80x86 sposta informazioni tra una particolare locazione di memoria o un dispositivo di I/O, e la CPU. L'unica domanda che il processore si pone è, “Quale locazione di memoria o dispositivo di I/O?”. Il Bus degli indirizzi risponde a questa domanda. Per differenziare le locazioni di memoria ed i dispositivi di I/O, all'avvio del PC, il BIOS, assegna a ciascuna locazione di memoria o dispositivo di I/O un identificatore sequenziale. Quando un programma chiede l'accesso ad una (o più) particolare locazione di memoria o di I/O, il processore, "scrive" l'indirizzo univoco sul Bus Indirizzi, che appunto indirizzerà il Bus Dati su una precisa locazione.

Con un solo filo di Bus Address, il processore poteva creare solo due locazioni: una alla quale era assegnata il valore zero e l'altra a cui era assegnata il valore uno. Con n linee, il processore può fornire 2n indirizzi univoci (dato che ci sono 2n combinazioni di valori in un numero binario di n bit). Quindi il numero di bit del Bus degli indirizzi determinerà il massimo numero di locazioni di memoria ed I/O indirizzabili. I primi processori x86, per esempio, fornivano Bus Indirizzi di soli 20 bit. Perciò potevano accedere a sole 1,048,576 (o 220) locazioni di memoria (quindi 1MB). Bus più grandi possono accedere a memorie più grandi. I Pentium accedono alla memoria con 32 fili di Bus Address, quindi 4GB indirizzabili. I Pentium Pro e i Core Duo e Quad Core, hanno Bus Address a 36 fili, quindi 64 GB di memoria indirizzabile. Già si pensa a Bus Address a 48 fili per oltre 100 mila GB di dati. Questo avverrà quando i programmatori penseranno che 64 GB di RAM sono pochi per i loro programmi esattamente come lo è ora 1 solo MB. E pensare che 30 anni fa, si pensava che 1MB di memoria, fosse sufficiente a tutto...

Il Bus di Controllo[modifica]

Sul Bus di Controllo, non passano dati e indirizzi, ma viene utilizzato per chiarire le operazioni della CPU. Ad esempio, abbiamo visto che attraverso il Bus Dati, passano i dati letti o scritti da/su una locazione di memoria indicata sul Bus Indirizzi. Ma una volta arrivato alla locazione, il processore si chiede "Devo leggere o scrivere?". Due linee del Bus di controllo, chiamate Read e Write (dette anche linee RD/WR), specificano questo tipo di stato. Quando tutte e due le linee sono settate a 1, il processore è fermo (una situazione estremamente rara), se invece la linea Read è settata a 0, il processore sta leggendo, se la linea Write è settata a 0, il processore sta scrivendo. Abbiamo poi i fili MEM/IO, che indovinate un po', specificano se il processore sta leggendo/scrivendo da memoria o dispositivi I/O. Esiste anche il filo del clock. La linea degli interrupt e altri. Questi elencati sono i più importanti.

Modulo precedente

Componenti base di sistema

Torna a

Assembly

Modulo successivo

Il sottosistema memoria