Implementierung in die Architektur der sowjetischen programmierbaren Taschenrechner "Electronics MK-52"



In diesem Artikel möchte ich über die Architektur sowjetischer programmierbarer Mikrokalkulatoren am Beispiel des MK-52-Elektronikrechners als Beispiel sprechen und darüber, wie er in seine Architektur integriert werden kann.

Sowjetische Taschenrechner der " Electronics B3-34 " -Familie ("Electronics MK-56", "Electronics MK-61" und "Electronics MK-52") waren in der UdSSR besonders beliebt. Der Grund dafür war nicht nur ein erschwinglicher Preis von 65 Rubel für den MK-54, 85 Rubel für den MK-61 oder 115 Rubel für den MK-52, sondern auch eine entwickelte Programmiersprache. Diese Familie von Taschenrechnern ist für zahlreiche Benutzer zum De-facto-Standard geworden. Eine große Anzahl von Büchern widmete sich der Programmierung auf diesen Maschinen und der Veröffentlichung vorgefertigter Algorithmen. Die Elektronik MK-52 flog sogar mit dem Raumschiff Sojus TM-7 in den Weltraum, wo es als Backup für den Fall einer Fehlfunktion der Abstiegsnavigationsausrüstung verwendet werden sollte. Selbst in der Marine der UdSSR war der Elektronikrechner MK-52 mit der Speichererweiterungseinheit Astro PDU für einige Zeit ein Standardwerkzeug für Navigationsberechnungen.



Der Mikrorechner MK-52 gehört zur zweiten Generation der sowjetischen programmierbaren Mikrorechner.

Die erste Generation war die B3-21- Familie (einschließlich MK-46 , MK-64 und MS 1103 ). Das Basismodell B3-21 wurde 1975 entwickelt und seit 1977 in Serie hergestellt. Sie hatte einen Arbeitsstapel für zwei Zahlen (B3-21 sowie die B3-34-Familie - Taschenrechner mit RPN - polnische umgekehrte (oder nicht blockierende) Notation - bei der zuerst Zahlen in den Stapel eingegeben werden und dann die Bedientaste gedrückt wird).



Zusätzlich zum Arbeitsstapel gab es einen zusätzlichen Ringstapel mit 6 Zahlen. Sie können eine Zahl in einem Kreis auf diesen Stapel schreiben und dann extrahieren. Und sieben weitere Speicherregister mit den Nummern 2-8 (acht in MK-46, MK-64 und MC 1103) sind gewöhnliche Speicherregister zum Speichern von Nummern. Die Anzahl der Programmschritte für B3-21 beträgt 60. Bei den Modellen MK-46, MK-64 und MC 1103 gibt es 66. Die neuesten Modelle sind Desktop-Rechner mit Blöcken zur Überwachung von Parametern von externen Geräten. In MK-46 gab es nur die Möglichkeit, digitale Codes zu empfangen, und in MK-64 und MS 1103 wurde eine Kassette mit einem Analog-Digital-Wandler installiert und ein zusätzlicher Chip K145IK1801, der die Interaktion organisierte. Aufgrund der Installation dieses Chips erschien ein zusätzliches Speicherregister mit der Nummer 9 und sechs weiteren Programmschritten. Die Lesesteuerung erfolgte über das Register Nummer 9 durch Eingabe des Befehlscodes. In ähnlicher Weise waren der MK-61 und der MK-52 übrigens mit dem K745IK1306-Chip ausgestattet, der zusätzlich zu den zusätzlichen Funktionen ein weiteres Register und sieben weitere Programmschritte hinzufügte, aber dazu später mehr.

Irgendwann im Jahr 1980 erschien die zweite Generation programmierbarer Mikrokalkulatoren angesichts von "Electronics B3-34". Die ersten Exemplare kosteten 120 Rubel, aber die Anlage reduzierte den Preis schnell auf 85 Rubel und verkaufte das Modell irgendwo bis 1985. Im Allgemeinen wird die Preisgestaltung von Taschenrechnern in einem separaten Artikel diskutiert: Irgendwo sanken die Preise, als sie veröffentlicht wurden, irgendwo stiegen sie. Wenn Sie interessiert sind, können Sie auf meiner Website nach Preisänderungen im Laufe der Jahre suchen. Ich versuche, solche Informationen so weit wie möglich zu sammeln. Der Rechner B3-34 wurde durch ähnliche Funktionen ersetzt, jedoch kompakter MK-54, Desktop MK-56. Einige Jahre später erschien der K745IK1306-Chip mit zusätzlichen Funktionen und veröffentlichte neue MK-61-Modelle in einem ähnlichen Gehäuse wie der MK-54 und den horizontalen MK-52 mit einem internen EEPROM K1601PP1 in 512 Schritten (eine einzigartige Sache, die ich weltweit nicht mit anderen Taschenrechnern mit EEPROM gesehen habe : Sie haben entweder einen verbrauchsarmen CMOS-RAM oder einen moderneren Flash) und zwei Anschlüsse zum Anschließen von Geräten: Der erste wurde zum Anschließen externer Speichermodule der "PDU-Speichererweiterungseinheiten" verwendet, der zweite war technologisch und es wurde dort nichts angeschlossen (die Fabrik erklärte, wie technisch biologischer Verbinder zum Testen während der Produktion).

Rückansicht:





Im Vergleich zu Mikrokalkulatoren der ersten Generation war die Verbesserung signifikant. Die Anzahl der Register zum Speichern von Nummern wurde von 8/9 auf 14/15 erhöht.
Der Operationsstapel aus zwei Registern wurde um zwei weitere Register erhöht - X, Y, Z, T. Ein Register des letzten Wertes des Registers X erschien vor der Ausführung der letzten arithmetischen Operation - BX (die Operationsregister X, Y, Z, T mit dem Register Last X wurden von uns ausspioniert Insgesamt Hewlett Packard-Rechner mit ähnlichen Registern, hier endet jedoch die Identität mit HP. Der Programmbereich von 60/66 Schritten wurde von 98 Schritten (für B3-34, MK-54, MK-56, MC 1104) auf 105 Schritte (für MK-61 und MK-52) erhöht.

Im Programm können Sie automatische Schleifen in den Registern L0-L3 verwenden, dann wird das entsprechende Register um 1 gegenüber Null reduziert und an der Adresse verzweigt.
Die Taschenrechner der zweiten Generation haben die Implementierung der indirekten Adressierung erheblich verbessert. Jedes Speicherregister kann als Indexregister zum Speichern / Abrufen von Nummern sowie für indirekte Übergänge zu Programmen und Unterprogrammen verwendet werden, auch mit einer Bedingung. In diesem Fall wird der Wert des indirekten Sprungregisters automatisch reduziert (Register 0-3), erhöht (Register 4-6) oder unverändert gelassen.

All diese automatischen Aktionen mit Registern sparen den Programmbereich erheblich und erleichtern die Programmierung.

Sie können lange über die Arbeit mit dem MK-52 sprechen. Ich habe nur kurz über die Fähigkeiten dieser Maschinen für diejenigen gesprochen, die nicht mit ihnen gearbeitet haben.

Ich möchte das Gespräch über Architektur mit einer Geschichte beginnen. Die Familie der Taschenrechner B3-21 und B3-34 ist die Entwicklung des Kiewer Wissenschaftlichen Forschungsinstituts für Mikrogeräte (NIIMP). Die ersten Taschenrechner mit dem Namen " Electronics 4-71 " erschienen 1971. Zwei Unternehmen erhielten auf dem 24. Kongress der KPdSU 1971 die Aufgabe, Taschenrechner für große integrierte Schaltkreise herzustellen - das Kiewer NIIMP und das Leningrader Svetlana. Infolgedessen erschienen ungefähr zur gleichen Zeit zwei Modelle von Taschenrechnern - die oben genannten Electronics 4-71 und Electronics 24-71 (erhalten Sie den Namen der Modelle?). Das Modell 4-71 wurde als erster Taschenrechner der Iskra-Familie mit Mikroprogrammsteuerung und Logik auf Moore-Maschinen in Zusammenarbeit mit dem Leningrader Staatlichen Sonderkonstruktionsbüro hergestellt. Das heißt, wenn die Taste gedrückt wird, klicken die erforderlichen Auslöser (abhängig vom Zweck der Taste), die den Durchgang der entsprechenden Mikrobefehle bilden. Automaten - das ist sicherlich gut, aber Sie werden in Bezug auf Verbesserungen nicht weit kommen. Sogar die Iskra-114- Rechner des State Special Design Bureau aus dem Jahr 1974 verfügten bereits über K5YAP011001-ROMs (vermutlich die ersten in den Chip-ROM-Mikroschaltungen der UdSSR) mit Firmware.

Und so erschien NIIMP 1973 als Mikrocontrollerkern seines eigenen Designs. Speichern Sie diese Website zu Lebzeiten als Referenz. Es gibt viele interessante Informationen zu NIIMP. Der erste B3-09 Electronics-Mikrokalkulator des K145IK2A-Mikrochips kam als „erster Pfannkuchen“ heraus und wurzelte nicht, aber seine Modifikationen B3-09M Electronics , B3-14M und B3-14 gingen mit einem Knall los, Hunderttausende von Stücken wurden jährlich hergestellt und löste das Problem der Berechnung des Defizits. In jenen Jahren gab es nicht genügend Taschenrechner für unsere Produktion, und sie wurden aus dem Ausland importiert, sowohl aus sozialistischen als auch aus kapitalistischen Ländern. Erinnern Sie sich an den Film "Office Romance" von 1977? Ab 9:15 Uhr sehen Sie , welche Taschenrechner auf den Tischen stehen - hauptsächlich der Transistor DDR "Soemron 220" und der bulgarische "Elka 50" der ersten Modifikation.



Größere Fotos sind auf der Website von Radio Pictures zu sehen: K145IK2 , K145IK501 , K145IK502P .

Dies sind Kristalle von K145IK2-, IK501- und IK502-Mikroschaltungen. Wie Sie sehen können, stimmen die Chips eines einfachen Rechners mit vier arithmetischen Operationen K145IK2 praktisch mit den Chips des programmierten Rechners "B3-21" (K145IK501, 502 und 503) überein. Letztere unterscheiden sich nur in der „Firmware“. Die Firmware-Nummer wird auf einer separaten Ebene nach dem Namen angezeigt.





Und dies ist ein fortschrittlicherer Kristallchip K145IK1302 , der zu den programmierbaren Taschenrechnern der "Electronics B3-34" -Familie gehört, einschließlich des "Electronics MK-52", um den es in diesem Artikel geht.

In der Mitte des Chips sind drei Bereiche sichtbar (grün markiert). Dies ist der Speicher von Mikrobefehlen, der Speicher von Synchronisierungsprogrammen und der Programmspeicher. Gelb zeigt Ringschieberegister an.
Der Prozessor des Rechners arbeitet mit einer Frequenz von 75-100 kHz. Der Prozessor verfügt über eine Ein-Bit-ALU (arithmetische Logikvorrichtung) mit mehreren Quellen und Empfängern.

Bei vier Mikrotakten führt der Prozessor einen Mikrobefehl aus (über ein Notebook). Jeder Mikrobefehl gibt an, welche Quellen für den Addierer verwendet werden sollen und wo das Ergebnis abgelegt werden soll.
Insgesamt verfügt die Mikroschaltung über 68 Mikrobefehle mit einer Länge von jeweils 27 Bit, 128 verschiedene Synchronisationsprogramme und 256 Zellen für Befehle.

Der Mikroprozessor des Rechners (genauer gesagt der Mikrocontroller, da sich darin sowohl ROM- als auch RAM- und Eingangs- / Ausgangsanschlüsse befinden) arbeitet nach einem einheitlichen Prinzip. Alle Register sind Schieberegister.



Im Inneren des Prozessors ist alles in einer Schleife angeordnet und ähnelt einem Vergnügungspark mit Karussells, einem Riesenrad und einem idealen Bus mit Besuchern. Eine Tür arbeitet am Eingang, die andere am Ausgang, und die Besucher bewegen sich allmählich von Anfang bis Ende.
Ein Mitarbeiter des Parks (Mikrobefehl), der mit einem Notizbuch (Mikrobefehlsfeld) jeden Mikrotakt überprüft, extrahiert (oder nicht) aus dem angefahrenen Zellkarussell, dem Riesenrad oder dem nächsten Passagier des Busses (dh dem nächsten Register) Bits und leitet sie zur Attraktion "Addierer", wo Einige Aktionen finden mit ihnen statt und das Ergebnis wird zurückgesendet, auch abhängig von den Feldern des Mikrobefehls. Diese Routine ist für 4 Bits gültig, wonach die Taktnummer erhöht wird.

Da die Register kreisförmig sind, mussten Entwickler ihre Größe korrekt einstellen. Infolgedessen war die Basisnummer für Taschenrechner der K145IK13-Familie die Nummer 42.

Diese Länge (42 Tetraden) hat sequentielle Register - Register M, R und ST. Um nicht zu warten, bis die erforderlichen Nummern im gesamten Ring vorrücken, stehen zusätzlich mehrere 4-Bit- und Ein-Bit-Register wie das Übertragungsregister in jedem Taktzyklus zur Verfügung. Eine Zahl mit einer 8-Bit-Mantisse und einer 2-Bit-Ordnung belegt 14 Tetraden (ein Drittel von 42). In das Ringregister passen genau drei Zahlen, mit denen beispielsweise das Speicherregister und die Speicherung von zwei Zahlen bei der Berechnung mit Klammern implementiert werden können, wie dies im Taschenrechner "Electronics B3-32" auf K145IK1301 implementiert ist.

Mit der Nummer 42 arbeitet auch der sogenannte "Speicher von Synchronisationsprogrammen" hart, der die Adressen von Mikrobefehlen enthält, die ausgeführt werden müssen.

Es wird als Synchronisationsprogramm bezeichnet, da es eng mit der Größe des Ringregisters und der Messnummer 0-41 synchronisiert ist - ein Ringzyklus.

Jedes Synchronisierungsprogramm enthält neun Anzahlen von Mikrobefehlen, die ausgeführt werden müssen.
Die Synchronisierungsbefehle sind ziemlich interessant. Die Entwickler analysierten die Algorithmen und berechneten, dass unter Berücksichtigung von Übertragungen eine typische ALU-Operation auf einem Notebook drei Taktzyklen erfordert und die durchgeführten Aktionen ziemlich ähnlich sind. Und sie haben es so gemacht, dass die Mikrobefehle abhängig von der Taktnummer (0-41) immer in der folgenden Reihenfolge in Hardware ausgeführt werden:
0, 1, 2, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 6, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 2, 3, 4, 5



Ich habe die gleichen Abschnitte (Mikrobefehle 3, 4, 5), die sieben Mal hintereinander ausgeführt werden, gelb markiert. Dies reicht aus, um eine achtstellige Nummer zu verarbeiten. Tatsächlich handelt es sich hierbei um vorgefertigte Mikroalgorithmen. Einerseits reduzieren solche eingebauten Schleifen die Kapazität des für das Programm erforderlichen ROM, stellen sich andererseits vor, dass eine solche Sequenz immer in jeder Zeile des Programms ausgeführt wird.

Da eine Tetrade in drei Takten verarbeitet wird, können die Daten während dieser Zeit in einem Ring verlassen werden. Aufgrund dieser Funktion werden die Nummern in den Ringregistern nicht in aufeinanderfolgenden Zellen gespeichert, sondern in jedem dritten, so dass sie gerade rechtzeitig zum Ende der Zyklen 3, 4, 5 eintreffen.

Die folgende Abbildung zeigt den Programmspeicherbereich. Der Speicher von Programmen in jedem seiner Felder enthält Informationen zu drei Synchronisierungsprogrammen, die in einem Ringzyklus ausgeführt werden müssen. Es gibt auch eine Nuance, dass das dritte Synchronisierungsprogramm normalerweise für alle Arten von Zweigen verwendet wird. In Register R sind die Zellen 36 und 39 der Adresse des aktuell ausgeführten Programms zugeordnet, sie erscheinen nur auf den entsprechenden Takten, wenn die ersten beiden Synchronisationsprogramme ausgeführt werden, und das dritte Synchronisationsprogramm verarbeitet diese Adresse.

Natürlich arbeitet der Mikroprozessor im Inneren noch komplizierter. Nur eine Beschreibung mit allen Nuancen nimmt mehr als ein Dutzend Seiten des Buches Trokhimenko Y.K. „Programmierbare Mikrorechner. Gerät und Verwendung “(Google Book).

Diese Architektur mit drei Verarbeitungsebenen - Programmspeicher mit Synchronisationsadresse, Speichersynchronisationsprogramm mit Mikrobefehlsnummern und Mikrobefehlsspeicher mit einer Reihe von Quellen und Empfängern - ist die Basis für eine ganze Familie von Chips K145IK2, K145IK13xx, K145IK18xx und K145IK19xx, nur sie haben unterschiedliche Registergrößen. Adressierung und Verzweigung werden zu einem anderen vorgenommen und andere Verbesserungen und Änderungen vorgenommen.

Und das Interessanteste, was die Entwickler 1973 getan haben, war, dass sie das Gehirn des Prozessors zur Erweiterung herausgeholt haben. Ich meine Ringregister. Im ersten Massenrechner B3-09M war die Registerkapazität ausreichend und eine Erweiterung nicht erforderlich. Aber was ist, wenn die Attraktion nicht ausreicht? Sie können die Größe erhöhen oder eine andere daneben platzieren. Um die Größe des ROM und damit die Größe des Kristalls nicht zu erhöhen, um die Ausbeute an geeigneten Kristallen im Produktionsprozess und andere Schwierigkeiten zu verringern, nahmen die Entwickler mehrere identische Prozessoren und erstellten ein gemeinsames Ringregister.



Hier auf dem Foto links ist ein Teil des K145IK2-Kristalls und rechts K145IK5. Sie können auf die obere linke Ecke achten. Dort befindet sich bereits im Produktionsprozess ein kleiner Jumper, der zwei Kontaktflächen schließt (Ringregister). Und in K145IK5 ist dieser Jumper nicht und das Ringregister ist nicht geschlossen.

1975 erschienen die ersten Muster des programmierbaren Rechners " Electronics B3-21 ". Dort sehen Sie bis zu drei Prozessoren des Typs K145IK5 - K145IK501, K145IK502 und K145IK503. Sie unterscheiden sich nur in der Firmware.

Der erste K145IK502-Prozessor befasst sich mit der Tastatureingabe und -ausgabe für die Anzeige, der Verarbeitung von Aktionen im Automatikmodus und der Programmeingabe und -ausführung.
K145IK501 beschäftigt sich mit arithmetischen Operationen und K145IK503 mit trigonometrischen Operationen. Und da zusätzlich zur Lücke im selben Register auch eine Kapazität zum Speichern des Benutzerprogramms und der Speicherregister benötigt wurde, wurde der K145IR1-Chip eingesetzt, bei dem es sich um ein großes Schieberegister handelt. Infolgedessen erschienen drei Fahrten mit drei in Reihe geschalteten Bussen und einem Zug. Und alle Daten bewegen sich ständig mit der Geschwindigkeit eines Taktgenerators entlang eines gemeinsamen Rings.

Dank Felix Lazarev, der die Firmware dieser Mikrocontroller lesen und die Architektur verstehen konnte, haben wir einen Emulator für Taschenrechner wie MK-61 und B3-34 erhalten, mit dem Sie die Arbeit genauer untersuchen und mit dem Ein- und Ausschalten der Chips am gemeinsamen Ring spielen können.

Der erste Mikrorechner der zweiten Generation " Electronics B3-34 " verwendete die Chips K145IK1302 (Ein- / Ausgang, Betriebsarten), K145IK1303 (mathematische Funktionen) und zwei Register K145IR2 mit jeweils 1008 Bit.



Insgesamt bilden zwei Register M und zwei Register mit jeweils 1008 Bit einen Ring mit einer Größe von 42 × 4 + 42 × 4 + 1008 + 1008 = 2352 Bit.

Die Entwickler teilten das gesamte Datenfeld in drei identische Bereiche mit 784 Bit (196 Tetraden oder 98 Bytes) auf. Das Anwenderprogramm ist im ersten Bereich (98 Schritte) gespeichert, die Datenregister im zweiten Bereich (14 Register mit den Nummern 0-9, a, b, c, d sind jeweils 14 Tetraden) und der dritte Bereich ist der Dienstbereich.

Einige Jahre nach dem Erscheinen des B3-34 erschienen zwei neue Modelle - der MK-61 und der MK-52. Sie fügten einen weiteren K145IK1306-Chip hinzu, auf dem Operationen mit Grad und logischen Operationen berechnet werden. Der Ring sah folgendermaßen aus:



Bitte beachten Sie, dass in K145IK1306 das gleiche Register M wie in K145IK1302 und K145IK1303 vorhanden ist. Das Aussehen dieses Chips fügte dem Ring ein Speicherregister (14 Tetraden) hinzu, weitere sieben Programmschritte (14 Tetraden), und der Servicebereich wurde um 14 Tetraden vergrößert.

In MK-52 gibt es auch einen K745IK1801-Chip, der Daten von einem EEPROM-Chip oder einer austauschbaren Speichererweiterungseinheit überträgt. Es wird jedoch kein Registerring verwendet.

Die Aufteilung des gesamten Datenrings in Taschenrechnern vom Typ MK-61 und MK-52 ist in der folgenden Abbildung dargestellt:



Wie gesagt, der gesamte Ring ist in drei Bereiche unterteilt: M1, M2 und M3.

In dem Bereich M1 gibt es Speicherregister 0-9, a, b, c, d, e. Das Interessante an ihnen ist, dass Sie zum Speichern von Zahlen 12 Tetraden benötigen (1 ist das Mantissenzeichen, 8 ist das Mantissenzeichen, 3 ist die Reihenfolge) und 14 Tetraden für ein Register zugewiesen sind (geteilt durch 42 im Prozessor). Infolgedessen werden nicht zwei Notizbücher für jedes Register verwendet.

Im Bereich von M3 befindet sich der Programmspeicher. Dort ist alles einfach - 98 Schritte für B3-34 und 105 Schritte (14 weitere Tetraden) für MK-61 und MK-52.

Das M2-Gebiet ist das interessanteste. Zusätzlich zu den Registern X, Y, Z, T, BX enthält es auch den Ms-Bereich, den Kommunikationskanal KS und Label.

Die gezeigten Bereiche folgen nicht aufeinander. Denken Sie daran, ich sagte, dass es im Synchronisationsprogramm mehrere sich wiederholende Operationen gibt, die drei Taktzyklen dauern und bewirken, dass die Nummern in den Registern in jeder dritten Zelle gespeichert werden. Dies ist, was in den Ringdaten implementiert ist. Zuerst wird die erste Tetrade der Region M1 übertragen, dann die erste Tetrade der Region M2 und dann die erste Tetrade der Region M3. Dann kommen die zweiten Notizbücher und so weiter.Und während für drei Taktzyklen die Mikrobefehle 3, 4, 5 im Synchronisationsprogramm ausgearbeitet werden, werden unnötige Bereiche übersprungen.

Als ich mich mit der Verteilung von Daten in einem gemeinsamen Ring befasste, war ich von dem als Frau bezeichneten Bereich sehr deprimiert. Es ist ziemlich groß und nimmt ein Sechstel des Datenbereichs des Rings ein. Und dieser Bereich wird im Taschenrechner nicht verwendet. Bei der Entwicklung der Architektur boten die Entwickler die Möglichkeit, einen "Datenprogrammbereich" zu erstellen. Dies ist ein solcher Bereich, in den man entweder ein Programm oder Datenregister schreiben kann. Darüber hinaus eine ziemlich große Fläche - 56 Programmschritte. In den Taschenrechnern sollte es spezielle Funktionen in Kombination mit der [K] -Taste zum Austausch enthalten (über den Tasten 1 und 2 befindet sich dort jetzt eine leere Stelle). Aber ich wiederhole, in seriellen Modellen ist dieser Bereich verschwunden, und so hätten wir mehr Speicherregister oder ein Programm 56 Schritte länger haben können. Dieser Bereich wurde in der Zeitschrift "Technique-Youth" Nr. 7 für 1986 beiläufig erwähnt.

Bild

Das wichtigste Element der Synchronisation in Ringdaten ist das sogenannte „Label“. Dies ist eine Folge von neun Notizbüchern, die aus Einheiten bestehen. Wenn der "Tag" -Code angezeigt wird, wird der interne Zähler der Prozessoren zurückgesetzt und der Ring beginnt in Bezug auf den Tag-Code zu zählen. Ganz am Anfang, nach dem Einschalten der Maschine, initialisiert der Kopfprozessor K145IK1302 den Ring und bildet die Markierung. Die Befehle und Inhalte der Register werden so ausgewählt, dass der Label-Code weder in den Daten noch im Programm gefunden werden kann.

Fortgeschrittene Benutzer von Taschenrechnern der B3-34-Familie haben von dem „Dummy“ gehört - einer undokumentierten Operation, bei der nur ein Dezimalpunkt auf dem Indikator angezeigt wird. Dies ist ein Code, der nur aus Einheiten besteht. Wenn dieser Code angezeigt wird, verirrt sich der interne Zähler und der Rechner flippt aus - zwei Codes werden angezeigt. Das Etikett und die gesamte Synchronisation verirren sich - der Rechner belegt einen Speicherbereich für einen anderen.

Die interne Adressierung bezieht sich auf den Etikettencode. Als der K745IK1306-Chip mit einem zusätzlichen Register M erschien, erhöhte sich die Anzahl der Zellen und sie wurden bedingt zum Ende hinzugefügt, da in der Architektur der gesamte Datenbereich im Ring kontinuierlich ist. In dieser Architektur können Sie einen weiteren Prozessor wie K145IK13 hinzufügen, dann wird es ein weiteres Speicherregister und 7 weitere Programmschritte werden hinzugefügt (maximal 112).

Höchstwahrscheinlich funktioniert die interne Darstellung der Daten in dem nicht programmierbaren Rechner Electronics MK-44 , der auf demselben Mikroprozessor K145IK1305 hergestellt wird, auf ähnliche Weise. Es war einer der beliebtesten Desktop-Rechner in unserem Land. Es hat drei Speicherregister. Ich fragte mich, was passieren würde, wenn ich den Ring des Registers M herausreißen und dort Speicher hinzufügen würde. Das Experiment war ein Erfolg . Der Prozessor "nahm" den angezeigten Speicher auf und es gab zehn Speicherregister im Rechner.

Und wie interagieren Prozessoren miteinander? Sie „kommunizieren“ mit einem speziellen Feld, dem „Kommunikationskanal“ (CS). Sowohl die Taschenrechner der B3-21-Familie als auch die Taschenrechner der B3-34-Familie haben einen Hauptprozessor. In unserem Fall ist dies K145IK502 für B3-21 und K145IK1302 für B3-34. Sie initialisieren den Ring beim Einschalten, bilden den „Label“ -Code und interagieren mit dem Bediener, indem sie die Tastatureingabe und -ausgabe für die Anzeige organisieren. Andere Prozessoren befinden sich im Standby-Modus und warten auf Befehle.

Ein „Kommunikationskanal“ sind zwei Notebooks, in die der Hauptprozessor eine Nummer einfügen kann - ein Byte mit einem Operationscode.

Wenn der Kopfprozessor die Operation im Programm oder im manuellen Modus nicht mit einem eigenen Code verarbeiten kann, legt er den Operationscode in das Register der Ringbox des Rings und beginnt zu warten.

. , , , , , . . , , , . , , «F». 10 ( ), 1F.

Gleichzeitig mit dem Einstellen des Betriebscodes im Kommunikationskanal wird im Kopfchip ein spezieller Standby-Zähler wie ein Watchdog-Timer eingeschaltet. Wenn kein Slave-Prozessor den Befehl über den Kommunikationskanal verarbeiten kann, löscht der Host-Prozessor nach einer bestimmten Zeit den Kommunikationskanal und zeigt eine Fehlermeldung „YYGOG“ auf der Anzeige an.

Slave-Chips verwenden dieses Timeout, wenn während des Berechnungsprozesses ein Fehler mit einer Zahl aufgetreten ist. Beispielsweise hat ein Benutzer versucht, eine Wurzel aus einer negativen Zahl zu extrahieren. In diesem Fall legt der Slave-Chip nichts in den Kommunikationskanal ein, und nach einigen Sekunden zeigt der Host-Prozessor selbst eine Fehlermeldung an. Daher hat in Taschenrechnern die Ausgabe der Inschrift "EGGOG" mit solchen Fehlern so viel Zeit in Anspruch genommen.

Der Hauptprozessor weiß möglicherweise nicht, welche anderen Prozessoren sich im Ring befinden. Der Code wird lediglich in den Kommunikationskanal eingefügt, und andere Prozessoren verarbeiten ihn. Sie können beispielsweise den K745IK1306-Chip durch einen anderen ersetzen oder Ihre Entwicklung auf der Grundlage eines Mikrocontrollers durchführen, wie Sie es zu Sowjetzeiten im Elektronikrechner MS-1104 getan haben .

Neben dem seriellen Datenbus verfügen Taschenrechner vom Typ „MK-52 Electronics“ über eine Schnittstelle zum EEPROM und zu externen Speichererweiterungsmodulen. Wie ich oben geschrieben habe, verfügt der MK-52 über einen elektrisch löschbaren Speicherchip K1601PP1, in den bis zu 512 Programmschritte geschrieben werden können. Anstelle des Programmspeichers können numerische Speicherregister gespeichert werden. Was zu schreiben ist - Programmspeicher oder Register, wird durch den "D-P" -Schalter auf der Vorderseite bestimmt. Dieselben Bereiche im EEPROM können sowohl für die Programmspeicherung als auch für die Registerspeicherung verwendet werden. Sie können Register in das EEPROM schreiben und die aufgezeichneten Daten können in den Programmbereich extrahiert werden und umgekehrt.

Art des Rechners auf der Seite der Mikroschaltung: Große Mikroschaltungen



:



Neben dem internen EEPROM wurden auch austauschbare Speichermodule "PDUs" (Memory Expansion Units) hergestellt. Sie sind ein ROM-Chip, auf dem Programme aufgezeichnet werden.
Insgesamt bekannte Module:

  • PDU "Astro", auch bekannt als BRP-2 - Navigationsprogramme. Das Modul wurde auf Schiffen verwendet, was ich am Anfang des Artikels geschrieben habe.
  • BRP-3 enthielt mathematische Programme
  • BRP-4 - mathematische Programme und Haushaltsprogramme, einschließlich Spiele.

, . -3 , -2 «».

, -4 . , .

EEPROM 7451801 . , . X EEPROM [↑], [↑↓] , , .

In Bezug auf das PDU-ROM wird die Adresse im Parallelcode immer auf dem Bus eingestellt, und die PDU liefert immer den Inhalt der Zelle.

Das PDU-Modul wird in die entsprechende Buchse auf der Rückseite des MK-52-Rechners eingesetzt.

Sicherlich hat jeder MK-52-Benutzer, der einen Taschenrechner gekauft hat, zwei Anschlüsse auf der Rückseite des Gehäuses gesehen - groß für PDU und klein, es ist nicht klar, warum. In der Anleitung und in den Magazinen erklärten die Entwickler, dass dieser Stecker in der Produktionsphase nur für technologische Zwecke verwendet wird.
Möglicherweise wurden einige nicht serielle Modifikationen des MK-52-Rechners hergestellt, aber ich habe noch nichts davon gehört. Die ganze Zeit wollte ich eine Art Gerät entwickeln, das auf diesem Anschluss sitzen und es bei der Arbeit verwenden kann.

Wenn Sie sich dem Konzept zuwendenIm Taschenrechner können Sie sehen, dass neben den Versorgungsspannungen und Taktsignalen auch Signale vom Ring, die vom Eingang und Ausgang des K745IK1801-Chips stammen, an den Anschluss ausgegeben werden. Um etwas in den Ring zu infiltrieren und aufzunehmen, musste es gebrochen werden. Natürlich ist es die neueste Option, etwas im MK-52-Schema zu ändern. Es stellte sich jedoch heraus, dass das Ausgangssignal des K745IK1801-Chiprings schwach ist. Höchstwahrscheinlich ist es leicht auf eine der Versorgungsspannungen angezogen, und es kann mit seinem Signal ziemlich frei überlastet werden. Also habe ich es getan. Der Mikrocontroller überwacht den MK-52-Ring, analysiert ihn und kann Daten lesen und schreiben.

Als Ergebnis haben wir ein Gerät bekommen - das FRS-BRP-Modul. Hier ist ein schematisches Diagramm:

Bild

Der Kern des Moduls ist der Mikrocontroller STM32F205. Es unterbricht vom internen Frequenzgenerator des Rechners Stück für Stück die entlang des Rings übertragenen Daten. Überwacht gleichzeitig den parallelen Bus, um die Speichererweiterungseinheit zu emulieren. Für die korrekte Erkennung von Logikpegeln ist eine große Anzahl von Komparatoren erforderlich. Tatsache ist, dass der Rechner eine negative Spannung von 0 bis -15 Volt verwendet. Diese Spannung wird von einer 5-Volt-Stromquelle erzeugt. Die Platine musste diese Spannungen ebenfalls verwenden, jedoch nicht nur für -15 Volt, sondern auch für -5 und -3,3. Infolgedessen wurde die Spannung, die im Rechner auf der FRS-SRP-Karte 0 Volt beträgt, +5 Volt und die Spannung, die -5 Volt beträgt, Null. Bei Komparatoren kann alles gut gefiltert werden, es gibt viele davon, aber sie sind jetzt sehr billig. GrundsätzlichKomparatoren sind an der Decodierung von Signalen des Parallelbusses des PDU-Emulators beteiligt. Natürlich kann die PDU selbst emuliert werden, indem Daten direkt an den Ring gesendet werden. Aus Gründen der Authentizität habe ich mich für einen vollwertigen Emulator entschieden, damit der Benutzer die "gleichen" Tasten drückt, die in den Anweisungen für die PDU beschrieben sind.



Jetzt werden nur noch wenige Menschen den MK-52-Rechner für den vorgesehenen Zweck verwenden. Es gibt effizientere Rechenmittel. Aber für Enthusiasten, für diejenigen, die sich mit seiner internen Struktur auseinandersetzen möchten, die bewährte Programme verwenden möchten oder für diejenigen, die Spiele spielen möchten, die die Benutzer Mitte der 1980er Jahre verrückt gemacht haben, kann dieses Modul nützlich sein.

Was dieses Modul kann:

  1. Auf dem OLED-Inhaltsbildschirm werden zwei Register des RAM-Rechners (0-9, A, B, C, D, E) gleichzeitig ausgewählt. Wenn der Hauptbildschirm des Rechners im Programmkontomodus blinkt, können Sie auf die Schaltflächen des Moduls klicken, um die Register anzuzeigen.
  2. () -, -3, -4, -5 ( -5 , ).
  3. (105 ) 1 130.
  4. 130 (105 ).
  5. . 3, 4 (0-9, A, B, C, D, E) 130 .
  6. , (, ) 50 .
  7. («-1», «-2», «-3», «-1», «-2», «»).
  8. 7451303 , , . , 7451303 , « », , .
  9. 0x28 (K *) 0x29 ( /).

Wie ich oben geschrieben habe, wird der Operationscode über den Kommunikationskanal übertragen. Jetzt sind fast alle Codes belegt, und über die Fernbedienung können nur drei nicht verwendete Befehle eingegeben werden - Codes 27, 28 und 29. Im Prinzip reichen sie für einige Aufgaben völlig aus. Ich weiß zwar nicht, welche Befehle implementiert werden können, weil der Taschenrechner für den vorgesehenen Zweck kein Kuchen mehr ist, aber die Tatsache der Verarbeitung ist faszinierend.

Na ja, und natürlich - Kommunikation mit einem Computer über USB. Das Modul implementiert einfache Dialogbefehle. Sie können den Inhalt von Daten, Programmen, Servicebereichen oder dem gesamten Ring lesen und schreiben. Es kann auf der Festplatte gespeichert, extrahiert, analysiert, geändert und in einen Taschenrechner geschrieben werden. Hier ist ein Screenshot:

Bild

Sie können beispielsweise eine Nummer in den Kommunikationskanal eingeben und sehen, wie diese von anderen Chips verarbeitet wird. Oder finden Sie heraus, was passiert, wenn eine Servicezelle anders geschrieben ist. Oder um zu überprüfen, ob es möglich ist, den Rechner aus dem "dunklen" Zustand zu entfernen, wenn das Register X durch das Modul durch das Modul korrigiert wird, beispielsweise von 500 auf 0, wird es dann aus dem Stupor entfernt?

Leider kommt nur ein Datenring aus dem Rechner. Und andere Zustände wie ein Software-Zähler, ein Zeichen - ob der Rechner gemäß dem Programm berechnet oder auf dem Indikator anzeigt usw. - diese Informationen befinden sich im internen Register R.

Aber die Entwickler haben ihn rausgebracht. Wenn Sie sich die Schaltung desselben MK-52 ansehen, sehen Sie, dass es einen "bestimmten Jumper" gibt - es ist der Ausgang und Eingang des "R" -Registers. Das heißt, wenn Sie möchten, können Sie eine Verbindung zu diesem Bus herstellen und dessen Innenseiten genauer untersuchen.

Solche abgeleiteten Register befinden sich wahrscheinlich in allen Mikroschaltungen der K145IK5-, K145IK13-, K145IK18- und sogar K145IK19-Familie. Bei der berühmten Mikroschaltung „K145IK1901“ sind auch die Register M und R herausgebracht. Sie können dies anhand des Schaltplans sicherstellen.



Ich habe mich sogar als Experiment mit den Registern in der Uhr auf K145IK1901 verbunden und genommen, wo er die Daten hatte.

Abschließend möchte ich sagen, dass die erwähnte Familie von Mikrocontrollern in CCCP sehr beliebt war, eine große Anzahl von Taschenrechnern - Modelle wurden auf ihrer Basis veröffentlicht:

  • K145IK2 - B3-09, B3-09M, B3-14, B3-14M;
  • K145IK5xx - B3-05M, B3-21, MK-46, MK-64, MS-1103, MK-59, Elwro 330;
  • K145IK13xx - B3-32, MK-44, B3-34, MK-54, MK-56, MK-52, MK-61, MS-1104.

Bei den Mikroschaltungen der Serien K145IK18xx und K145IK19xx handelt es sich bei den Haushaltsgeräten um Timer für Mikrowellen, Uhren , Timer für die Fotografie, Bandcontroller in Tonbandgeräten und mehr.

Das ist alles was ich sagen wollte. Ich hoffe es war interessant. Vielen Dank für Ihre Aufmerksamkeit.

Source: https://habr.com/ru/post/de467501/


All Articles