Fahrrad stehlen - Cycle stealing

Beim Rechnen ist das zyklische Stehlen traditionell ein Verfahren zum Zugreifen auf Computerspeicher (RAM) oder Bus, ohne die CPU zu stören. Es ähnelt dem direkten Speicherzugriff (DMA), mit dem E / A-Controller RAM ohne CPU-Eingriff lesen oder schreiben können. Durch geschickte Ausnutzung bestimmter CPU- oder Bus-Timings kann die CPU ohne Verzögerung mit voller Geschwindigkeit ausgeführt werden, wenn externe Geräte auf den Speicher zugreifen, der nicht aktiv an der aktuellen Aktivität der CPU beteiligt ist, und die Vorgänge abschließen, bevor ein möglicher CPU-Konflikt auftritt. Solche Systeme sind nahezu Dual-Port-RAM ohne die Kosten eines Hochgeschwindigkeits-RAM. Die meisten Systeme stoppen die CPU während des Diebstahls und machen sie im Wesentlichen zu einer Form von DMA mit einem anderen Namen.

Beispielsweise kann ein System mit getrennten Befehls- und Datenspeicherbänken externen Geräten einen Speicherzugriff auf die Datenbank ermöglichen, während die CPU einen Befehl von der Befehlsbank abruft, wenn beide Zugriffe gleichzeitig initiiert werden. Eine Speicherverwaltungseinheit nicht wesentlich ist, beispielsweise die Zilog Z80 ‚s M1 kann Linie Anweisung von Datenzugriff zu unterscheiden verwendet werden, also , während die CPU einen Befehl aus dem Befehls-RAM oder ROM lesen, ist die Daten - RAM für andere verfügbar Geräte, ohne die CPU-Verarbeitung zu beeinträchtigen.

Moderne Architektur

Das Stehlen von Zyklen ist in modernen Systemen aufgrund vieler Faktoren wie Pipelining , bei dem Pre-Fetch- und gleichzeitige Elemente ständig auf den Speicher zugreifen, schwierig zu erreichen , so dass nur wenige vorhersehbare Leerlaufzeiten für den Speicherzugriff übrig bleiben. DMA ist die einzige formale und vorhersehbare Methode für externe Geräte, um auf RAM zuzugreifen.

Dieser Begriff ist in der modernen Computerarchitektur (über 66-100 MHz) weniger verbreitet, wo die verschiedenen externen Busse und Steuerungen im Allgemeinen mit unterschiedlichen Raten laufen und die internen CPU-Operationen nicht mehr eng mit den E / A-Busoperationen gekoppelt sind.

Beispiele in tatsächlichen Computersystemen

Unerwarteter Zyklusdiebstahl durch das Rendezvous-Radar während des Abstiegs führte fast dazu, dass die Landung des Apollo 11 abgebrochen wurde, aber das Design des Leitcomputers ermöglichte es, die Landung fortzusetzen, indem Aufgaben mit niedriger Priorität fallen gelassen wurden.

Der "Cycle Steal" des IBM 1130 ist wirklich DMA, da der CPU-Takt während des Speicherzugriffs gestoppt wird. Mehrere E / A-Controller greifen auf diese Weise auf den Arbeitsspeicher zu. Sie vermitteln sich selbst über ein Schema mit fester Priorität. Die meisten Controller beschleunigen den RAM-Zugriff absichtlich, um die Auswirkungen auf die Fähigkeit des Systems zur Ausführung von Anweisungen zu minimieren. Andere, z. B. Grafikvideoadapter, arbeiten jedoch mit höherer Geschwindigkeit und können das System verlangsamen.

Das Cycle-Stealing-Konzept des 1130 ermöglicht es dem CPU-Programm, eine Operation an einem E / A-Gerät zu starten und dann das Hauptprogramm fortzusetzen, während das E / A-Gerät seine Operation ausführt. Jedes E / A-Gerät, das auf diese Weise arbeitet, benötigt (stiehlt) einen Zyklus von der CPU, wenn es benötigt wird.

Die CPU ist nur einen Zyklus "gebunden", während ein Datenzeichen übertragen wird. Die Häufigkeit, mit der Geräte Zyklen stehlen, hängt vom Gerätetyp ab.

Da die CPU viel schneller ist als jedes E / A-Gerät im System, führt die CPU möglicherweise eine andere Funktion aus, z. B. Arithmetik, während gleichzeitig eine E / A-Operation ausgeführt wird. Tatsächlich können sich mehrere E / A-Operationen miteinander und mit anderen CPU-Funktionen überlappen.

Das Stehlen von Zyklen war die Ursache für erhebliche Leistungseinbußen auf Maschinen wie dem Sinclair QL , bei denen der Video- RAM aus wirtschaftlichen Gründen keinen doppelten Zugriff hatte . Infolgedessen wurde der M68008- CPU der Zugriff auf den Speicherbus verweigert, wenn der "Master-Controller" des ZX8301 auf den Speicher zugegriffen hat , und die Maschine zeigte im Vergleich zu Maschinen, die ähnliche Prozessoren mit ähnlichen Geschwindigkeiten verwenden, eine schlechte Leistung.

Verweise