by legacy » 21 Sep 2012, 13:31
beh spi MMC/SD ha consumi inferiori, occupa meno spazio, utilizza meno risorse hw (pin MPU)
di contro e' piu' lento
400Kbyte/sec...1000Kbyte/sec solitamente contro i 10Mbyte/sec...40Mbyte/sec del pATA
(sATA e' un mostro che addirittura e' capace di saturare la banda PCI
nessun micro potrebbe stargli dietro, anzi nessun computer basato su PCI, serve PCI express
e logiche toste, ASIC o FPGA, per interfacciare il trasporto seriale che adotta)
pPATA e' molto molto + semplice come interfaccia
tanto che era usato dai 286 in su, oggetti che hanno ironicamente meno banda di un AVR8
oggetti che pero' hanno iniziato a gestisce dma e dual buffering a livello di interfaccia
questa cosa richiederebbe un Xmega
spi+dma e' fattibile, ma e' un filo + complesso, perche' richiede non solo Xmega ma anche un po' di hw in piu'
con dischi elettromeccanici pATA si hanno tempi tseek non omogenei
con la conseguenza che servono algoritmi furbi per gestire dove scrivere le cose, dove=su quale cluster
mentre risultano costanti su spi MMC/SD il che significa poter fare indirizzamento casuale
tutti gli storage flash non hanno questo problema, i tempi di accesso al blocco dati non hanno memoria della storia dell'indirizzamento
puoi indirizzarli come ti pare, anche a caso, e avrei sempre gli stessi tempi di indirizzamento
con un disco elettromeccanico se la testina e' sulla traccia0 e tu richiedi un dato che sta sulla tracciaN-1 serve un tempo di volo
per muovere il braccetto da 0 a N-1 ... quindi hai dei tempi che dipendono da cosa hai fatto prima
detta cosi' spi MMC/SD sembra ideale per oggettini come arduino
perche' occupa pochi pin, non richiede algoritmi aggiuntivi per l'indirizzamento
e consuma di meno in termini di mA assorbiti
e mettiamoci anche che i dischi da 5" hanno bisogno di +5V e +12V
i dischi dei portatili da 2.5" solo +5V
con la scocciatura che devi comprare un adattatore 2.5"<->3.5"
perche' il connettorino che montano i 2.5" non e' troppo amichevole per poterlo filare
mentre spi MMC/SD hai soltanto una slittina in cui infilare la card
molto pratica e facilissima da saldare e maneggiare ed e' tutto alimentato a +3.3V
direi: pATA vs spi MMC/SD, pro e contro, e la lista potrebbe continuare
insomma per il layer0 sopratutto
(accesso diretto al dispositivo di storage, accesso per blocchi dati, non stiamo ancora parlando di filesystem)
tutto dipende da cosa uno ci deve fare
se e' un datalogger lento, e' molto molto meglio usare spi MMC/SD
se per altre ragioni e' stato scelto pATA
io operativamente io spezzerei il problema in 2 parti:
1) mappatura LBA, geometria disco, e miscellanee per accesso fisico raw, scrittura/lettura di blocchi dati (512byte) per LBA (logic block address)
2) filesystem sopra, in questo caso FAT32, con indirizzamento per cluster (1 o n blocchi dati da 512byte, indirizzati per LBA contigui).