[ Pagina Principale || Redazione || Informazioni || Vai a... ]

Definizioni dei termini tecnici

a cura di Fernando Carello


BIOS:

Basic Input Output System
Insieme di routine di interfacciamento residenti su ROM (Main System ROM). In pratica contiene i driver per le periferiche principali del PC, mettendo a disposizione del Sistema Operativo una serie di funzioni già pronte per accedere ai dispositivi di I/O (dischi, tastiera, video, stampante, porta seriale, clock, ecc.).
Va detto che ormai solo l'MS-DOS sfrutta le routine del BIOS per accedere alle periferiche: sistemi operativi più sofsticati (come OS/2, Windows NT, i vari Unix per PC, ecc.) hanno un proprio set di routine per dialogare con l'hardware (si servono del ROM BIOS solo durante l'avvio, generalmente).


CHS:

Cylinder, Head, Sector
L'indirizzo di ogni

Cluster o Blocco:

Unita' logica di allocazione di base in cui e' suddivisa una partizione.
Un blocco contiene un numero intero (maggiore o uguale ad uno) di
settori, e le sue dimensioni dipendono dal Sistema Operativo adottato, e in particolare dal File System utilizzato per la partizione in esame.
Il blocco rappresenta lo spazio minimo utilizzato per memorizzare informazioni con un certo file system.


"CRC Error" durante i trasferimenti via modem & Block Mode:

di Leonardo Serni

Un difetto del Block Mode (o Multi Sector Mode) e' che il Polled I/O avviene a interrupts disabilitati: questo perche' alcuni HD possono perdere dati se interrotti durante un PIO. Pertanto il ciclo avviene dopo aver dato un comando CLI (Disable Maskable Interrupts). Al termine, viene inviato il comando STI (Enable etc.). E tra i due comandi nessun interrupt viene generato, per cui mouse, tastiera e modem sono ciechi! Ecco un esempio di codice che implementa un trasferimento a blocchi (qui in lettura):

MOV CX,[BlockFactor]  ; Block Factor e' il numero di settori trasferiti per interrupt
MOV AX,100h           ; Sector size espresso in words
SHL AX,CL             ; AX contiene il numero di words
MOV CX,AX             ; CX contiene il numero di words
CLI                   ; ...senza mani!
REP INSW              ; Legge tutto in 1570 microsecondi (*)
STI                   ; ...puff!


(*) PIO MODE 1, 16 settori per interrupt.

Naturalmente, e' possibile scrivere un codice piu' efficiente, es.:

MOV AX,[BlockFactor];
AGAIN:  MOV CX,100h         ;
        CLI                 ; Disabilita gli interrupt per
        REP INSW            ; soli 100 microsecondi circa,ovvero
        STI                 ; come se lavorassimo senza block 
        DEC AX              ; mode ! 
        JNZ AGAIN           ;


Tuttavia, non e' raro trovare esempi del 1^ tipo ...
In 1570 microsecondi, a 14400 bps, arrivano circa 2.5 caratteri: troppi !
1.5 caratteri andranno persi, e la trasmissione via modem risultera' corrotta (CRC ERROR, ZRPOS, LSR o altri errori ameni).
L'ovvio modo di rimediare (a parte abbassare la velocita' di connessione del modem, che e' il modo suggerito da Telecom) e' ampliare il buffer di ricezione. Per questo serve una seriale bufferizzata, o, se e' zoccolato per benino, bastera' sostituire il vetusto chip 8250 o il fiero 16450 ed acquistare un possente chip 16550A (che ha, appunto, un buffer integrato FIFO da 16 byte: piu' che sufficiente anche per velocita' ben superiori a 14400 bps !) e usare un programma, o un driver o una utility che abbia la buona grazia di abilitare il buffer del chip, se no serve a poco :-)


DMA:

Direct Memory Access
Una delle modalita' di trasferimento dati da/verso una periferica, idealmente contrapposta al
PIO.
In un trasferimento DMA, la CPU si limita a comunicare alla periferica quale dato (o gruppo di dati) bisogna leggere/scrivere e in quale zona di memoria depositarlo/prelevarlo: dopodiche' puo' occuparsi d'altro. La periferica, una volta pronta per il trasferimento, assumera' il controllo del bus che porta alla memoria (Bus Mastering) ed effettuera' tutte le operazioni richieste per effettuare il trasferimento; dopodiche' asserira' una linea IRQ per comunicare alla CPU che il compito richiesto e' stato svolto.
Per tutto il tempo del trasferimento, la CPU e' libera di servire altri processi, valorizzando al meglio le caratteristiche di un sistema multitasking; l'unica limitazione e' dovuta al fatto che, essendo il bus che la collega alla memoria pricipale occupato dalla periferica che effettua il DMA, non sara' possibile leggere/scrivere in RAM (questo fenomeno e' noto con il termine poco appropriato di furto di cicli -da parte della periferica ai danni della CPU-); tuttavia, la CPU potra' accedere ai dati contenuti nella cache memory (tranne quelli contenuti agli indirizzi interessati al DMA), che in genere riesce a coprire un'alta percentuale di accessi.
Nel caso specifico degli accessi ad hard disk, visti gli elevati Transfer Rate in gioco e l'incidenza che tali accessi hanno sulle prestazioni del sistema, i modi DMA assumono particolare importanza. Per diversi anni tali modi sono rimasti appannaggio dei sistemi SCSI (vedi l'articolo di Andrea Nenni "SCSI -parte prima" su BETA 0295), poco diffusi sui PC di fascia medio-bassa a causa del prezzo elevato; ora, pero', anche i sistemi ATA-2 (nonche' EIDE e FAST-ATA) dispongono di efficienti modi DMA:

        DMA MODE        DURATA CICLO    MAX TRANSFER RATE
        
        0               900 ns           2.2 MB/s       
        1               480 ns           4.1 MB/s
        2               240 ns           8.3 MB/s


        DMA MULTIWORD   DURATA CICLO    MAX TRANSFER RATE
        
        0               480 ns           4.1 MB/s
        1               150 ns          13.3 MB/s
        2               100 ns          20   MB/s
(per semplicita', e' stato assunto 1 MB = 1 milione di byte, anziche' 1^20 byte)

I modi DMA permettono quindi elevate velocita' di trasferimento e bassi carichi per la CPU; occorre tuttavia che il sistema operativo sia in grado di sfruttarli (servono, come sempre, i giusti driver); inoltre, non e' sufficiente che l'hard disk sia in grado di supportare il DMA: e' necessario che l'host adapter cui e' connesso sia in grado di operare come Bus Master, altrimenti il trasferimento DMA non potra' essere effettuato. Va infine ricordato che i valori di transfer rate riportati nella tabella vanno considerati come valori massimi durante un burst.


File System:

Struttura logica utilizzata per l'archiviazione dei dati su un certo supporto (unita' di massa).
Il file system utilizzato dipende da vari fattori: sistema operativo, tipo di supporto utilizzato, esigenze particolari, ecc.
Il file system per dischi magnetici piu' noto nell'ambiente PC e' quello utilizzato dall'MS-DOS, ovvero FAT (File Allocation Table). E' un file system piuttosto vecchio (risale ai primi anni '80), nato quando gli hard disk avevano dimensioni di 10-20 MB e sopravvissuto fino ad oggi con ben poche modifiche; la piu' evidente riguarda l'utilizzo di indirizzi a 16 bit (anziche' gli originari 12) per l'allocazione dei settori su ciascuna partizione del disco.
Avere 16 bit per gli indirizzi significa poter allocare un massimo di circa 65000 unita' elementari per partizione logica. Poiche' un
settore e' grande 512 byte, appare evidente che la FAT non puo' permettersi di indirizzare i singoli settori: in questo modo non potrebbe gestire partizioni piu' grandi di 32 MB. Viene cosi' adottata un'unita' base, il cluster, composta da piu' settori allocati consecutivamente; il numero di settori che compongono il cluster dipendono dalle dimensioni della partizione, dato che il numero massimo di cluster non puo' superare 65000 (circa). Cosi', una partizione da 100 MB avra' cluster da 2 KB (4 settori), e una partizione da 600 MB avra' cluster da 16 KB. L'elevata dimensione dei cluster e' la causa di un certo spreco di spazio su disco (slack space), dal momento che ciascun file dovra' necessariamente occupare un numero intero di clusters.
Altri noti file system per hard disk sono l'HPFS (High Performance File System) usato da OS/2 e l'NTFS (New Technology File System) usato da Windows NT; entrambi hanno la capacita' di indirizzare i singoli settori (512 byte) indipendemente dalle dimensioni della partizione, grazie all'adozione di indirizzi a 32 bit; adottano inoltre architetture decisamente piu' avanzate della FAT, il che comporta maggiore affidabilita', migliori prestazioni e maggiore versatilita' e comodita' d'uso.
Per supporti di massa strutturalmente diversi sono necessari file system a parte: ad esempio per i CD-ROM si utilizza l'ISO 9660.


ID

IDentification number:
Numero identificativo univoco di ogni unità SCSI.
Si regola tramite un selettore rotante su buona parte delle periferiche esterne, mentre sulle rimanenti e quelle interne tramite un banco di 3 jumper o microswitch, isolati o in genere all'estrema sinistra di un gruppo più numeroso, che rappresentano l'ID in numerazione binaria partendo dal bit meno significativo.
Per chi non ha dimestichezza con la numerazione binaria basta sommare il contributo dei singoli jumper o switch: quelli aperti o off valgono 0 mentre quelli chiusi o on valgono nell'ordine 1,2,4.


MBR:

Master Boot Record (anche MBS: Master Boot Sector)
E' il primo settore (fisico e logico) dell'hard disk, e corrisponde al primo settore della traccia 0, faccia 1 del disco.
E' il settore che viene letto per primo, durante la sequenza di boot, e che permette di far partire il Sistema Operativo: vedi, su questo stesso numero,
"Bootiamo ?".


PIO Mode:

Polled Input Output
Una delle modalita' di trasferimento dati da/verso una periferica; nel PIO mode, la CPU e' costantemente impegnata durante il trasferimento dei dati, a differenza del
DMA Mode.
Durante un trasferimento in PIO, la CPU effettua un ciclo, leggendo continuamente da una certa porta di I/O (status register) che segnala se la periferica e' pronta (READY) a fornire (o a ricevere) il dato: quando cio' avviene, la CPU legge (o scrive) il dato eseguendo un'istruzione IN (o OUT) all'indirizzo della porta di I/O opportuna; dopodiche' si mette nuovamente in attesa che lo status register dia il nuovo READY. Poiche' la CPU e' piuttosto impegnata da questo tipo di trasferimento, il sistema ne viene sensibilmente rallentato.
Nei PC, l'hard disk (specie se ATA) e' generalmente gestito in PIO mode (sono ancora poco diffusi i sistemi HD + host adapter + driver in grado di lavorare in DMA), o meglio con un sistema denominato interrupt-driven PIO : vediamo come funziona (analizzando il caso di una lettura).
Quando il sistema operativo chiede di leggere un settore, le routine che si occupano degli accessi a disco (che possono far parte del BIOS, di un driver fornito dal costruttore dell'host adapter, o del Sistema Operativo stesso) notificano una richiesta di lettura per il dato settore al controller del disco (integrato nel disco stesso: da non confondere con l'host adapter, che e' la "scheda" inserita in uno slot della mother board e alla quale e' attaccato, tramite cavo flat, il disco). A questo punto l'azione passa al controller, e la CPU puo' momentaneamente occuparsi d'altro; il controller cerca il settore richiesto, lo legge, lo mette in un buffer ed avvisa la CPU che tutto e' pronto: per fare questo, asserisce una linea di IRQ (Interrupt ReQuest), che fa si' che la CPU interrompa cio' che sta facendo e presti attenzione alla periferica. Ora comincia il ciclo PIO: poiche' un settore e' costituito da 512 byte, saranno necessarie diverse IN per completarne la lettura (una IN, nel nostro caso, legge tipicamente 16 byte). Possiamo schematizzare la routine di lettura in questo modo:

MOV CX,100h ; Numero di word da leggere: 1 settore = 512 byte = 256 words
CLI         ; Vengono disabilitati gli interrupt per evitare possibili 
            ; perdite di dati dovute ad interruzioni del ciclo PIO
REP INSW    ; Vengono effettuate le 256 letture: il prefisso REP indica 
            ; che l'istruzione che segue (INSW) va ripetuta CX volte
STI         ; Gli interrupt vengono riabilitati

Nell'esempio fatto, abbiamo supposto che il Block Mode (vedi corpo principale dell'articolo "Uno sguardo al Setup -seconda parte"; vedi anche problemi con il Block Mode) fosse disabilitato (1 solo settore trasferito per interrupt).

La velocita' con cui si susseguono le varie INSW determina, a conti fatti, il Transfer Rate per la lettura di un settore. Il protocollo d'intesa in via d'approvazione ATA-2 (che integra le specifiche ATA, EIDE e FAST-ATA) ha definito un certo numero di "modi", da PIO 0 a PIO 4, ciascuno caratterizzato da determinate durate del ciclo (e quindi capace di determinati T.R. massimi):

        PIO MODE        DURATA CICLO    MAX TRANSFER RATE
        
        0               600 ns           3.3 MB/s
        1               383 ns           5.2 MB/s
        2               240 ns           8.3 MB/s
        3               180 ns (*)      11.1 MB/s       
        4               120 ns (*)      16.7 MB/s
(per semplicita', e' stato assunto 1 MB = 1 milione di byte, anziche' 1^20 byte)

* Le specifiche per i cicli PIO 3 e 4 richiedono che sia il controller a temporizzare il ciclo, asserendo la linea IORDY quando la nuova word e' pronta per essere letta. Non tutti gli host adapter supportano questo controllo di flusso, percio' in alcuni casi non e' possibile superare il PIO 2, nonostante hard disk ed adapter siano "dichiarati" in grado di reggere temporizzazioni piu' rapide. Per contro, alcuni modelli di hard disk riescono a supportare il PIO 3 anche senza l'utilizzo del segnale IORDY.

I cicli PIO piu' veloci (3 e 4) prevedono che le istruzioni INSW si susseguano a ritmi elevati, il che ha delle conseguenze piuttosto pesanti quando si utilizzi un sistema operativo multitasking.
Supponiamo infatti di avere un processore 486 DX2 66 e di voler utilizzare il modo PIO 4; l'esecuzione di un'istruzione INSW all'interno di un ciclo REP richiede circa 60 ns, quindi il margine rispetto ai 120 ns richiesti dal PIO 4 e' troppo esiguo affinche' la CPU riesca a fare altro (il solo context switching necessario per far subentrare un altro processo richiederebbe ben piu' di 60 ns): questo significa che durante l'intero trasferimento del settore (o di piu' settori, se e' attivo il block mode) il sistema e' "congelato".
Cio' ha portato all'esigenza di definire delle nuove modalita' di trasferimento, piu' sofisticate del PIO mode: sono i modi DMA.


POST:

