Recupero Dati



Numero Verde Recupero Dati


L'evoluzione dei dischi fissi


Il primo PC IBM, presentato nel 1981, non prevedeva alcun tipo di disco fisso. Il codice del BIOS non riconosceva alcun supporto di questo tipo, e le prime versioni di DOS limitavano la memorizzazione di massa, limitando il numero di directory e di file che potevano essere creati. Questo non dovrebbe sorprendere, se si pensa che il primo PC, a 4,77 MHz, veniva fornito con 16K di RAM, espandibili a 64K. Anche il lettore floppy ed il sistema operativo erano possibili espansioni del lettore a nastro e della ROM di base.


L'utilizzo di un disco fisso in un PC richiede:- IRQ Hardware (per la richiesta di interrupt)
- Indirizzo I/O per il controller
- Un canale DMA (ora opzionale)
- Codice di basso livello
- Interfaccia fisica del bus (integrata o espandibile)
- Supporto del sistema operativo
- Energia e raffreddamento a sufficienza

Dopo che DOS 2 ha introdotto la possibilità di creazione di sottodirectory, ed il supporto per dispositivi di memorizzazione di massa, le aziende hanno incominciato a produrre e vendere dischi fissi per PC. Questi erano composti da un cabinet esterno che conteneva il disco, un controller, ed un delicato sistema di alimentazione del disco (dal momento che i 63.5 watt forniti dall'alimentatore del PC non erano sufficienti). Tali dispositivi erano esportati da altre architetture, e venivano connessi al PC tramite un cavo ed un adattatore ad 8 bit, che veniva inserito in uno slot disponibile. Questo sottosistema era configurato per utilizzare un IRQ, un canale DMA, ed un range di porte I/O, ed il driver veniva messo a disposizione da un device caricato in memoria subito dopo il boot (eseguendo il boot da floppy).

Nel 1983 l'IBM produce l'IBM XT (eXTended), con 10MB di disco fisso integrato. IBM ha lavorato con un'azienda (Xebec), per integrare le componenti del disco, normalmente localizzate in un cabinet esterno, all'interno del computer. Inoltre introducono una scheda per interfacciare il bus, creando quello che viene comunemente chiamato il "controller del disco fisso".

Il codice per la gestione del disco viene fornito da un chip ROM sul controller, che espande le sub-routine presenti nel BIOS, e la corrente fornita dall'alimentatore era stata portata a 135 watt, per produrre la potenza necessaria al disco fisso interno.

L'IBM XT utilizzava:
- IRQ 5
- Indirizzi I/O di range 320-32f
- Canale DMA 3
- Codice programma su ROM C8000
- DOS 2.0 o migliore

Diverse aziende incominciarono a produrre e vendere questi tipi di periferiche, con diversi miglioramenti, tra i quali: maggiore capacità fisica, performance migliori, ed un controller floppy integrato nella stessa scheda (per preservare gli slot disponibili). Questo sottosistema poteva anche essere aggiunto ad un PC originale, se l'alimentazione di energia elettrica interna era adeguata.

Nel 1984 fece la sua comparsa l'IBM AT (Advanced Technology), che ha portato una completa revisione al sistema dei dischi fissi. Il codice per il boot viene incluso direttamente nel BIOS della scheda madre, eliminando la necessità di un chip aggiuntivo sul nuovo controller a 16 bit, ed inoltre vengono notevolmente migliorati i tempi di accesso al disco. Questo sistema ha introdotto anche un IRQ più elevato, così da eliminare la necessità di utilizzare il DMA per i dischi, e ha cambiato il range di indirizzi I/O.

L'IBM AT utilizzava:
- IRQ 14
- Indirizzi I/O di range 1f0-1f8
- Canale DMA - nessuno
- Codice programma su BIOS della scheda madre
- DOS 2.0 o migliore

I dettagli di configurazione hardware per l'AT, inclusi i parametri del disco fisso, venivano memorizzati in un chip CMOS di bassa potenza connesso ad una piccola batteria, eliminando numerosi switch e jumper di configurazione presenti sulla scheda madre dei vecchi modelli. La batteria permetteva di mantenere le informazioni anche quando il computer era spento e di poter cambiare le informazioni tramite un menu di configurazione.

Il primo modello di AT supportava 14 differenti tipi di drive, riconoscendo dischi con capacità tra i 10 e i 112 MB. Ogni drive che non rispettava questi parametri fisici doveva essere fornito di un chip ROM sul controller, che espandeva il BIOS, oppure era necessario caricare il codice del driver al momento del boot.

Le versioni di DOS precedenti alla 4.0 (o 3.31) non supportavano partizioni maggiori di 32MB indipendentemente delle dimensioni del drive. Questo a causa del fatto che l'indirizzamento dei settori non poteva superare il valore di 16 bit (fino a 65.536 settori). La creazione di partizioni più grandi richiedeva l'utilizzo di un software come Disk Manager della Ontrack. Sfortunatamente questa soluzione, anche essendo una delle migliori, poneva molti problemi di compatibilità con altri strumenti per la gestione di dischi, poiché, veniva in effetti creata una partizione non-dos.

Molte persone preferivano invece dividere il disco in partizioni da 32MB creando C:, D:, E:, ecc., fino alla dimensione fisica del disco. Prima della versione 3.3 di DOS, anche questo era impossibile, dal momento che il sistema operativo non riconosceva partizioni estese!

Il numero dei tipi di drive riconosciuti dal BIOS viene esteso ad oltre 40, e molti BIOS moderni forniscono un tipo con parametri definibili dall'utente. Molti PC di oggi utilizzano ancora questi CMOS originali per il controllo e la configurazione dei parametri dei dischi fissi, anche se ci sono stati molti cambiamenti nel modo di memorizzare e aggiornare le informazioni su disco.

Questo ha creato alcuni limiti, tra i quali un problema con l'utilizzo di due o più dischi fissi, o il limite del BIOS e del sistema operativo di non riconoscere più di 1024 cilindri, 16 testine e 63 settori per traccia.

Poiché ogni settore contiene 512 byte, il drive più capiente è di 504MB.
(1024 X 16 X 63 = 1,032,192 settori X 512 = 528,482,304 byte)

Per comprendere questo limite dobbiamo capire il modo in cui il PC accede al disco.

Per prima cosa vengono inviati comandi I/O al controller, tramite un range di indirizzi di porte riservate. Questo processo è molto complicato e seccante, e il BIOS include una subroutine (INT 13) per eseguire questa funzione. Il sistema operativo DOS ha inoltre altre funzioni che semplificano ulteriormente questo processo. Tra queste ci sono la funzione INT25/26 che legge e scrive settori assoluti di un drive, o la funzione di alto livello (INT 21) per aprire, chiudere, e scrivere dati su file. Molti programmi fanno affidamento su queste funzioni DOS per controllare l'accesso al disco, ed è il DOS che si occupa di chiamare la subroutine INT 13 del BIOS, che esegue i comandi I/O necessari.

Tutte queste subroutine sono codice in linguaggio assembly che vengono caricate in memoria sia dal BIOS che del sistema operativo all'avvio del sistema.

Le routine in assembly memorizzano e manipolano i valori dei registri della CPU. I registri più piccoli per PC basati su architettura INTEL sono di 16 bit. Ogni programma o routine deve essere compatibile anche con le precedenti versioni di questa architettura, quindi deve utilizzare registri a 16 bit, sia che venga eseguito su un 8088 che su un Pentium.

La routine INT 13 è la spina dorsale della compatibilità tra PC, ed utilizza i registri a 16 bit nel seguente modo:
° DX - 8 bit per il numero della testina e 8 bit per il numero del drive
° CX - 10 bit per il numero del cilindro e 6 bit per il numero del settore

Il numero di 10 bit più grande è 1024, da questo il limite del numero dei cilindri(da 0 a 1023), con 6 bit si ottiene massimo 64 (da 0 a 63), permettendo 64 (da 0 a 63) settori per traccia.

Il registro DX permette un massimo di 255 testine, e non le 16 dichiarate nelle specifiche originali. E' questo che permette ai dischi fino anche a 8GB di essere ugualmente compatibili con INT 13.

Se il registro DX prevede 8 bit per il numero del drive, non dovrebbero essere 255 i dischi controllabili, invece di solo 2?

Quando la INT 13 manda i comandi al controller del drive, dovrebbe conoscere almeno la geometria fisica del drive in questione. Durante l'avvio del sistema, i valori relativi al tipo di disco vengono letti dalla CMOS e memorizzati in un'area di RAM chiamata BIOS DATA AREA. I puntatori a questa area vengono memorizzati nella tabella degli interrupt (agli indirizzi 0:104h e 0:118h). La tabella riserva puntatori solamente per due drive, così anche se la CMOS contenesse più valori, la routine standard non saprebbe come gestirli.

Perché le routine INT 13 sono così limitate? La risposta è semplice: sono state scritte in tempi in cui dischi da 10MB e 20MB erano la norma, e 120MB era quasi incredibile. Sono state progettate per comunicare con un controller con un'interfaccia specifica, lo standard ST412/506 (controller WD1003), e le specifiche per il passaggio dei parametri prevedono 10 bit per il numero dei cilindri, 4 per il numero delle testine e solamente uno per il numero del drive.

Qualcuna di queste limitazioni è stata sorpassata sostituendo la INT 13 nei nuovi PC, con una nuova routine che riconosce e gestisce device diversi. Questo è il motivo per cui virtualmente ogni adattatore SCSI include un chip ROM, e bisogna impostare nel BIOS il tipo di drive su ZERO.

 
Copyright © 2000-2011 Recupero Dati - Gruppo Italian Code SRL - Tutti i diritti riservati - Sede: via Roma, 74 Cassina De Pecchi - 20060 Milano - Tel. 02 952 1223 - info@recuperodati.it
I loghi presentati in questo sito sono di proprietà dei rispettivi marchi.


I Nostri laboratori sono forniti ufficialmente da ACE Laboratory Ltd. Offriamo soluzioni hardware e software per la riparazione di Hard Disk danneggiati e per il recupero dei dati da qualsiasi supporto. La serie di schede PC-3000 è riconosciuta come la migliore in tutto il mondo, un prodotto unico, che permette qualsiasi tipo di recupero professionale dei dati. Possiamo garantire il miglior risultato nel recupero dei dati grazie al nostro investimento in tecnologie avanzate e nel costante aggiornamento dei nostri tecnici specializzati. Recupero Dati si distingue da anni nel settore Data Recovery grazie alla politica di analisi gratuita senza impegno, la velocità del processo di recupero, la garanzia dell'intergrità dei dati, al controllo totale della qualità e alla massima riservatezza e rispetto delle informazioni. Il nostro Team di Supporto seguirà passo passo il processo di recupero dei tuoi preziosi dati. La genialità tutta italiana abbinata al rigore tecnologico ed a uno dei più moderni laboratori disponibili sul territorio, garantiscono un'altissima probabilità di trasformare una situazione apparentemente irreversibile in una soluzione al tuo problema.

Valid XHTML 1.0 Transitional