Parallel ATA - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Fonctions plus avancées

LBA - Logical Block Address

Présentation

Le mode CHS permet d'adresser un secteur du disque en indiquant son numéro de secteur, le numéro du cylindre où il se trouve ainsi que le numéro de la tête. Malheureusement, ce mode ne permet d'adresser que 1024 cylindres, 63 secteurs et 256 têtes soit 1024*63*256*512=8455716864 octets soit un peu moins de 8 Go, ce qui est peu de nos jours (quoique certains disques supportent des adresses CHS supérieures à cette limite).
Au contraire, le mode LBA utilise une adresse logique sur 28 bits : le 1e secteur a l'adresse 0, le 63e l'adresse 62, le 1e secteur du 2e cylindre l'adresse 63 (s’il y a 63 secteurs par cylindres) et ainsi de suite. Le mode LBA permet donc d'adresser 2^28*512=137438953472 octets soit 128 Go.

Utilisation, différences par rapport au mode CHS

L'utilisation du mode LBA n'est pas beaucoup plus compliquée que le mode CHS, les différences peuvent être résumées de la manière suivante :

Registre Mode CHS Mode LBA
Registre de lecteur et tête, bit 6 0 1
Numéro de secteur Numéro du secteur Bits 0 à 7 de l'adresse LBA
Numéro de cylindre, octet de poids faible Numéro de cylindre, octet de poids faible Bits 8 à 15 de l'adresse LBA
Numéro de cylindre, octet de poids fort Numéro de cylindre, octet de poids fort Bits 16 à 23 de l'adresse LBA
Registre de lecteur et tête, bits 0 à 3 Numéro de tête Bits 24 à 27 de l'adresse LBA

Pour le reste, tout est identique.

Conversion d'une adresse CHS en adresse LBA et inversement

adresse logique = (numero de secteur - 1) + (numero de tête * nombre de secteurs par cylindre) + (numero de cylindre * nombre de secteurs par cylindre * nombre de têtes)

secteur CHS = entier(1 + reste de (adresse logique / nombre de secteurs par pistes))
tête CHS = entier(reste de ((adresse logique / nombre de secteurs par pistes) / nombre de têtes))
piste CHS = entier(adresse logique / (nombre de secteurs par cylindre * nombre de faces))

Considérons lba l'adresse logique, c le cylindre, h la tête, s le secteur, H le nombre de têtes et S le nombre de secteurs par cylindre, voici les mêmes formules dans une syntaxe de style C (types entiers) :

lba = (s - 1) + (h * S) + (c * S * H);
s = 1 + (lba% S);
h = (lba / S)% H;
c = lba / (S * H);

Les différents standards

Standard Autres dénominations Taux de transfert (Mo/s) Nouveautés Référence ANSI
ATA-1 ATA, IDE PIO 0,1,2: 3.3, 5.2, 8.3
Single-word DMA 0,1,2: 2.1, 4.2, 8.3
Multi-word DMA 0: 4.2
X3.221-1994
(obsolète depuis 1999)
ATA-2 EIDE, Fast ATA, Fast IDE, Ultra ATA PIO 3,4: 11.1, 16.6
Multi-word DMA 1,2: 13.3, 16,6
X3.279-1996
(obsolète depuis 2001)
ATA-3 EIDE " S.M.A.R.T., Sécurité X3.298-1997
(obsolète depuis 2002)
ATA-4 ATAPI-4, ATA/ATAPI-4 Ultra-DMA/33:
UDMA 0,1,2: 16.7, 25.0, 33.3
jeu d'instructions Packet NCITS 317-1998
ATA-5 ATA/ATAPI-5 Ultra-DMA/66:
UDMA 3,4: 44.4, 66.7
détecte les câbles à 80 fils NCITS 340-2000
ATA-6 ATA/ATAPI-6 Ultra-DMA/100:
UDMA 5: 100
LBA 48 NCITS 347-2001
ATA-7 ATA/ATAPI-7 Ultra-DMA/133:
UDMA 6: 133
-- NCITS 361-2002

Jeu d'instructions Packet

Ce jeu d'instructions constitue la principale différence entre ATA et ATAPI. Il implémente les deux commandes suivantes :

  • Obtention d'informations : une commande du même type existe dans le protocole ATA mais fournit des informations différentes. Ces deux commandes sont décrites plus bas.
  • Envoi d'une commande Packet : cette commande permet l'envoi de commandes Packet dans un format spécial par le biais du port de données. Ces commandes permettent d'envoyer plus d'informations que les commandes ATA normales. Cette commande est également décrite plus bas.

Ces commandes servent d'interface à un jeu d'instructions spéciales spécifiques au type de périphérique (CD-ROM, CD-R/RW, DVD…). Ces commandes ne sont pas définies par le protocole ATAPI.

Dans le cas des CD-ROM et des DVD, ces commandes sont définies par le T10 (Technical Committee T10, dépendant de NCITS (National Committee for Information and Technology Standards) chargé de SCSI) dans les MMC (Multimedia Commands 1, 2 et 3 actuellement).
Note : Ces commandes étaient, pour les CD-ROM, définies dans le document SFF-8020i, maintenant obsolète.

Tout système digne de ce nom doit impérativement supporter un protocole soit par le biais d'un pilote ou bien sûr, serait plus simple d'utiliser le BIOS qui fournit déjà des fonctions d'accès aux disques durs (interruption 13h) mais ces fonctions sont limitées, lentes, et parfois buguées. Se baser sur le BIOS ne permet donc pas d'avoir un système fiable sans compter qu'en mode protégé, cela est impossible. C'est pourquoi il faut réécrire les routines d'accès aux disques pour avoir un pilote satisfaisant.

Quelques-unes des commandes de base sont décrites dans ce document

Page générée en 0.095 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise