Tags:
tag this topic
create new tag
view all tags
*IL BUS* ==Principali linee di ingresso e di uscita dei vari moduli== Nellarchitettura di Von Neuman i moduli basilari sono il processore, o CPU, la memoria e i dispositivi di I/O, ognuno dei quali presenta delle linee di ingresso e delle linee di uscita sulle quali può passare o un solo bit, nel caso in cui si consideri un segnale di controllo, oppure più bit se si ha uninformazione di tipo diverso. Analizziamo singolarmente ognuno di questi moduli. La CPU riceve dallesterno linee sui viaggiano istruzioni, linee dati e segnali di interruzione e manda verso lesterno linee dati, dirette alla memoria oppure a delle periferiche, segnali di controllo, per esempio un segnale per lattivazione della lettura da memoria, e linee indirizzo, su cui si muovono, per esempio, gli indirizzi per prelevare il contenuto di alcune locazioni dalla memoria. Tutte le linee che entrano ed escono dalla CPU, vista come un blocco unitario, sono linee su cui viaggiano più bit. Non rientrano nello studio particolare che stiamo facendo ora i segnali interni alla CPU relativi allunità di controllo. Per quanto riguarda la memoria, ricordiamo che questultima è costituita da n parole i cui indirizzi vanno da 0 ad n-1. Le linee di ingresso alla memoria sono: le linee di controllo per la lettura, le linee di controllo per la scrittura, le linee indirizzo e le linee dati, mentre per quanto riguarda le linee in uscita si hanno solo linee dati. Fra quelle indicate, soltanto le due prime linee, ossia quelle di controllo, sono ad un solo bit, bit che rappresenta lautorizzazione data o meno a lettere oppure scrivere da/sulla memoria. Infine si hanno i moduli di I/O, questo tipo di moduli sono uninterfaccia hardware o software che permettono di gestire le varie periferiche comprese nel sistema e di connetterle ad esso, proprio per raggiungere questo scopo un modulo di I/O presenta un certo numero di porte a cui collegare le precedenti periferiche. Le linee di ingresso ad un modulo di I/O sono: linee di controllo per la lettura, linee di controllo per la scrittura, di eventuali dati locali al modulo, linee indirizzo, attraverso le quali è possibile specificare la porta relativa alla periferica voluta, linee per dati interni, ossia dati che provengono dalla CPU, ed infine linee di dati esterni, che provengono da una delle periferiche. Per quanto riguarda le linee di uscita, queste sono :linee dati per lesterno, dirette alle periferiche, linee dati per linterno, dirette alla CPU, e linee per segnali di interruzione. Tra le linee relative ai moduli di I/O soltanto quelle relative al controllo per la scrittura e la lettura sono linee su cui viaggia un solo bit, su tutte le altre viaggiano più bit insieme. I vari moduli che sono stati elencati sono collegati tra loro allinterno di unarchitettura in modo tale che le linee di uscita di un modulo rappresentino le linee di ingresso di un altro e quindi sia possibile la comunicazione tra gli unti e gli altri, in particolare si osserva come ci sia passaggio di informazioni: * dalla memoria al processore, * dal processore alla memoria, * dal modulo o dai moduli di I/O al processore, * dal processore al modulo, oppure ai moduli, di I/O, * ed infine sono possibili delle comunicazioni dirette tra la memoria e i dispositivi di I/O, senza che si debba passare per il processore. Questultimo tipo di trasferimento di informazioni risulta essere più efficiente delle precedenti perché permette di non impegnare ulteriormente il processore, quindi evita di congestionarlo o di bloccarlo. ==Bus rispetto alle funzioni svolte== Il bus è il mezzo attraverso cui avviene la comunicazione tra il processore, la memoria e gli altri dispositivi dellarchitettura. Il bus si presenta come uninsieme di linee su cui le informazioni si muovono in parallelo, in particolare su ogni linea viaggia un singolo bit e nel loro insieme questi bit si muovono opportunamente sincronizzati. Ci sono due tipologie di bus, il tipo dedicato ed il tipo generico. Nel tipo dedicato le varie linee sono suddivise in sottogruppi ognuno avente un proprio scopo, in particolare si avrà un insieme di linee dedicato ai dati, un insieme dedicato agli indirizzi ed un insieme dedicato ai segnali di controllo; nel tipo generico, invece, non si ha questa differenziazione per cui ogni tipo di informazione sfrutta tutte le linee di cui è costituito il bus. In particolare si osserva come non essendoci una specifica organizzazione interna al bus generico, è necessario aggiungere alle normali linee presenti delle altre linee di controllo che indichino che tipo di informazione sta viaggiando sul bus e chi ve lha posta. Ritornando al bus dedicato, abbiamo detto che si possono distinguere: * linee dati o bus dati, * linee indirizzo o bus indirizzo, * linee di controllo. Allinterno del bus ci possono essere 8, 16 o 32 linee fisiche dedicate al flusso dei dati. Sapendo che la larghezza del bus equivale al numero di linee in esso contenute costituendo, quindi un indicatore delle sue prestazioni osserviamo come la larghezza del bus dati influisce sulle prestazioni del sistema perché premette di valutare la dimensione del dato che può viaggiare in ununica volta nel bus da cui, per esempio, segue il numero di accessi in memoria che occorre fare per reperire una quantità prefissata di accessi in memoria che occorre fare per reperire una quantità prefissata di informazioni. Per quanto riguarda il bus indirizzi, le linee che lo costituiscono danno indicazioni sulla dimensione della memoria questo perché se n è il numero di bit necessario per selezionare una certa locazione allora la dimensione della memoria è 2n. Inoltre dallosservazione del generico indirizzo che si muove sul bus indirizzi è possibile desumere la presenza di una rete di selezione per arrivare alla giusta locazione di memoria o alla giusta porta del modulo di I/O: osservando il generico indirizzo, infatti, si vede che una prima parte della stringa binaria che rappresenta lindirizzo, in particolare i bit più significativi, indicano uno specifico modulo di memoria oppure un modulo di I/O mentre la parte restante, della stessa stringa, la particolare locazione di memoria che si vuole raggiungere nel modulo di memoria o la particolare porta interna al modulo di I/O. Le principali linee di controllo sono quelle su cui viaggiano i seguenti segnali: lettura dalla memoria oppure scrittura in memoria, lettura da un modulo di I/O oppure scrittura su di un modulo di I/O (a seconda del tipo di architettura le linee di lettura e le linee di scrittura possono coincidere o meno), in particolare il segnale per la richiesta di una lettura o di una scrittura prevedono un segnale di ritorno detto ACK che indica che le operazioni richieste sono avvenute, e anche il segnale ACK viaggia sulle linee di controllo, si possono poi elencare il segnale con cui un modulo di I/O che ha bisogno di porre delle informazioni sul bus richiede lautorizzazione per il suo utilizzo, il segnale di risposta al precedente segnale di richiesta che indica la sua accettazione e relativa concessione del bus, il segnale per la richiesta di una interruzione, il segnale di ACK che indica laccettazione dellinterruzione, il segnale di clock ed infine il segnale di RESET con cui si riportano allo stato iniziale i vari moduli. Distinguendo fra questi tre tipi di linee si evidenziano le due seguenti cose. Se un modulo vuole inviare dei dati deve, per prima cosa, mandare un segnale sulle linee di controllo con cui chiede di poter usare il bus, successivamente deve attendere la concessione del bus ed infine deve porre i dati sul bus. E necessario che il modulo chieda lautorizzazione ad impadronirsi del bus perché se così non venisse fatto ogni modulo potrebbe mandare informazioni sul contemporaneamente ad altri e questo modo non controllato provocherebbe una sovrapposizione delle informazioni. Se, invece, un modulo vuole dei dati, come prima, deve chiedere lautorizzazione per luso del bus usando le linee di controllo, deve attendere il segnale di accettazione della sua richiesta, deve trasferire nelle linee indirizzo lindirizzo da cui prelevare i dati ed infine deve aspettare che il modulo destinatario ponga i dati sul bus. ==Bus rispetto ai moduli== Ogni modulo, in un calcolatore, è realizzato con delle schede collegate al bus attraverso opportuni connettori detti SLOT, il tutto è collocato in un contenitore detto CHASSIS. Il calcolatore è impostato sulla separazione in moduli, o schede, per avere sia la possibilità successiva di poter ampliare la struttura sia la possibilità di individuare i guasti relativi ad un modulo specifico. Da questo tipo di suddivisione seghe anche una specializzazione del bus che si differenzia in: * bus locale, * bus di sistema, * bus di estensione. Tra il processore e la memoria centrale non cè comunicazione diretta perché si vogliono evitare al processore delle attese inutili dovute al reperimento delle informazioni, i dati raggiungono il processore in modo diverso. Il contenuto di un blocco di locazioni di memoria, residenti nella memoria centrale viene trasferito nella memoria cache a seguito di una richiesta del processore, una volta concluso il trasferimento il processore colloquia direttamente con la memoria cache attraverso il bus locale e opera le sue elaborazioni durante le quali, se richiesto, verrà effettuato un nuovo trasferimento di blocchi di informazioni dalla memoria centrale alla memoria cache. La prima e la seconda sono collegate attraverso il bus di sistema. Per quanto riguarda il moduli periferici, questi sono collegati al bus di estensione ed il bus di estensione è collegato al bus di sistema attraverso uninterfaccia al bus di estensione. I moduli periferici possono essere una rete, un sistema SCSI come un video o un cd Rom, un modem oppure un sistema seriale come una stampante oppure uno scanner. La distinzione del bus nei tre tipi indicati è stata fatta per rendere più efficiente la comunicazione infatti consente trasferimenti più veloci, relativi al processore e alla memoria cache, di no essere rallentati da comunicazioni più lente, tipici del resto dellarchitettura. ==Metodi di arbritaggio== Un metodo di arbritaggio ha lo scopo di designare un modulo master assegnandogli il potere di cominciare un trasferimento e un modulo slave che fornirà i dati richiesti dal master oppure riceverà i dati sempre dal master, a seconda che sia stata espressa una richiesta di lettura oppure di scrittura. Si possono distinguere due tipi di metodi di arbritaggio, il metodo centralizzato e il metodo distribuito. Se larchitettura prevede un metodo centralizzato, allora è presente un modulo hardware a cui compete lassegnazione del bus e la designazione del modulo slave, questo modulo è un dispositivo detto controllore o arbitratore del bus che può far parte o meno del processore e in cui confluiscono le linee di controllo del bus. Su queste linee legge le richieste di utilizzo del bus e fornisce i segnali di accettazione nonché quelli di designazione su di unulteriore linea di uscita. Con il metodo distribuito, invece, ogni dispositivo presente nellarchitettura dispone dellopportuna logica, hardware o software, per laccesso al controllo del bus. ==Temporizzazione== Strettamente collegata ai metodi di arbritaggio è la temporizzazione attraverso cui ogni modulo riesce a porre nel momento opportuno le informazioni sul bus. Si ha temporizzazione sincrona oppure temporizzazione asincrona. Con la temporizzazione sincrona gli eventi sono coordinati rispetto ad un segnale orologio che alternerà un segnale alto ad un o basso mentre con la temporizzazione asincrona manca il segnale orologio ma sono presenti due altri segnali, quello del master e quello dello slave tali per cui il primo rappresenta il motivo di reazione del secondo, e un evento innesca il primo e di conseguenza tutto il resto. __Esempio: lettura sincrona.__ Supponiamo che gli eventi si verifichino sul fronte di salita dellonda. Il segnale orologio è rappresentato dal segnale di clock, per cui ogni altro segnale coinvolto nel processo di lettura sincrona rimane alto, quindi attivo, per un intero ciclo di clock. Quando è necessaria una lettura sincrona il processore abilita tre segnali, il segnale di lettura, con cui si fa richiesta di uso del bus, il segnale inizio, con cui si indica linizio delloperazione, ed un segnale indirizzo, attraverso cui si specifica lindirizzo della locazione da cui si vuole leggere. Questi segnali rimangono attivi per un ciclo di clock e durante questo ciclo vengono riconosciuti da un modulo opportuno il quale, dopo un ciclo di clock di attesa in cui permette ai successivi segnali di stabilizzarsi, pone sul bus i dati richiesti oltre al segnale di avvenuta operazione. __Esempio: lettura asincrona.__ In questo caso non è presente un segnale orologio, ma cè un evento che scatena il processo. In questo caso levento è lazione con cui il processore pone sul bus la richiesta relativa allutilizzo del bus per poter eseguire una lettura nonché lindirizzo da cui prelevare linformazione, a questo punto viene sincronizzato il master con il segnale M_SYN (il master è colui che vuole leggere) e questo provoca la sincronizzazione dello slave con il segnale S_SYN (lo slave è colui che deve fornire i dati) per cui i loro segnali diventano alti. Ogni dispositivo, allinvio del segnale di sincronizzazione, lo legge per capire che deve fare la parte del master e chi dello slave, stabilito chi è lo slave questo porrà i segnali sul bus. Nel momento in cui viene a mancare il segnale del master, perché loperazione di lettura si è conclusa, il segnale dello slave diventa basso, ciò provoca anche la conclusione del flusso dei dati. A questo punto il segnale indirizzo diviene a sua volta basso e questo provoca la terminazione dellultimo segnale attivo, ossia quello di lettura. ==Parametri di valutazione per la progettazione== Riepilogando quanto detto finora i parametri rispetto al quale valutare contemporaneamente il bus sono: * tipo dedicato o tipo generico, nel caso sia di tipo dedicato allora occorre indicare se lo è rispetto alla funzione oppure rispetto ai dispositivi; * tipo di trasferimenti, ossia se sono possibili solo le operazioni base, come le operazioni di semplice lettura e scrittura, oppure anche operazioni più complesse, come una lettura che può bloccare una scrittura oppure la realizzazione di un trasferimento di un blocco di informazioni piuttosto che di una sola; * temporizzazione sincrona oppure temporizzazione asincrona; * metodi di arbritaggio centralizzato o distribuito; * larghezza del bus. Tutti questi fattori devono essere valutati simultaneamente per cui la larghezza del bus può essere o meno considerata soddisfacente solo dopo che si è specificato se il bus è generico oppure dedicato rispetto alle funzioni da svolgere. Si può valutare più o meno favorevolmente la distinzione fra i vari tipi di bus nel bus dedicato rispetto ai moduli considerando il fatto che le informazioni scambiate tra moduli periferici possono avere un formato diverso. -- Users.AnnalisaMassini - 09 May 2002
Attachments
Attachments
Topic attachments
I
Attachment
History
Action
Size
Date
Who
Comment
doc
Ilbus.doc
r1
manage
72.0 K
2002-05-09 - 10:12
SabrinaDellUomo
appunti sul bus
E
dit
|
A
ttach
|
Watch
|
P
rint version
|
H
istory
: r1
|
B
acklinks
|
V
iew topic
|
Ra
w
edit
|
M
ore topic actions
Topic revision: r1 - 2002-05-09
-
AnnalisaMassini
Log In
or
Register
Arc2appunti Web ...
Arc2appunti Web
Arc2appunti Web Home
Users
Groups
Index
Search
Changes
Notifications
Statistics
Preferences
User Reference ...
User Reference
ATasteOfTWiki
TextFormattingRules
TWikiVariables
FormattedSearch
TWikiDocGraphics
TWikiSkinBrowser
InstalledPlugins
ChangeEmailAddress
ChangePassword
ResetPassword
Prenotazioni esami
Laurea Triennale ...
Laurea Triennale
Algebra
Algoritmi
Introduzione agli algoritmi
Algoritmi 1
Algoritmi 2
Algoritmi per la
visualizzazione
Architetture
Prog. sist. digitali
Architetture 2
Basi di Dati
Basi di Dati 1 Inf.
Basi di Dati 1 T.I.
Basi di Dati (I modulo, A-L)
Basi di Dati (I modulo, M-Z)
Basi di Dati 2
Calcolo
Calcolo differenziale
Calcolo integrale
Calcolo delle Probabilitą
Metodi mat. per l'inf. (ex. Logica)
canale AD
canale PZ
Programmazione
Fond. di Programmazione
Metodologie di Programmazione
Prog. di sistemi multicore
Programmazione 2
AD
EO
PZ
Esercitazioni Prog. 2
Lab. Prog. AD
Lab. Prog. EO
Lab. Prog. 2
Prog. a Oggetti
Reti
Arch. di internet
Lab. di prog. di rete
Programmazione Web
Reti di elaboratori
Sistemi operativi
Sistemi Operativi (12 CFU)
Anni precedenti
Sistemi operativi 1
Sistemi operativi 2
Lab. SO 1
Lab. SO 2
Altri corsi
Automi, Calcolabilitą
e Complessitą
Apprendimento Automatico
Economia Aziendale
Elaborazione Immagini
Fisica 2
Grafica 3D
Informatica Giuridica
Laboratorio di Sistemi Interattivi
Linguaggi di Programmazione 3° anno Matematica
Linguaggi e Compilatori
Sistemi Informativi
Tecniche di Sicurezza dei Sistemi
ACSAI ...
ACSAI
Computer Architectures 1
Programming
Laurea Magistrale ...
Laurea Magistrale
Percorsi di studio
Corsi
Algoritmi Avanzati
Algoritmica
Algoritmi e Strutture Dati
Algoritmi per le reti
Architetture degli elaboratori 3
Architetture avanzate e parallele
Autonomous Networking
Big Data Computing
Business Intelligence
Calcolo Intensivo
Complessitą
Computer Systems and Programming
Concurrent Systems
Crittografia
Elaborazione del Linguaggio Naturale
Estrazione inf. dal web
Fisica 3
Gamification Lab
Information Systems
Ingegneria degli Algoritmi
Interazione Multi Modale
Metodi Formali per il Software
Methods in Computer Science Education: Analysis
Methods in Computer Science Education: Design
Prestazioni dei Sistemi di Rete
Prog. avanzata
Internet of Things
Sistemi Centrali
Reti Wireless
Sistemi Biometrici
Sistemi Distribuiti
Sistemi Informativi Geografici
Sistemi operativi 3
Tecniche di Sicurezza basate sui Linguaggi
Teoria della
Dimostrazione
Verifica del software
Visione artificiale
Attivitą complementari
Biologia Computazionale
Design and development of embedded systems for the Internet of Things
Lego Lab
Logic Programming
Pietre miliari della scienza
Prog. di processori multicore
Sistemi per l'interazione locale e remota
Laboratorio di Cyber-Security
Verifica e Validazione di Software Embedded
Altri Webs ...
Altri Webs
Dottorandi
Commissioni
Comm. Didattica
Comm. Didattica_r
Comm. Dottorato
Comm. Erasmus
Comm. Finanziamenti
Comm. Scientifica
Comm Scientifica_r
Corsi esterni
Sistemi Operativi (Matematica)
Perl e Bioperl
ECDL
Fondamenti 1
(NETTUNO)
Tecniche della Programmazione 1° modulo
(NETTUNO)
Seminars in Artificial Intelligence and Robotics: Natural Language Processing
Informatica generale
Primo canale
Secondo canale
II canale A.A. 10-11
Informatica
Informatica per Statistica
Laboratorio di Strumentazione Elettronica e Informatica
Progetti
Nemo
Quis
Remus
TWiki ...
TWiki
Tutto su TWiki
Users
Main
Sandbox
Home
Site map
AA web
AAP web
ACSAI web
AA2021 web
Programming web
AA2021 web
AN web
ASD web
Algebra web
AL web
AA1112 web
AA1213 web
AA1920 web
AA2021 web
MZ web
AA1112 web
AA1213 web
AA1112 web
AA1314 web
AA1415 web
AA1516 web
AA1617 web
AA1819 web
Old web
Algo_par_dis web
Algoreti web
More...
Arc2appunti Web
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
View
Raw View
Print version
Find backlinks
History
More topic actions
Edit
Raw edit
Attach file or image
Edit topic preference settings
Set new parent
More topic actions
Account
Log In
Register User
Questo sito usa cookies, usandolo ne accettate la presenza. (
CookiePolicy
)
Torna al
Dipartimento di Informatica
E
dit
A
ttach
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback