Nanoprogramm

Das Nanoprogramm ist ein Schaltalgorithmus, der bei einer zwei- oder mehrstufigen Mikroprogrammausführung eines Mikroprogrammsteuerwerks eingebunden wird. Der Schaltalgorithmus der Befehlsausführung wird durch den (überwiegend) horizontal codierten Mikrocode repräsentiert und kann als übergeordnetes Schaltungshauptprogramm des Mikroprogrammsteuerwerks verstanden werden. Bei einer (teilweise) vertikal codierten Befehlsausführung des Mikrocodes wird auf Schaltungsunterprogramme verwiesen, die im sogenannten Nanocode realisiert sind, und nachgelagert, horizontal codierte Mikroprogrammabläufe steuern (vertikale Verlagerung).

Im einfachsten Fall wird das Nanoprogramm als Schaltalgorithmus in Form eines Schaltnetzes realisiert, welches in die Mikrocodeausführung eingebunden wird. Der Nanocode (Binärcode des Nanobefehls) wird als Eingangsparameter zur Steuerung von Dekodierern und Multiplexern verwendet, um zugeordnete Teilschaltnetze für die Erzeugung der Steuersignale zu aktivieren. Letzten Endes wird bei der Ausführung des Nanoprogramms, eingebettet in das übergeordnete (überwiegend) horizontal codierte Mikroprogramm, eine Folge ausschließlich horizontal codierter Mikrobefehlswörter fester Steuerbitlänge erzeugt. Jedes einzelne Steuer-Bit wird als Pikobefehl aufgefasst, welches einer Steuerleitung zugeordnet ist und dessen binärer Zustand den Schaltvorgang entweder blockiert oder aktiviert.

Literatur

  • W. Oberschelp, G. Vossen: Rechneraufbau und Rechnerstrukturen. 10. Auflage. Oldenbourg, München 2006, ISBN 978-3-486-57849-2.
  • H. Malz: Rechnerarchitektur. 2. Auflage. Vieweg+Teubner, 2004, ISBN 978-3-528-13379-5.
  • R. Hoffmann: Rechnerentwurf: Rechenwerke, Mikroprogrammierung, RISC. 3. Auflage. Oldenbourg, München 1993, ISBN 978-3-486-22174-9 (insbesondere Kap. 5: Mikroprogrammierung, S. 159–240).
  • W. K. Giloi: Rechnerarchitektur. 2. Auflage, Springer, 1993, ISBN 978-3-540-56355-6.
  • Th. Beierlein, O. Hagenbruch: Taschenbuch Mikroprozessortechnik. 3. Auflage, Hanser Verlag, 2004, ISBN 978-3-446-22072-0.