Im HP Nanoprozessor: Ein Hochgeschwindigkeitsprozessor, der sich nicht zusammenfalten lässt



Kombinierte Nanoprozessor-Fotomasken. GLB links vom Datenbus sind die Initialen der Entwickler George Latham und Larry Bauer.



Der HP Nanoprozessor ist ein fast vergessener Prozessor, der 1974 von Hewlett-Packard (für weitere Einzelheiten siehe Die Vergessenen: HP Nanoprozessor , HP9825.com und das HP 9845-Projekt ) als Mikrocontroller für verschiedene Unternehmensprodukte entwickelt wurde. Es ist seltsam, dass dieser Prozessor nicht einmal addieren oder subtrahieren konnte - vielleicht haben sie deshalb beschlossen, ihn nicht als Prozessor, sondern als „Nanoprozessor“ zu bezeichnen. Trotz dieser Einschränkungen verwaltete Nanoprocessor eine Vielzahl von Geräten von Hewlett-Packard, von Front-End-Panels und Voltmetern bis hin zu Spektrumanalysatoren und Datenerfassungsterminals.



Ich habe festgestellt , dass die Nanoprocessor wurde in den folgenden Produkten von Hewlett-Packard speziell verwendet: HP 9845B Spektrumanalysatoren, HP 3585A , HP 3325A Synthesizer / Funktionsgenerator , HP 9885 Diskettenlaufwerk , HP 3070B Datenerfassungsterminal , HP 98034 HPIB Schnittstelle für HP 9825 Rechner, Echtzeituhr HP 98035 für den HP 9825 Computer, Schnittstelle für Filmlaufwerk HP 7970E , Router HP 4262A , Spektrumanalysator HP 3852 , Voltmeter HP 3455A... Paul-Henning Camp erzählte mir auch, dass der Nanoprozessor im HP 3336 Synthesizer / Funktionsgenerator und im HP 9411 Switch Controller verwendet wurde. Das



Hauptmerkmal des Nanoprozessors waren seine niedrigen Kosten und seine hohe Geschwindigkeit: Im Vergleich zu seinem aktuellen Motorola 6800 kostete der Nanoprozessor 15 USD, nicht 360 USD und mit Verwaltungsaufgaben um eine Größenordnung schneller fertig werden.



Es ist interessant, dass der Konkurrent des Nanoprozessors in seiner Entwicklung das Motorola 6800 war und nicht der Prozessor von Intel. Die Hauptsache, mit der sich der Nanoprozessor rühmen konnte, war die Geschwindigkeit: Er arbeitete mit 4 MHz, wenn man bedenkt, dass der 6800 mit 1 MHz arbeitete. Beide Prozessoren benötigten 2 Taktzyklen, um einen Basisbefehl auszuführen, während der 6800 bis zu 7 Taktzyklen benötigte, um komplexere Befehle auszuführen.



Die Nanoprozessor-Entwickler stellten einen Geschwindigkeitsvergleich zusammen und schlugen vor, dass der Nanoprozessor sechsmal schneller als der 6800 lesen und Interrupts mehr als 16-mal schneller verarbeiten könnte. Es wurde dann jedoch angenommen, dass der Nanoprozessor mit 5 MHz arbeiten würde, und der reale Chip blieb mit seinen 4 MHz leicht hinter diesem Balken zurück. Der vorläufige Preis für einen Nanoprozessor betrug 15 US-Dollar gegenüber 360 US-Dollar für das Motorola 6800.



Ich stimme nicht ganz zu, dass der Nanoprozessor als Mikrocontroller bezeichnet werden kann, da er ein externes ROM mit einem Programm verwendet, während ein Mikrocontroller normalerweise alles, einschließlich des ROM, auf einem Chip hat (in diesem Aspekt) es sieht aus wie Intel 4004). In fast jeder Hinsicht ähnelt der Nanoprozessor jedoch einem Mikrocontroller: Er ist für den eingebetteten Einsatz konzipiert, seine Harvard-Architekturund der Befehlssatz ist für E / A optimiert, er führt Programme aus dem ROM mit minimalem Datenspeicher aus.



Für Computer, die nicht hinzugefügt werden konnten - der IBM 1620-Computer in der Größe einer Tabelle aus dem Jahr 1959 hatte keine Additionsoperation, verwendete jedoch eine Ergebnistabelle dafür. Sein Codename war CADET, und die Leute entzifferten ihn scherzhaft als "Kann nicht hinzufügen, versucht es nicht einmal" [kann nicht hinzufügen und versucht es nicht einmal].



Vor kurzem hat der Chipdesigner Larry Bauer sechs Fotomasken zur Herstellung von Nanoprozessoren sowie Einzelheiten zu deren Design veröffentlicht. Die Fotomasken wurden in The CPU Shack gereinigt und gescannt und dann von Antoine Berkovichi gereinigt (122 MB PSD-Datei können über den Link heruntergeladen werden). Das zusammengesetzte Bild der Fotomasken unten zeigt die internen Schaltkreise des IC. Die blaue Schicht ist die obere Metallschicht des Chips, die grüne Schicht ist die untere Siliziumschicht. Schwarze Quadrate um den Umfang - 40 Stellen für die Kommunikation mit externen Kontakten des IC. Ich habe diese Fotomasken verwendet, um den Prozessor zurückzuentwickeln und seine einfache, aber clevere RISC-ähnliche Schaltung zu verstehen.



Der Nanoprozessor ähnelt in vielerlei Hinsicht einem RISC-Prozessor (Reduced Instruction Set Computer), obwohl er einige Jahre vor einem solchen Konzept erschien. Insbesondere ist der Nanoprozessor mit einem einfachen Befehlssystem ausgelegt, alle Befehle werden in einem Taktzyklus (nach dem Abtasttakt) ausgeführt, der Registersatz ist groß und orthogonal und die Adressierung ist einfach. Diese inhärenten Eigenschaften von RISC haben im Vergleich zu komplexeren Prozessoren zu höheren Taktraten geführt.



Der Nanoprozessor wurde 1974 entwickelt, zur gleichen Zeit, als die klassischen Prozessoren Intel 8080 und Motorola 6800 angekündigt wurden. Der Herstellungsprozess des Nanoprozessorsiliciums blieb jedoch um mehrere Jahre zurück - sie verwendeten Metall-Gate-Transistoren anstelle von Siliziumin den späten 1960er Jahren entwickelt. Der Unterschied scheint verwirrend, aber Siliziumgatter waren in mehrfacher Hinsicht besser . Erstens sind sie kleiner, schneller und zuverlässiger. Zweitens hatten sie eine Polysiliciumschicht mit anderen Leitern als Metall; Infolgedessen war das Chip-Layout fast doppelt so dicht. Drittens benötigten Metall-Gate-Transistoren eine zusätzliche + 12-V-Stromversorgung. Der Intel 4004-Prozessor verwendete 1971 Silizium-Gates, daher bin ich überrascht, dass HP 1974 immer noch Metall verwendete.



Angesichts dieser Einschränkungen bin ich beeindruckt von der Verdrahtungsdichte des Nanoprozessors - eine Metallschicht, kein Polysilizium. Ich habe nach anderen Metall-Gate-Chips gesucht und ihre Verkabelung ist furchtbar ineffizient - es gibt mehr Leiter als Transistoren. Gleichzeitig sind die Nanoprozessorketten effizient lokalisiert und verschwenden keinen zusätzlichen Platz.



Die Nanoprozessortechnologie übertraf Intel 8080 und Motorola 6800 in einem Punkt: Sie verwendete Pull-up-Transistoren im Depletion-Modus, die fortschrittlicher waren als die in 8080 und 6800 verwendeten Transistoren im Enhancement-Modus Die erste Technologie bietet Logikgatter, die schneller sind und weniger verbrauchen, aber einen zusätzlichen Produktionsschritt erfordern. Bei Nanoprozessor wurde in diesem Schritt die Fotomaske Nr. 3 (grau) verwendet. Prozessoren wie die MOS Technology 6502 und der Zilog Z80, Pull-up-Transistoren mit eigenem Kanal, ermöglichten den Betrieb mit einer Spannung, nicht mit drei. Leider benötigte der Nanoprozessor aufgrund des Metallgattertransistors immer noch unterschiedliche Spannungen.



