Entra

View Full Version : domanda universitaria SSD (per esperti)


MBdip
02-02-2013, 19:04
buongiorno a tutti,
in una lezione, mentre parlavamo di periferiche, in particolare riguardo la precedenza sul BUS nel caso in cui la periferica stesse in DMA.
Alla domanda del professore "Cosa accadrebbe nel caso in cui il processore richiede il BUS?" giustamente alcuni di noi hanno risposto dicendo che innanzitutto bisogna attendere il completamento dell'azione attualmente in corso, a causa comunque dei tempi di latenza dell'hard disk.
A questo punto il professore ha chiesto "Cosa accadrebbe con i nuovi SSD? Cioè sarebbe ancora necessario attendere la fine del processo della periferica?"

secondo me sì perché altrimenti i dati attualmente sul BUS andrebbero persi....
altri invece hanno risposto di no…

A questo punto direi che molto dipende anche dal tipo di processo/istruzione… Se di scrittura o di lettura…… Chiedo a qualcuno più esperto di me per aiutarmi a chiarire questo quesito…

MBdip
03-02-2013, 21:29
nessuno vuole iniziare il ragionamento?

MBdip
06-02-2013, 12:24
:muro:
almeno qualcuno potrebbe consigliarmi su dove andare a guardare per venirne a capo?

Cosenza1914
06-02-2013, 13:22
Secondo me si deve aspettare ugualmente, con gli SSD si abbattono i tempi di latenza

MBdip
06-02-2013, 22:43
appunto… Quando avviene una richiesta del bus da parte del processore se una periferica è in DMA, bisogna attendere che la periferica finisca di effettuare la propria operazione, a quanto ho capito per via dei tempi di latenza degli hard disk…
Visto che gli SSD abbattono questi tempi di latenza, è ancora necessario aspettare che la periferica finisca la propria operazione?

dirklive
07-02-2013, 09:40
imho, sul piano strettamente teorico, si, anche se le latenze tipiche dei dischi meccanici per il flottare delle testine, in pratica non esistono più, ma comunque sul SSD sono demandati all'ampiezza del buffer.

Sul piano pratico, nella gestione dei file di tutti i giorni, la velocità dell SSD, essendo un altro mondo, fa sì che il concetto di attesa diventi irrisorio e misurabile solo per gli amanti dei numeri.

MM
07-02-2013, 10:08
appunto… Quando avviene una richiesta del bus da parte del processore se una periferica è in DMA, bisogna attendere che la periferica finisca di effettuare la propria operazione, a quanto ho capito per via dei tempi di latenza degli hard disk…
Visto che gli SSD abbattono questi tempi di latenza, è ancora necessario aspettare che la periferica finisca la propria operazione?

La struttura ed il funzionamento del bus non vengono modificati dal tipo di periferica ad esso collegata, quindi si deve attendere, come prima.
Solo che, magari, invece di dover attendere millisecondi, si parlerà di microsecondi o magari nanosecondi, il che, rispetto ai dischi tradizionali, riduce l'attesa a valori quasi nulli.

Questo a logica; non ho fatto studi specifici in materia.

MBdip
08-02-2013, 21:00
finalmente!
Mi piace la piega che sta prendendo questa discussione!
scusa diirklive, ma cosa si intende per ampiezza del buffer? Non sono molto esperto di SSD

Riccardo799
08-02-2013, 21:46
IMHO la domanda del prof nasconde un trabocchetto.

Mi spiego. Quando il DMA è pronto a dare inizio al trasferimento richiede l'accesso al bus e quindi diventa proprietario dello stesso.
Per evitare conflitti tra il DMA e la cpu si esegue un protocollo di gestione chiamato BUS Master, ovvero il "proprietario del BUS" che ha sempre la priorità nell' uso del BUS. Di solito questa funzione è utilizzata dalla cpu ma in caso di necessità , un altro dispositivo può richiederla.

Il DMA richiede quindi l'autorizzazione dell'utilizzo del BUS come BUS Master e può quindi continuare il trasferimento appena inizializzato dalla cpu.

La cpu a questo punto se rinecessita del BUS deve ripoter tornare ad essere il proprietario del BUS, quindi BUS Master ma deve comunque attendere il termine dell'operazione iniziata dalla periferica in DMA e nel frattempo può eseguire solo altre operazioni che non richiedono il BUS.

Quando il trasferimento è terminato il DMA invia un Interrupt alla cpu e questa può quindi riprendere il controllo del BUS.


Prima ho scritto che la domanda del prof è a trabocchetto perchè in teoria e anche per logica è necessario attendere il completamento dell'operazione di trasferimento, ma nel caso specifico, le prestazioni degli SSD assottigliano molto i tempi di conclusione dell'operazione... possiamo dire che questi sono quasi annullati.
Di conseguenza visto che è un'operazione talmente veloce e visto che il trasferimento è immediato, l'attesa è davvero minima o proprio inesistente. :)

dirklive
09-02-2013, 09:29
il buffer non è altro che una parte di DRAM usata come cache nei dischi meccanici dove alcune operazioni vengono mantenute all'interno mentre il disco sta operando per abbattere le latenze e renderle quasi nulle.

Da non studioso ho cercato di dare un interpretazone, usando il buon senso, nel cercare di rispondere al quesito che poni, mi conforta vedere che sia il "maestro" MM che Riccardo 799, siano in sintonia sui concetti da me espressi pur in modo grezzo, a mio avviso nelle prime righe del post di MM è racchiuso il succo della questione, ovvero:La struttura ed il funzionamento del bus non vengono modificati dal tipo di periferica ad esso collegata, quindi si deve attendere.:)

MBdip
09-02-2013, 10:51
quindi alla fine avete confermato quello che pensavo… Vi ringrazio! ;)