Calcul du temps de lecture du modèle de bloc de disque dur


8

Mon professeur a publié une diapositive sur la façon de calculer la récupération des données du disque dur à l'aide du modèle de bloc. Les spécifications étaient les suivantes:

  • 7200 tr / min
  • 5ms SEEK
  • TAUX DE TRANSFERT DE 80 Mo / s
  • MODÈLE DE BLOC: Taille de bloc 4KB

Je ne comprends pas comment il a fait le calcul suivant ou d'où proviennent certains chiffres:

5 ms + 1000/240 ms + 0,05 ms = 9,216 ms pour lire le bloc.

Quelqu'un peut-il me dire d'où proviennent les 1000/240 ms et 0,05 ms?

EDIT: SI les chiffres s'avéraient complètement faux, comment feriez-vous alors?


Il y a trois composantes. Le temps de recherche, le temps de rotation des données sous la tête de lecture (il a pris la moitié du temps de rotation complet comme moyenne) et le temps de transfert.
David Marshall

En fait, il y a un quatrième composant, le "temps de transfert" est en deux opérations distinctes qui ne se chevauchent pas. Il y a d'abord la lecture du plateau vers le tampon de secteur. Ensuite, il y a un autre transfert du tampon de secteur vers l'hôte via l'interface du lecteur (par exemple SATA). Il existe une idée fausse répandue selon laquelle ces deux transferts peuvent se produire simultanément; ils ne peuvent pas. Les données de secteur doivent être validées après avoir été lues et avant d'être envoyées à l'hôte. @Hennes le mentionne comme faisant partie des éléments ignorés.
sciure

Sachez que les points les plus fins du temps de recherche sont mal compris par presque tout le monde. Le temps de recherche n'est pas une fonction linéaire mais une courbe basée sur le nombre de cylindres. La recherche (à l'aide d'un actionneur à bobine mobile) se compose d'une phase d'accélération et d'une phase de décélération et lorsque la recherche est suffisamment longue, une phase de vitesse maximale entre les deux. Un temps de recherche moyen doit être pondéré pour ne prendre en compte que 2 recherches possibles sur la course complète, mais 2 * (NCYL-1) recherches sur une seule piste, 2 * (NCYL-2) recherches sur 2 pistes ... et NCYL "cherche" de temps nul lorsqu'aucune course de tête n'est nécessaire.
sciure de bois

Réponses:


11

Le disque en question a un taux de transfert de 80 MiB / s, ou 81920 kiB / s, ou 20480 blocs / s. Ici, nous allons arrondir à 20 000 blocs / seconde, car cela semble être ce que votre professeur a fait. Cela équivaut à 0,05 ms pour transférer un bloc, expliquant le dernier terme de l'équation.

Enfin, en plus de rechercher du temps (temps pour déplacer la tête du lecteur vers la piste), il y a aussi la latence de rotation du disque lui-même à gérer. À 7200 tr / min, dans le pire des cas, nous devons attendre 1 tour complet, mais en moyenne, nous devons attendre un demi-tour - soit 4,166 ms (7200 tr / min = 120 tr / s = 8,333 ms / tr).

Ainsi, pour transférer un bloc vers l'ordinateur, il faut attendre l'équivalent Seek Time+ Rotational Latency+ Transfer Time:

5 ms + 4.166 ms + 0.05 ms = 9.216 ms

Notez que pour les disques SSD, bien qu'il n'y ait pas de latence de rotation à prendre en compte, il y a certainement encore un temps de recherche mesurable (pour adresser réellement le contenu des secteurs dans la mémoire flash) et un temps de transfert (largement limité par le bus utilisé pour transférer les données elles-mêmes, par exemple SATA).

Ainsi, en général, le temps d'accès total pour lire un seul secteur pour un lecteur est (en négligeant le logiciel):

Rotational/Hard Drive:  Seek Time + Rotational Latency + Transfer Time

Solid-State Drive:      Seek Time + Transfer Time

5

Le temps de recherche de 5 ms est le temps pour le disque dur pour déplacer sa tête sur la bonne piste (et pour sélectionner la bonne tête, quelque chose qui prend également du temps mais que votre prof. A ignoré).


Une fois que la tête est sur la bonne voie, elle doit attendre que le bon secteur passe sous la tête R / W. On nous dit qu'il s'agit d'un lecteur à 7200 tr / min. Cela signifie:

  • Dans le pire des cas, les données viennent de passer et doivent attendre une rotation complète.
  • Dans le meilleur des cas, le secteur des données vient d'arriver. Tout est heureux.
  • Dans le cas moyen , le lecteur doit attendre une demi-rotation.

Pour obtenir le temps nécessaire à une rotation complète du disque sur un disque à 7200 tr / min:

  • 7200 rotation par minute (aka 7200 RPM)
  • Ou 7200/60 fois par seconde.
  • Ou 120 fois par seconde.
  • Ou une rotation unique prend 1 / 120 e de seconde.
  • Soit 8,3 ms

Ainsi , un demi - tour devrait se la moitié du temps, 1 / 240 e de seconde.

1 seconde est de 1000 ms

Ceci est votre 1000 / 240 ms.


Tout cela est le temps jusqu'à ce que le lecteur puisse commencer à lire les données. Il devra toujours le lire et le transmettre à l'hôte.

La lecture du lecteur est généralement beaucoup plus rapide que de le passer, donc je vais me concentrer sur la partie la plus lente:

Sont donnés:

1) TAUX DE TRANSFERT DE 80 Mo / s
2) MODÈLE DE BLOC: Taille de bloc 4KB

  • 80 Mio en une seconde, ou 80 * 1024 Kio en une seconde, ou 4 * 20 * 1024 Kio / seconde.
  • Divisez par 20480.
  • 4 Ko par 1 / 20480 e de seconde.
  • Ou 0,488281 ms, ce qui est votre dernier 0,05 ms .


Notez que cette réponse ignore que:

  1. le lecteur doit lire les données avant de pouvoir les transmettre, cela le ralentira légèrement.
  2. Mais il n'y a aucune information sur la vitesse à laquelle les données sont lues sur le plateau. (qui dépend de la vitesse de rotation, de la longueur des données à lire, de la longueur des données de somme de contrôle et des intervalles intersectoriels. (4 Ko peuvent être 8 lectures de "En-tête | données | somme de contrôle | écart" ou une seule lecture).
  3. Il ignore également que les données peuvent déjà être présentes dans le cache des lecteurs.
  4. Et cela suppose que le calcul de la somme de contrôle ne prend pas de temps plat.

C'est probablement la première fois que je vois une mention correcte du temps de transfert sur disque qui fait une distinction entre la lecture sur plateau et le transfert (d'interface). La «somme de contrôle» est en réalité un code de correction d'erreur (ECC) qui peut détecter et corriger une courte erreur de rafale.
sciure
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.