Power On Self Test
Insieme di controlli effettuati dalla mother board subito dopo l'accensione. Durante il POST, vengono provati i principali componenti del PC, ovvero la memoria, i controller DMA, la scheda video, gli hard disk, i floppy, ecc. Se si verifica un problema durante questa fase, il
BIOS puo' emettere dei segnali acustici codificati atti a descrivere il problema incontrato (ciascun BIOS ha un proprio codice); nel caso dei dischi (gli ultimi dispositivi ad essere controllati) vengono stampati dei messaggi a video (es: "Hard disk failure", a volte accompagnato da un codice numerico e/o acustico).
Le routine del POST possono essere "lunghe" (ogni dispositivo viene controllato pu' volte) o "brevi"; generalmente e' possibile selezionare le due modalita' tramite il BIOS Setup.


Read-ahead:

Lettura anticipata di dati e loro immagazzinamento in un buffer in previsione di future richieste.
Nel caso delle memorie di massa, ipotizzando che i file siano allocati, almeno su piccola scala, sequenzialmente, puo' essere vantaggioso leggere alcuni settori oltre a quello richiesto dal sistema operativo. Di questo possono occuparsi le stesse routine che sovrintendono agli accessi a disco, eventuali programmi di disk-caching (es. SmartDrive ed HyperDisk per MS-DOS), eventuali host adapters "intelligenti", o anche gli stessi disk controllers.
A volte il numero di settori letti in anticipo puo' essere scelto in modo indipendente, altre volte e' fisso o legato ad altri parametri del programma di caching (es. numero di celle allocate e numero di slot in cui e' suddiviso il buffer), delle routine di accesso a disco (es. numero di settori trasferiti per interrupt), ecc.
In linea di massima, non e' consigliabile regolare il read-ahead ad un valore troppo alto: ne soffrono le prestazioni per accessi random.


Ring:

Ciascuno dei 4 livelli di protezione che, nelle CPU 80386 e superiori funzionanti in modo protetto, possono essere associati ad un certo processo, settore di memoria, porta di I/O.
Da un certo ring si puo' accedere a dati e procedure contenuti in ring meno privilegiati, mentre il contrario e' impossibile, se non tramite opportuni meccanismi rigorosamente controllati dal Sistema Operativo e dalla CPU. Il ring 0 corrisponde al livello di privilegio piu' alto: a tale livello appartengono in genere il nucleo del Sistema Operativo (kernel) e poco altro. Ad un processo che appartenga al ring 0 sono imposte ben poche limitazioni: esso puo' accedere a dati e routine situati in tutti gli altri ring; cio' rende tale processo potenzialmente pericoloso, ed e' per questo che il ring 0 deve contenere lo stretto indispensabile per il funzionamento del sistema; in piu', codice e dati devono essere rigorosamente esenti da errori.


Settore:

Unita' fisica di allocazione di base in cui e' suddiviso un disco.
Nel caso di un hard disk per PC, un settore corrisponde generalmente a 512 byte; non e' possibile utilizzare, per memorizzare informazioni, meno di un settore. Possono esserci anche limiti piu' restrittivi, dati dal Sistema Operativo in uso (vedi
cluster).


ROM Shadowing:

Tecnica consistente nel copiare il contenuto di una ROM in RAM, allo scopo di aumentarne la velocita' di lettura.
Per accedere ai dispositivi fisici, e' necessario utilizzare routine a basso livello, in grado di comandare direttamente l'hardware (
BIOS). Queste routine possono essere integrate nel Sistema Operativo (come avviene per molti dei piu' recenti S.O.), ma, per "alleggerire" il sistema operativo stesso e renderlo meno dipendente dell'hardware, la maggior parte di esse vengono anche fornite su ROM.
C'e' quindi una ROM contenente le routine principali di sistema (Main System ROM BIOS), che permette il controllo dei dispositivi di Input/Output quali dischi, porte seriali e parallele, funzionalita' base del video, piu' dispositivi a basso livello quali il timer ecc., una ROM conenente le routine per la tastiera (a volte integrate nel Main System BIOS), e le ROM aggiuntive poste a bordo delle schede, contenenti le routine per l'accesso a quella particolare periferica (es: Video BIOS).
Purtroppo, la ROM e' caratterizzata da un tempo di accesso piuttosto elevato (da due a tre volte superiore a quello di una RAM), e cio' puo' penalizzare le prestazioni del sistema, quando questo debba accedere frequentemente alle routine dei BIOS. Viene allora adottata le tecnica del ROM-Shadowing, che consiste nel copiare nella RAM di sistema il contenuto di una o piu' ROM, rimappando opportunamente gli indirizzi. In questo modo, ogni volta che il sistema operativo richiede una routine contenuta in quella ROM, l'accesso avviene invece dalla piu' veloce RAM. Questo procedimento comporta una diminuzione della quantita' di RAM disponibile (parte verra' appunto occupata dal contenuto delle ROM), percio' occorre valutare bene quali ROM convenga sottoporre a shadowing.


Transfer Rate: burst vs. sustained

I valori di transfer rate dichiarati per i vari modi
PIO e DMA, e riportati nelle tabelle, sono quelli calcolati durante il trasferimento di un settore(o di un blocco se e' abilitato il trasferimento Block Mode): non bisogna aspettarsi, dunque, velocita' di trasferimento cosi' elevate durante l'effettiva lettura di un file (quest'ultimo valore e' spesso indicato come sustained transfer rate, in opposizione ai valori in tabella, definiti burst transfer rate). Infatti, il burst transfer rate dipende solo dalla velocita' dell'elettronica di adapter e controller (si tratta a tutti gli effetti di una lettura effettuata dalla cache situata a bordo dell'HD), mentre nella determinazione del sustained transfer rate intervengono altri fattori, come la velocita' di rotazione del disco, la densita' di registrazione dei dati sulla superificie magnetica, le dimensioni della cache e del file letto, la frammentazione del file stesso su disco, ecc.: valori anche 3-4 volte piu' bassi sono perfettamente normali.


[ Pagina Principale || Redazione || Informazioni || Vai a... ]
BETA - la rivista ipertestuale tecnica, copyright © 1994-95 Luciano Giustini e Fernando Carello. Tutti i diritti riservati.
Numero di accessi a questa pagina dal 29/08/95: (installazione in rete)