La SPI ora sembra funzionare bene anche a 21MHz, quindi ho aggiornato il
sorgente della CPLD di I/O. Nonostante l'uso delle INI e OUTI richieda
28T-states contro i 21 delle INIR e OTIR, la maggiore velocita` del
processore ha aumentato ancora il data-rate di picco (da 674 a 758,9
KB/sec).
Ho fatto degli esperimenti per vedere se e` possibile usare il trasferimento
a blocchi multipli sulla SD/MMC invece di leggere 512 bytes e ritrasmettere
l'indirizzo ogni volta. Sono andato per tentativi, ma sembra funzionare e
far guadagnare circa il 20%, anche se non l'ho ancora provato nella bootrom
(prima vorrei controllare bene se funziona a 21MHz).
Per il momento ho fatto un programmino in basic che chiama una subroutine di
trasferimento di 16KB leggendoli dalla MMC. Esegue 1000 chiamate (quasi
16MB) e poi controlla quanto tempo e` trascorso (notare che questo implica
che gli INT siano abilitati, con peggioramento delle prestazioni). Con il
trasferimento normale impiega 33.64 secondi, mentre con il multiblock ne
servono 28.
Tutte le routines di comunicazione della MMC con la nuova versione che legge
a blocchi multipli sono qui: http://www.zxbada.bbk.org/software/mmcmulti.asm
Ciao!