Vol de cycle - Cycle stealing

En informatique , le vol de cycle est traditionnellement une méthode permettant d'accéder à la mémoire de l'ordinateur (RAM) ou au bus sans interférer avec le processeur. Il est similaire à l'accès direct à la mémoire (DMA) pour permettre aux contrôleurs d'E / S de lire ou d'écrire de la RAM sans intervention du processeur. Une exploitation intelligente de temporisations spécifiques du processeur ou du bus peut permettre au processeur de fonctionner à pleine vitesse sans aucun délai si des périphériques externes accèdent à la mémoire ne participant pas activement à l'activité actuelle du processeur et terminent les opérations avant tout conflit éventuel de processeur. De tels systèmes sont presque à double port RAM sans les frais de RAM haute vitesse. La plupart des systèmes arrêtent le processeur pendant le vol , ce qui en fait essentiellement une forme de DMA sous un autre nom.

Par exemple, un système avec des banques d'instructions et de mémoire de données séparées peut permettre à des dispositifs externes d'accéder à la banque de données pendant que la CPU récupérait une instruction dans la banque d'instructions si les deux accès sont lancés simultanément. Une unité de gestion de la mémoire n'est pas indispensable, par exemple, le Zilog Z80 de M1 ligne peut être utilisée pour distinguer l' enseignement de l' accès aux données, de sorte que lorsque la CPU est en train de lire une instruction d'instruction-RAM ou ROM, la RAM de données est disponible à d' autres périphériques sans interférer avec le traitement du CPU.

Architecture moderne

Le vol de cycle est difficile à réaliser dans les systèmes modernes en raison de nombreux facteurs tels que le pipelining , où la pré-extraction et les éléments simultanés accèdent constamment à la mémoire, laissant peu de temps d'inactivité prévisibles pour se faufiler dans l'accès à la mémoire. Le DMA est la seule méthode formelle et prévisible permettant aux périphériques externes d'accéder à la RAM.

Ce terme est moins courant dans l'architecture informatique moderne (au-dessus de 66-100 MHz), où les différents bus et contrôleurs externes fonctionnent généralement à des taux différents, et les opérations internes du processeur ne sont plus étroitement liées aux opérations de bus d'E / S.

Exemples dans des systèmes informatiques réels

Le vol de cycle inattendu par le radar de rendez-vous lors de la descente a presque provoqué l' interruption de l' atterrissage d' Apollo 11 , mais la conception de l' ordinateur de guidage a permis à l'atterrissage de se poursuivre en abandonnant les tâches à faible priorité.

Le «vol de cycle» de l' IBM 1130 est en fait un DMA car l'horloge du processeur est arrêtée pendant l'accès à la mémoire. Plusieurs contrôleurs d'E / S accèdent à la RAM de cette manière. Ils s'auto-arbitrent via un schéma de priorité fixe. La plupart des contrôleurs rythment délibérément l'accès à la RAM pour minimiser l'impact sur la capacité du système à exécuter les instructions, mais d'autres, comme les adaptateurs vidéo graphiques, fonctionnent à une vitesse plus élevée et peuvent ralentir le système.

Le concept de vol de cycle du 1130 permet au programme CPU de démarrer une opération sur un dispositif d'E / S et de continuer ensuite le programme principal pendant que le dispositif d'E / S exécute son opération. Chaque périphérique d'E / S qui fonctionne de cette manière prend (vole) un cycle à l'UC lorsque cela est nécessaire.

La CPU est "liée" à un seul cycle pendant le transfert d'un caractère de données. La fréquence à laquelle les appareils volent les cycles dépend du type d'appareil.

Étant donné que la CPU est beaucoup plus rapide que n'importe quel périphérique d'E / S sur le système, la CPU peut exécuter une autre fonction, telle que l'arithmétique, en même temps qu'une opération d'E / S est en cours d'exécution. En fait, plusieurs opérations d'E / S peuvent se chevaucher entre elles et avec d'autres fonctions de l'UC.

Le vol de cycle a été la cause d'une dégradation majeure des performances sur des machines telles que la Sinclair QL , où, pour des raisons d'économie, la RAM vidéo n'était pas à double accès . Par conséquent, le processeur M68008 s'est vu refuser l'accès au bus mémoire lorsque le «contrôleur maître» ZX8301 accédait à la mémoire, et la machine fonctionnait mal par rapport aux machines utilisant des processeurs similaires à des vitesses similaires.

Les références