Altri articoli sul numero 73

Fabio  Bettinini ha incontrato un problema molto fastidioso:
da  quando ha installato la scheda Cyberstorm 040/40 sul suo
A4000,  il  30-40%  delle immagini IFF a 24 bit che carica o
registra  sui  suoi  hard  disk AT-bus risultano casualmente
corrotte.
Il  primo  dubbio  riguarda  il  fatto  che  il  problema e'
saltuario,  e  cioe'  ripetendo il caricamento piu' volte si
ottengono  sempre  risultati  diversi,  in  contrasto con la
natura   digitale   dei  dati  che  secondo  Fabio  dovrebbe
assicurare una ripetibilita' dei risultati...o dei guasti.
Quando  si afferma che un computer opera su dati digitali si
dimentica  facilmente  che  in  realta'  i circuiti lavorano
esaminando  il  valore di una tensione, che e' una grandezza
analogica:   un  computer  che  funzioni  su principi fisici
intrinsecamente   digitali   e'   per  ora  solo  un  sogno,
nonostante sia da sempre oggetto di studi e ricerche.
La maggior parte degli sforzi dei progettisti non e' rivolta
allo  studio  delle reti logiche che formano il calcolatore:
essendo  un  problema  di  natura  matematica  su  argomenti
ampiamente  noti,  una volta chiarite le ipotesi di partenza
porta  automaticamente ad una soluzione esatta (salvo che in
casi  particolari,  come  Intel insegna).  La cosa realmente
difficile  e'  garantire  che ogni segnale, nessuno escluso,
venga  consultato  solo  quando  la  sua  tensione assume un
valore associabile senza ambiguita' ad un livello logico 0 o
1.    Questa  condizione  e'  il  fondamento  di  tutto,  ma
sfortunatamente  e'  anche una imposizione fisicamente molto
impegnativa  che  si  regge  sul  perfetto  funzionamento  e
collegamento di milioni di transistor.
Di  conseguenza  quasi  tutti  i  guasti  comportano  la sua
violazione,   che   si   manifesta  sotto  forma  di  errori
intermittenti  (blocchi  di  sistema,  corruzione  dei dati)
quando  il  caso  spinge  la  tensione  della linea guasta o
sovraccarica ad un valore non piu' nettamente distinguibile:
puo'  bastare  una  minuscola  variazione  della tensione di
rete,  o  un  impulso  di  rumore  che  in  un circuito sano
passerebbe  inosservato  per  cambiare  un  1  in  uno  0  e
viceversa.
Un  blocco  di  sistema  e'  il  comportamento estremo di un
computer  che ha "qualcosa che non va"; molto piu' spesso si
verifica  una  corruzione dei dati che passa prevalentemente
inosservata.   Si  rivela  solo quando si da' un comando che
comporta  l'esecuzione  ripetuta molte volte dell'azione non
piu'  perfettamente  deterministica  (a causa di un guasto o
incompatibilita') mentre si fa uso di meccanismi di verifica
che la segnalano.  Il caso di Fabio (caricamento di un IFF a
24 bit) e' tra i piu' tipici:  i file di questo tipo sono di
solito  molto  lunghi  (trasferendo  molti  byte  cresce  la
probabilita'  che uno si alteri), e il programma effettua un
controllo di integrita' che segnala immediatamente l'errore.
Una  situazione molto simile si verifica manipolando archivi
compressi (es:  lha, zip ecc.).
Per  individuare  le  cause  del  problema  e  rimuoverle (o
metterci una pezza) bisogna rintracciare il percorso seguito
dai dati ed esaminare ogni tappa.
Se  l'hard  disk fosse SCSI, la prima cosa da controllare e'
il  cablaggio della catena SCSI e il chip controllore di bus
(WD33C93A ecc.), come spiegato piu' volte in precedenza.
Un'altra  causa di corruzione molto comune, se il controller
non  e' sulla motherboard, e' il rumore elettrico sul bus di
espansione  dovuto e incompatibilita' tra schede, rottura di
uno  slot  (gli  ultimi  due  slot  in  alto  su  A4000 sono
particolarmente  delicati),  overclock  della  motherboard o
difetto del controller stesso.  A volte i problema cambia di
frequenza   lasciando   inserito   il   solo   controller  o
spostandolo di slot.
Nel  caso del controller AT-bus incorporato di A600, A1200 e
A4000  vale  quanto  spiegato  sul  numero  65:   la  scheda
acceleratrice cambia le temporizzazioni dell'interfaccia per
hard   disk   (cosa  evidentissima  anche  solo  notando  la
variazione  di  velocita'  dei  dischi),  e  cio'  puo'  far
esplodere  quelle  situazioni  innescate da combinazioni tra
hard  disk  non  ben  gestite  dalla  scsi.device  di Amiga.
AT-bus  e' uno standard formalizzato in tempi recentissimi e
dove  Commodore  aveva poca esperienza, a differenza di SCSI
(per  il quale l'interoperabilita' a livello del software e'
una certezza).
Altro  elemento  che  puo' causare corruzione dei dati e' la
RAM,  entro  la  quale per forza di cose devono transitare i
dati:   non  e'  infrequente  che  moduli  o chip si rompano
improvvisamente senza motivo apparente.  Di solito in guasto
e'   plateale,   ma   in   rari  casi  due  celle  vanno  in
cortocircuito  tra  loro  oppure  qualche bit resta bloccato
allo  stato 1 oppure 0 (questo genere di difetti solitamente
e' esasperato dalla temperatura elevata).
Gli  Amiga,  sopratutto  A3000 e A4000, hanno una complicata
gestione  dei  bus  dati  con  moltissimi  buffer e circuiti
smistatori.  Se i diagnostici indicano un errore di memoria,
e'  molto  probabile che la colpa sia di uno di questi chip.
In  particolare  su A500 e' frequentissima la rottura di uno
dei  chip  74LS244  oppure  74LS373,  con vistose corruzioni
anche  del  video:   per  la  sostituzione  si puo' usare un
74HCT244 o 74HCT373.
Usando  alcuni  modelli  di  schede acceleratrici si possono
verificare  problemi  di compatibilita' con le espansioni di
memoria,  perche'  la  CPU 68030 o 68040 durante il ciclo di
bus  acquisisce  i  dati  in  un momento diverso rispetto al
68000  o  68020.  Lo stesso tipo di problemi si manifesta su
alcuni  (rari)  A4000  lanciando  il  programma di patch che
elimina  uno  stato  di  attesa sulla memoria (reperibile su
Aminet).   La  posizione  ufficiale  di Commodore era che il
funzionamento in questo modo "veloce" non e' affidabile.


Main Previous Next