Eine sehr merkwürdige Eigenschaft des Nanoprozessors ist die alternierende Vorspannung des Substrats. Aus Geschwindigkeitsgründen legten viele Mikroprozessoren der 1970er Jahre eine negative Spannung an das Siliziumsubstrat an, wobei -5 V über den Vorspannungskontakt angelegt wurden. Der Nanoprozessor hat einen Vorspannungsstift, aber es ist seltsam, dass die Vorspannung von Chip zu Chip von -2 V bis -5 V variiert. Während der Produktion wurde die erforderliche Spannung von Hand auf den Chip geschrieben (siehe unten). Jeder Nanoprozessor musste mit einem passenden Widerstand installiert werden, um die richtige Spannung zu erhalten. Wenn der Nanoprozessor auf der Platine gewechselt wurde, musste auch der Widerstand gewechselt werden. Variable Bias sieht aus wie ein Herstellungsfehler - ich kann mir nicht vorstellen, dass Intel dies bei Prozessoren tut.



Frühe DRAM-Chips und Mikroprozessoren benötigten häufig drei Versorgungsspannungen: +5 V (Vcc), +12 V (Vdd) und -5 V (Vbb) Offset-Spannung. In den späten 1970er Jahren ermöglichten Verbesserungen in der Fertigungstechnologie die Verwendung einer einzigen Spannung. Der Intel 8080-Mikrocontroller von 1974 verwendete induzierte Kanaltransistoren, die drei Spannungen benötigten. Eine verbesserte Version des 8085 (1976) verwendete jedoch einen Transistor mit eigenem Kanal und wurde mit einer einzigen + 5-V-Spannung betrieben. Seit den späten 1970er Jahren haben viele Mikroprozessoren Ladungspumpengeneratoren verwendet. befindet sich auf dem Chip, um eine negative Vorspannung zu erzeugen.





HP Nanoprozessor Teilenummer 1820-1691. Beachten Sie die handschriftliche Spannung: -2,5 V. Die letzte Ziffer der Teilenummer (1) ist ebenfalls handgeschrieben und repräsentiert die Geschwindigkeit des Chips.



Wie die meisten Prozessoren dieser Zeit war der Nanoprozessor 8-Bit. Es wurde jedoch kein Direktzugriffsspeicher verwendet, sondern der Code wurde von einem externen 2-KB-ROM ausgeführt. Es hatte 16 8-Bit-Register - mehr als die meisten Prozessoren und genug, um den Speichermangel in vielen Anwendungen auszugleichen. In Bezug auf die Anzahl der Transistoren ist der Nanoprozessor komplexer als Intel 8008 (1972) und etwas einfacher als 6800 (1974) oder 6502 (1975).



Nach meinen Berechnungen hat der Nanoprozessor 4639 Transistoren. Der Befehlsdecoder besteht aus Paaren kleiner Transistoren, basierend auf Ortsüberlegungen. Die Kombination dieser Paare ergibt 3829 eindeutige Transistoren. Davon sind 1061 Klimmzüge und 2668 aktiv. Zum Vergleich hatte 6502 4237 Transistoren, von denen 3218 aktiv waren. Der 8008 hatte 3500 Transistoren, während das Motorola 6800 4100 hatte.



Die Architektur verwendet jedoch Transistoren für einen anderen Zweck als diese Prozessoren. Dem Nanoprozessor fehlt eine ALU, stattdessen verfügt er über einen großen Satz von Registern, die den größten Teil der Chipfläche einnehmen. Nanoprozessor hat 48 Teams, deutlich weniger als der 6800 mit seinen 72 Teams. Der Nanoprozessor verfügt jedoch über praktische Operationen zum Setzen, Zurücksetzen und Bitprüfen, die die genannten Prozessoren nicht hatten. Der Nanoprozessor unterstützt den Zugriff auf Register nach Index, verfügt jedoch nicht wie andere Prozessoren über komplexe Adressierungsmodi.



Frühe Mikroprozessoren hatten keine Bit-Set-, Reset- und Check-Operationen (obwohl sie über AND und OR implementiert werden können). Der Z80 (1976) fügte bitweise Operationen hinzu, aber sie waren jeweils zwei Bytes und viel langsamer als der Nanoprozessor.



Das folgende Blockdiagramm zeigt die interne Struktur des Nanoprozessors. Die Haupt-E / A-Funktion ist die 4-Bit-Auswahl "E / A-Anweisungsgerät", mit der 15 Geräte E / A-Befehle empfangen können. Mit anderen Worten bestimmen die ausgewählten Pins, welches E / A-Gerät von den Datenbussen liest oder schreibt. Externe Schaltkreise verwenden diese Signale für alles, was eine bestimmte Anwendung benötigt - Speichern von Daten in einem Latch, Senden an ein anderes System, Lesen von Werten. Noch mehr E / A werden über Direct Control-E / A-Pins (GPIO-Pins) bereitgestellt, die für die Ein- und Ausgabe geeignet sind. Wenn diese Pins nicht mit externen Schaltkreisen verbunden sind, fungieren sie als Convenience-Bit-Flags. Der Nanoprozessor kann einen Wert einstellen und dann lesen.In Abwesenheit eines arithmetischen Logikmoduls führt das Steuerlogikmodul Inkrementierungs-, Dekrementierungs-, Verschiebungsoperationen und Bitoperationen an dem Addierer aus.





Blockdiagramm aus dem Nanoprozessor- Benutzerhandbuch



Ich habe den Nanoprozessor basierend auf Fotomasken rückentwickelt und die Platzierung der Funktionsblöcke auf dem Chip abgebildet. Das größte Element ist ein Satz von 16 Registern links von der Mitte. Auf der rechten Seite befinden sich der Komparator und der Addierer zusammen mit ihren Inkrement-, Dekrement-, Verschiebungs- und Komplementschaltungen. Der Befehlsdecoder nimmt den größten Teil des Raums über und rechts vom Batteriekomparator ein. Der Boden des Chips wird hauptsächlich von einem 11-Bit-Befehlszähler sowie einem Interrupt-Stapel mit einem Eintrag und einem Unterprogrammstapel belegt. Die Steuerschaltungen implementieren die einfachste Befehlssynchronisation: Auf einen Extraktionszyklus folgt ein Ausführungszyklus. Die meisten Mikroprozessoren haben Steuerschaltungen, die einen erheblichen Teil des Chips einnehmen, aber Nanoprozessor-Steuerschaltungen sind kleine Blöcke.



Der Nanoprozessor hält auch bei Doppelbyte-Befehlen an seinem Modell der Ausführung von Befehlen in einem Zyklus fest: Das zweite Byte wird während des Ausführungszyklus angefordert, sodass sich die Gesamtausführungszeit des Befehls nicht ändert.





Funktionskomponenten des HP Nanoprozessors



Fotomasken verstehen



Der Chip wurde unter Verwendung von sechs Fotomasken hergestellt, von denen jeder zur Herstellung einer der Prozessorschichten mittels Fotolithografie verwendet wurde . Das Foto unten zeigt Fotomasken. Jedes ist eine 47,2 x 39,8 cm große Mylar- Folie . Dies sind 100-fach vergrößerte Fotomasken, die zur Herstellung eines 4,72 x 3,98 mm großen Siliziumkristalls (33% kleiner als der 6800-Kristall) verwendet werden. Jeder 3-Zoll-Siliziumwafer enthielt etwa 200 ICs, die gleichzeitig hergestellt, dann getestet, geschnitten und in eine Verpackung gegeben wurden.







Um die Rolle von Masken zu erklären, beschreibe ich zunächst die im Nanoprozessor verwendete MOS-Struktur mit Metallgatter. In der folgenden Abbildung werden zwei Abschnitte aus Silizium (grün) mit Hilfe von Verunreinigungen leitend gemacht und bilden die Source und Drain des Transistors. Ein Metallstreifen zwischen ihnen bildet ein Gate, das durch eine dünne Schicht aus isolierendem Oxid vom Silizium getrennt ist (daher der Name der Struktur - Metall, Oxid, Halbleiter). Der Transistor kann als ein Schalter betrachtet werden, der vom Gate gesteuert wird. Die Metallschicht stellt auch das Hauptverfahren zum Verbinden von IC-Komponenten mit Leitern bereit, obwohl einige Leiter auch durch die Siliziumschicht verlaufen.





Schema einer MOS-Struktur mit einem Metallgatter



Fotomasken sind ein wichtiger Bestandteil des IC-Herstellungsprozesses, da sie Komponenten lokalisieren. Das folgende Diagramm zeigt, wie Verunreinigungen mit Hilfe von Fotomasken zu einigen Bereichen von Silizium hinzugefügt werden. Zuerst wird eine isolierende Oxidschicht auf dem Siliziumsubstrat gebildet, dann wird ein lichtempfindlicher Fotolack hinzugefügt... Ultraviolettes Licht (1) polymerisiert und härtet den Fotolack überall aus, außer dort, wo die Maske den Lichtdurchgang blockiert (2). Dann wird der weiche Fotolack entfernt, der keiner ultravioletten Strahlung ausgesetzt wurde (3). Das Substrat ist Flusssäure ausgesetzt, die die Oxidschicht entfernt, wo sie nicht durch den Fotolack (4) geschützt ist. Im Oxid erscheinen Löcher, die dem Muster auf der Fotomaske entsprechen. Dann wird das Substrat heißem Gas ausgesetzt, das in ungeschützte Bereiche von Silizium eindringt und seine Leitfähigkeitseigenschaften ändert (5). Dieser Prozess erzeugt kleine Bereiche aus Silizium mit Verunreinigungen, die dem Bild auf der Fotomaske (6) entsprechen. Andere Fotomasken werden für andere Produktionsschritte verwendet, verwenden jedoch das gleiche Verfahren unter Verwendung eines Fotolacks.





Wie Verunreinigungen mit Hilfe von Fotomasken zu den Siliziumbereichen hinzugefügt werden Ich werde



einen Abschnitt des Nanoprozessors vergrößern, um zu zeigen, wie eine Schaltung aus sechs Fotomasken gebildet wird (bei denen es sich um einen Wechselrichter handelt, der den dem Eingang zugeführten Binärwert ändert). Unter Verwendung der ersten Fotomaske und des oben beschriebenen Fotolithografieprozesses werden die Siliziumbereiche leitend gemacht. Die grün markierten Bereiche mit Verunreinigungen bilden die Source / Drains des Transistors oder den Übergang der Komponenten.





Die erste Fotomaske erzeugt Flecken aus leitendem Silizium



Der Kristall wird dann mit einer isolierenden Oxidschicht bedeckt. Die zweite Fotomaske (lila) wird verwendet, um Löcher in das Oxid zu ätzen, die das darunter liegende Silizium freilegen. Diese Löcher können verwendet werden, um die Gates des Transistors sowie die Verbindung von Metallleitern und Silizium herzustellen.





Die zweite Fotomaske erzeugt Löcher in der Oxidschicht.



Die dritte Fotomaske (grau) legt Bereiche für die Implantation von Ionen frei, die die Eigenschaften von Silizium und folglich des Transistors verändern. Dies verwandelt den oberen Transistor in einen kanalisierten Transistor, der den Ausgang des Logikgatters nach oben zieht.





Die dritte Fotomaske (grau) erzeugt Verunreinigungen im Silizium des oberen Transistors



Das Silizium wird dann mit einer zusätzlichen dünnen Schicht aus isolierendem Oxid beschichtet, um die Gateoxide für den Transistor zu bilden. Die vierte Fotomaske (orange) entfernt dieses Oxid aus den Bereichen, die zu Kontakten zwischen Silizium und der Metallschicht werden. Nach diesem Schritt ist der größte Teil des Kristalls mit einem dicken Isolieroxid bedeckt. Über den Gates des Transistors (lila) ist die Oxidschicht sehr dünn und hat Löcher für Kontakte von der aktuellen Fotomaske (orange).





Die vierte Fotomaske erzeugt Löcher im Oxid



Mit der fünften Fotomaske (blau) werden Metallleiter von oben erzeugt - dazu wird zunächst eine gleichmäßige Metallschicht aufgebracht und die unnötigen Teile dann weggeätzt. Wo die vierte Maske Löcher im Oxid erzeugt, berührt die Metallschicht das Silizium und bildet einen leitenden Kontakt. Wo die dritte Maske eine dünne Oxidschicht erzeugt hat, bildet die Metallschicht das Gate des Transistors zwischen den beiden Siliziumabschnitten. Schließlich wird das gesamte Substrat mit einer schützenden Glasschicht bedeckt. Die sechste Fotomaske wird verwendet, um Löcher in dieser Schicht über den Kontakten an den Rändern des Chips zu erzeugen. Nach dem Schneiden des gesamten Substrats in einzelne Kristalle wird ein Drahtschweißen an diese Kontakte gelötet und mit den externen Kontakten verbunden.





Die fünfte Fotomaske erzeugt ein metallisches Layout



Das folgende Diagramm zeigt, wie diese Schaltung einen Wechselrichter mit zwei Transistoren bildet. Die zwei Symbole des Transistors entsprechen den zwei Transistoren, die unter Verwendung der Fotomaske erhalten wurden. Wenn kein Eingangssignal vorhanden ist, zieht der obere Transistor (an +5 V angeschlossen) den Ausgang nach oben. Wenn das Eingangssignal hoch ist, wird der untere Transistor eingeschaltet. Dadurch wird die Steckdose mit Masse verbunden und die Steckdose nach unten gezogen. Somit invertiert die Schaltung das Eingangssignal.





N-MOS-Wechselrichterschaltung, die den obigen Vorlagen entspricht



Obwohl die obigen Diagramme einen einzelnen Wechselrichter zeigen, wird bei diesen Schritten mithilfe von Fotomasken ein vollständiger Prozessor mit allen 4.639 Transistoren erstellt. Das folgende Diagramm zeigt einen größeren Teil des Chips, auf dem Dutzende von Transistoren komplexere Gates und Schaltungen bilden. Ich bemerkte eine berührende Sache auf einem der Fotomasken - ein winziges Herz mit den Buchstaben HP im Inneren unter der Chipnummer.



Der Nanoprozessor hat zwei verschiedene Teilenummern. 1820-1691 bezeichnet eine 2,66-MHz-Version und 1820-1692 bezeichnet eine 4-MHz-Version. Die letzte Ziffer wurde manuell auf jeden Chip geschrieben, nachdem sie im Fall überprüft wurde. Die Teilenummer bezieht sich nicht auf die 9-4332A-Chipnummer auf dem Chip.





Chipzeichnungen



Wie der Nanoprozessor die Uhr steuert



Um zu verstehen, wie Nanoprozessor in der Praxis verwendet wurde, habe ich den Code des HP 98035-Uhrmoduls rückentwickelt. Das Modul war an einen HP 9825-Desktopcomputer angeschlossen und diente als Echtzeituhr. Außerdem konnte es Intervalle messen und periodische Ereignisse mit Millisekundengenauigkeit auslösen. Die Taktmodulschaltung war eher ungewöhnlich. Um die aktuelle Uhrzeit bei ausgeschaltetem Computer beizubehalten, wurde das Uhrmodul auf Basis eines digitalen Uhrchips mit einer Ersatzbatterie aufgebaut. Der Taktchip war nicht für die Computersteuerung ausgelegt, was zu Unannehmlichkeiten führte: Er erzeugte 7-Segment-Signale zur Steuerung von LEDs und wurde mit drei Tasten konfiguriert. Um die Zeit herauszufinden, musste der Nanoprozessor die Ausgabe der 7-Segment-Anzeige wieder in Zahlen umwandeln.Um die Nanoprozessorzeit einzustellen, mussten Sie die richtige Reihenfolge der Tastendrücke emulieren.



Der HP 9825 war ein 16-Bit-Desktop-Computer mit Unterstützung für eine ähnliche Sprache wie BASIC. Es wurde 1976, fünf Jahre vor dem IBM PC, eingeführt und war für seine Zeit ein ziemlich fortschrittliches System. Auf der Rückseite befanden sich drei Anschlüsse zum Hinzufügen von Modulen, z. B. eines Echtzeituhrmoduls.





HP 9825 mit LED-Anzeige, Bandlaufwerk und Drucker



Um Energie zu sparen, ist der Clock-Chip von Texas Instruments in der integrierten Injektionslogik (I2L) implementiert . Low-Power-Chips würden heute CMOS verwenden, aber das war damals selten. I2L wurde auf Bipolartransistoren aufgebaut, ähnlich wie TTL, jedoch mit unterschiedlichen Schaltungen mit hoher Dichte und geringem Stromverbrauch. Vielleicht war es ein X-902-Chip in einem DIP-Paket.





Nanoprozessor (White Chip) als Teil des HP Clock-Moduls. Links davon befindet sich ein 2-KB-ROM. Auf der rechten Seite befinden sich zwei 256-Bit x 4-Speicherchips. Der Clock-Chip von Texas Instruments ist ein großer schwarzer Chip unter dem grünen NiCad-Akku. Der



Computer steuerte das Clock-Modul, indem er ASCII-Zeichenfolgen wie "S 12: 07: 12: 45: 00" sendete, die die Zeit auf 12:45:00 hätten einstellen sollen 7. Dezember (oder 12. Juli in europäischer Notation). Die verschiedenen Intervall-Timer, Alarme und Zähler des Moduls wurden auf ähnliche Weise durch Befehle wie "Unit 2 Period 12345" ausgelöst. Das Modul unterstützte 24 Befehle, und der Nanoprozessor musste sie erkennen .



Hier ist ein Stück Code, der aus dem Clock-Board-ROM rückentwickelt wurde. Dies ist der Code vom Interrupt-Handler, der den Timer und das Datum jede Sekunde erhöht. Der Code bestimmt die Anzahl der Tage in einem Monat, damit er weiß, wann der Monat auf den nächsten geändert werden muss. Spalten - Bytewerte, Befehle und meine Erklärungen. Dieser Code erhält die Monatsnummer (01-12 BCD), speichert sie im Akkumulator und gibt die Anzahl der Tage des Monats (28, 30 oder 31 BCD) in Register 0 zurück. Nicht schlecht für 16 Byte Code, obwohl Schaltjahre ignoriert werden. Wie arbeitet er? Für Monate nach 7 (Juli) wird 1 abgezogen. Wenn der Monat ungerade ist, hat er 31 Tage und wenn er gerade ist, 30 Tage. Um den Februar zu verarbeiten, löscht der Code das 1-Monats-Bit. Wenn der Monat 0 (Februar) wird, hat er 28 Tage.



d0 STR-0 (7) 0.

07

0c SLE , <= 0.

03 DED 1

5f NOP

d0 STR-0 (0x31) 0

31

30 SBZ-0 , 0 0

81 JMP-1 0x1c9 ( )

c9

a1 CBN-1 1

d0 STR-0 (0x30) 0

30

0f SAN , 0

d0 STR-0 (0x28) 0

28








Sie können dem Code entnehmen, dass selbst wenn ein Prozessor ohne Additionsoperation nutzlos erscheint, die bitweisen Operationen und das Inkrementieren / Dekrementieren des Nanoprozessors mehr Berechnungen ermöglichen, als Sie vielleicht denken.



Im Code bin ich auf eine Stelle gestoßen, an der ich zwei BCD-Nummern hinzufügen und ein Byte bilden muss. Dies geschah durch einen Zyklus, der eine Zahl verringerte und eine andere erhöhte. Als die erste Zahl Null erreichte, bekam die zweite ihre Summe. So kann die Addition auch ohne ALU erfolgen, wenn auch langsam.



Sie können auch sehen, dass der Nanoprozessor-Code kompakt und effizient ist. Sie können viel in einem Byte tun, was in anderen Prozessoren mehrere Bytes benötigt. Mit einem großen Satz von Nanoprozessor-Registern können Sie das triste Hin- und Herwechseln von Daten vermeiden. Während einige den Nanoprozessor eher als Zustandsmaschine als als Mikroprozessor betrachten, wäre dies eine Untertreibung der Fähigkeiten und der Rolle des Nanoprozessors.



Obwohl der Nanoprozessor keine ALUs oder Direktzugriffsspeicherbefehle hat, können sie als zusätzliche E / A-Geräte angeschlossen werden. Die Uhr verfügt über einen 256-Byte-Direktzugriffsspeicher, in dem die Werte von Zählern und Zeitgebern gespeichert sind, auf die über die E / A-Ports zugegriffen wird. Andere Produkte fügten ALUs hinzu, um arithmetische Operationen zu unterstützen.



Das Clock-Board-Diagramm zeigt, wie zwei 256x4-RAM-Chips an den Nanoprozessor angeschlossen sind. Der Nanoprozessor-E / A-Port wählt einen Pin aus und verbindet sich mit dem „3-8 Decoder“ U5, der separate Signale für jeden der E / A-Ports ausgibt. Drei von ihnen gehen zu den Steuerstiften des RAM-Chips, und einer steuert die Chips der Daten-Latches U9 und U10, die die geschriebenen Daten enthalten.







Alle E / A-Ports verwenden den Nanoprozessor-Datenbus (oben) zum Datenaustausch, sodass der Bus sowohl mit den Adresspins der RAM-Chips als auch mit den Datenpins verbunden ist. Zum Lesen wird die Speicheradresse über einen E / A-Port auf die Chips geschrieben, und dann werden die Daten über einen anderen Port aus dem Speicher gelesen. In beiden Fällen durchlaufen die Werte den Datenbus, und das Signal von "3-8 Decoder" gibt an, was mit den Werten zu tun ist. Zum Schreiben speichert die erste E / A-Operation den Bytewert in den Latches, und dann sendet die zweite E / A-Operation die Adresse an die Speicherchips. Dies mag nach einem ungeschickten Ansatz im Goldberg-Maschinenstil klingen , funktioniert jedoch in der Praxis gut und das Lesen / Schreiben kann mit zwei Bytes Anweisungen erfolgen.



Viele Prozessoren, wie der 6502, verwenden speicherabgebildete E / A - Geräte werden dem Speicheradressraum zugeordnet und über Lese- / Schreibvorgänge aufgerufen. Der Nanoprozessor arbeitet umgekehrt, indem er Speicher an einen E / A-Port anschließt und über E / A-Vorgänge darauf zugreift.



Beim Hinzufügen von ALUs wird ein ähnlicher Ansatz verwendet- wie beim Voltmeter HP 3455A mit zwei Nanoprozessoren. Das Voltmeter verwendet zwei 74LS181-ALU-Chips, um eine 8-Bit-ALU zu implementieren, mit der die Werte skaliert und der Fehlerprozentsatz berechnet werden. Zwei Exit-Ports liefern Argumente, und einer definiert die Operation. Das 8-Bit-Ergebnis wird vom Port gelesen, und der Prozessor liest die Übertragung über den GPIO-Pin (Sie fragen sich, ob es einfacher war, einen Prozessor mit arithmetischer Unterstützung zu verwenden).



Ergebnis



Nanoprozessor ist ein ungewöhnlicher Prozessor. Auf den ersten Blick schien es mir sogar ein "gefälschter Prozessor" zu sein, da es an grundlegenden arithmetischen Operationen mangelte. Der Chip basiert auf einer veralteten Metal-Gate-Technologie, die mehrere Jahre hinter anderen Mikroprozessoren zurückblieb. Das Seltsamste ist, dass jeder Chip seine eigene Spannung benötigte, die manuell auf das Gehäuse geschrieben wurde, was auf die Schwierigkeiten mit einer stabilen Qualität in der Produktion hinweist. Der Nanoprozessor in der Rolle eines Mikrocontrollers arbeitete jedoch schnell, viel schneller als andere moderne Prozessoren. Hewlett-Packard verwendete Nanoprozessor in den 1970er und 1980er Jahren in vielen Produkten in anspruchsvolleren Rollen als erwartet.



Obwohl Nanoprozessor längst vergessen und nicht einmal auf Wikipedia beschrieben wurde, werfen die kürzlich von seinem Schöpfer veröffentlichten Fotomasken ein Licht auf diese ungewöhnliche Ecke der Prozessorgeschichte.



All Articles