Die emotionale Geschichte der Prozessoren für die ersten Computer von den 70ern bis zu den frühen 90ern

Ich habe zufällig Assembler verschiedener Prozessoren programmiert. Als letztes auf der Liste steht Xilinx MicroBlaze. Ich beschloss, einige meiner Beobachtungen zu den Merkmalen dieser fast magischen Eisenstücke zu veröffentlichen, die uns wie der magische Schlüssel von Pinocchio Türen im magischen Land der virtuellen Realität und der Massenkreativität öffneten. Informationen zu den Funktionen moderner Systeme x86, x86-64, ARM, ARM-64 usw. Ich werde nicht schreiben, vielleicht ein anderes Mal - das Thema ist sehr groß und komplex. Daher habe ich vor, mit Intel 80486 und Motorola 68040 fertig zu werden. Ich wollte auch die IBM / 370 einbeziehen, mit der ich mich befasst habe. Diese Systeme waren ziemlich weit von der Masse der Benutzer entfernt, hatten aber gleichzeitig einen enormen Einfluss auf die Computertechnologie. Sie hatten einfach nicht genug Zeit für das Thema, sie verwendeten keine Prozessorchips und aus irgendeinem Grund schienen sie selbst völlig verschwunden zu sein. Ich hoffe wirklich, dass meine Materialien die Aufmerksamkeit von Kennern auf sich ziehen, die etwas hinzufügen können, über das sie nicht nachgedacht haben oder das sie nicht wussten.

Zur Veranschaulichung füge ich meinen kleinen Stein aus Rosetta hinzu - Programme zur Berechnung der Zahl π auf verschiedenen Prozessoren und Systemen unter Verwendung eines Verschlussalgorithmus, der behauptet, die schnellste seiner Implementierungen zu sein.


Intel 8080 und 8085


Der erste echte Prozessor auf einem Chip, der in der ersten Hälfte des Jahres 1974 hergestellt wurde, wird noch hergestellt und findet Verwendung. Viele Male auf der ganzen Welt geklont, hatte es in der UdSSR die Bezeichnung KR580VM80A. Moderne Intel-Prozessoren für PCs zeigen immer noch leicht ihre Affinität zu diesem Reliktprodukt. Ich selbst habe keine Codes für diesen Prozessor geschrieben, aber da ich mit der Architektur von z80 vertraut bin, würde ich es wagen, einige meiner Kommentare einzubringen.

Das 8080-Befehlssystem kann wie andere Intel-Prozessoren für PCs kaum als ideal bezeichnet werden, ist jedoch universell, recht flexibel und verfügt über mehrere sehr attraktive Funktionen. Von seinen Konkurrenten unterschieden sich Motorola 6800 und MOS Technology 6502, 8080 in einer großen Anzahl von, wenn auch etwas ungeschickten Registern, und versorgten den Benutzer mit einer 8-Bit-Batterie A, einem 16-Bit-Halbakkumulator und einem Teilzeit-Schnell-HL-Indexregister sowie einem 16-Bit-SP-Stapelzeiger sowie zwei weitere 16-Bit-Register Sun und DE. Die Register BC, DE und HL können als 6-Byte-Register verwendet werden. Darüber hinaus unterstützte der 8080 einen fast vollständigen Satz von Statusflags: Übertrag, Vorzeichen, Null und sogar Parität und Halbübertragung. Einige der Anweisungen aus dem 8080-Befehlssatz waren lange Zeit Speed-Champions. Zum Beispiel tauscht der XCHG-Befehl den Inhalt von 16-Bit-DE- und HL-Registern in nur 4 Taktzyklen aus - es war außergewöhnlich schnell! Eine Reihe anderer Teams, die zwar keine so lebendigen Rekorde aufgestellt haben, gehörten lange Zeit ebenfalls zu den besten:

  • XTHL - Austausch des Inhalts des HL-Registers und der Daten oben auf dem Stapel, 18 Taktzyklen - selbst auf einem echten 16-Bit-8086 scheint ein solcher Befehl viel zu sein, und für einen 6800 oder 6502 ist es sogar schwierig, sich einen solchen Befehl vorzustellen.
  • DAD - Addiere zum HL-Halbakkumulator den Wert eines anderen 16-Bit-Registers (BC, DE oder sogar SP), 10 Taktzyklen. Dies ist eine echte 16-Bit-Addition mit dem Setzen des Übertragsflags. Wenn Sie HL mit sich selbst addieren, erhalten Sie eine schnelle 16-Bit-Linksverschiebung oder zweifache Multiplikation, eine Schlüsseloperation sowohl für die vollständige Multiplikation als auch für die Division.
  • PUSH und POP - auf den Stapel legen und 16-Bit-Wert aus dem Register oder aus dem Register entfernen. Wird in 11 und 10 Zyklen durchgeführt. Dies sind die schnellsten Operationen von 8080 für die Arbeit mit Speicher, und bei ihrer Leistung erfolgt eine automatische Inkrementierung oder Dekrementierung von SP. PUSH kann beispielsweise verwendet werden, um einen Speicher schnell mit einem Muster mit Werten aus 3 Registern (BC, DE, HL) zu füllen. Es gibt überhaupt keine Befehle zum Arbeiten mit 8-Bit-Mengen mit einem Stapel.
  • LXI - Laden einer 16-Bit-Konstante in das Register (HL, DE, BC, SP) für 10 Taktzyklen;
  • RNZ, RZ, RNC, RC, RPO, RPE, RP, RM - bedingte Rückgaben von der Unterroutine, die den Code sauberer machen und das Schreiben zusätzlicher bedingter Verzweigungen überflüssig machen. Diese Teams wurden in der x86-Architektur aufgegeben, es ist möglich, dass der Code mit ihm vergeblich besser ausfällt.

Dieser Prozessor wurde im ersten Altair 8800-Personalcomputer verwendet, der nach der Veröffentlichung des Magazins Anfang 1975 sehr populär wurde. In der UdSSR fand eine ähnliche Veröffentlichung übrigens erst 1980 statt und ihre entsprechende Relevanz erst 1986.


Zuerst fast PC

Der Intel 8080 wurde zur Grundlage für die Entwicklung des einstigen professionellen CP / M-Massenbetriebssystems, das bis Mitte der 1980er Jahre Mikrocomputer für die professionelle Arbeit dominierte.

Nun zu den Mängeln. 8080 benötigte drei Spannungsversorgungen -5, 5 und 12 Volt. Das Arbeiten mit Interrupts ist umständlich und langsam. Und im Allgemeinen ist der 8080 ziemlich ruhig, wenn wir ihn mit den Konkurrenten vergleichen, die bald auftauchten. 6502 kann bis zu dreimal schneller sein, wenn mit derselben Frequenz wie 8080 gearbeitet wird.

In der Architektur von 8080 stellte sich jedoch heraus, dass es sich um eine korrekte Zukunftsvision handelte, nämlich um die in den 70er Jahren unbekannte Tatsache, dass Prozessoren schneller als Speicher sein werden. Die Register 8080 DE und BC ähneln eher einem Prototyp moderner handbetriebener Caches als Allzweckregister. Der 8080 startete mit einer Frequenz von 2 MHz und Konkurrenten mit nur 1, wodurch der Leistungsunterschied ausgeglichen wurde.

Es ist schwer, den 8080 zu 100% als 8-Bit-Prozessor zu bezeichnen. Natürlich hat er eine 8-Bit-ALU, aber es gibt viele 16-Bit-Anweisungen, die schneller sind als die Verwendung von nur 8-Bit-Analoga. Und für einige Teams gibt es überhaupt keine 8-Bit-Analoga. Das XCHG-Team besteht im Wesentlichen aus 100% 16-Bit. Es gibt echte 16-Bit-Register. Daher wage ich es, 8080 teilweise 16-Bit aufzurufen. Es wäre interessant, den Prozessorkapazitätsindex aus der Gesamtheit der Zeichen zu berechnen, aber soweit der Autor weiß, hat noch niemand einen solchen Job gemacht.

Der Autor kennt den Grund nicht, warum Intel die direkte Unterstützung für die Entwicklung von 8-Bit-PCs mit seinen Prozessoren verweigerte. Intel war schon immer von der Komplexität und Mehrdeutigkeit der Politik geprägt. Insbesondere die Verbindung zur Politik zeigt sich darin, dass Intel lange Zeit Fabriken in Israel betrieb und bis Ende der 90er Jahre geheim war. Intel hat praktisch nicht versucht, den 8080 zu verbessern, die Taktfrequenz wurde nur mit einem kleinen MHz auf 3 erhöht. Tatsächlich wurde der 8-Bit-Markt mit einem verwandten 8080-z80-Prozessor auf Zilog übertragen, der den Hauptkonkurrenten, den „Terminator“ 6502, recht erfolgreich konfrontieren konnte.

In der UdSSR und in Russland wurde der inländische Klon 8080 zur Grundlage vieler Massencomputer, die bis in die frühen 90er Jahre populär blieben. Dies sind natürlich Radio-86RK, Mikrosh, Orion-128, Vector und Corvette. Die billigen und verbesserten zX Spectrum z80-basierten Klone besiegten jedoch die Clone Wars.


Dies ist ein echter PC.

Anfang 1976 stellte Intel den 8085-Prozessor vor, der mit dem 8080 kompatibel ist, aber seinem Vorgänger weit überlegen ist. Es machte bereits die Stromversorgung von -5 und 12 Volt unnötig und das Anschlussdiagramm wurde vereinfacht, die Arbeit mit Interrupts wurde verbessert, die Taktfrequenz wurde von 3 auf sehr solide 6 MHz verwendet, das Befehlssystem wurde mit mehreren nützlichen Anweisungen erweitert: 16-Bit-Subtraktion, 16-Bit-Verschiebung in nur 7 Zyklen nach rechts (dies ist sehr schnell), 16-Bit-Drehung nach links durch das Übertragungsflag, Laden eines 16-Bit-Registers mit einem 8-Bit-Offset (dieser Befehl kann auch mit dem SP-Stapelzeiger verwendet werden), schreiben Sie das HL-Register in die Adresse im DE-Register ähnlich wie h HL fließen durch DE. Alle oben genannten Anweisungen, mit Ausnahme der Verschiebung nach rechts, werden in 10 Zyklen ausgeführt - dies ist manchmal erheblich schneller als ihre Gegenstücke oder die Emulation auf z80. Ein paar weitere Anweisungen wurden hinzugefügt und sogar zwei neue Flaggenflaggen. Unter den neuen Flags ist das Überlauf-Flag zu beachten, obwohl die Arbeit damit praktisch nicht unterstützt wurde. Darüber hinaus wurden viele Anweisungen zum Arbeiten mit Byte-Daten auf den Takt beschleunigt. Dies war sehr wichtig, da auf vielen Systemen mit 8080 oder z80 Verzögerungs-Ticks eingeführt wurden, die aufgrund des Vorhandenseins zusätzlicher Ticks auf dem 8080 die Ausführungszeit fast zweimal verlängern konnten. Beispielsweise wurden in einem Haushaltscomputer Vektorbefehle vom Registerregistertyp für 8 Taktzyklen ausgeführt, und wenn dort 8085 oder z80 vorhanden wären, würden dieselben Befehle in nur 4 Taktzyklen ausgeführt. Der XTHL-Befehl ist sogar zwei Schritte schneller. Mit den neuen Anweisungen können Sie Code zum Kopieren des Speicherblocks schreiben, der schneller ist als die LDI / LDD-Befehle des Z80-Prozessors! Einige Anweisungen, z. B. 16-Bit-Inkrementierung und -Dekrementierung, PUSH und bedingte Rückgabe, wurden jedoch pro Takt langsamer.

Der 8085 verfügt über eine integrierte Unterstützung für die Arbeit mit Interrupts, sodass Sie in vielen Fällen auf einen separaten Interrupt-Controller im System und einen seriellen Ein- / Ausgangsanschluss verzichten können. Wie bereits erwähnt, wurde 8085 das Überlaufflag nicht vollständig unterstützt, sodass die Arithmetik von Zahlen mit einem Vorzeichen etwas unvollständig blieb.

Ich kann jedoch die Formel „aus dem Autor unbekannten Gründen“ noch einmal wiederholen. Intel lehnte es ab, 8085 als Hauptprozessor zu bewerben. Erst in den 80er Jahren erschienen mehrere recht erfolgreiche 8085-basierte Systeme. Das erste im Jahr 1981 war der Vorgänger und fast Rivale des IBM PC - IBM System / 23 Datamaster. Dann wurde 1982 ein sehr schneller Computer mit hervorragender Grafik Zenith Z-100 veröffentlicht, in dem 8085 mit 5 MHz arbeitete. 1983 schuf die japanische Firma Kyotronic ein sehr erfolgreiches KC-85-Knieschoner, dessen Varianten auch von anderen Firmen hergestellt wurden: Tandy produzierte das TRS-80-Modell 100, NEC - PC-8201a, Olivetti - M-10. Insgesamt wurden mehr als 10 Millionen Exemplare solcher Computer veröffentlicht! In der UdSSR / RF gab es Anfang der 90er Jahre, basierend auf dem inländischen Klon IM1821VM85A, Versuche, einige Systeme zu verbessern, beispielsweise den Vektorcomputer. Überraschenderweise war der Hauptprozessor des Sojourner-Rovers, der 1997 die Marsoberfläche erreichte, 8085 mit einer Frequenz von 2 MHz!

Tatsächlich gab Intel dem z80 eine grüne Farbe. Einige Jahre später, im Kampf um den 16-Bit-Markt, verhielt sich Intel völlig anders und leitete eine Klage ein, um den Verkauf von v20- und v30-Prozessoren in den USA zu verbieten. Interessanterweise konnten die genannten Prozessoren des japanischen Unternehmens NEC in den Modus der vollständigen Binärkompatibilität mit dem 8080 wechseln, was sie zu den schnellsten Prozessoren der 8080-Architektur machte.

Ein weiteres Geheimnis von Intel ist die Weigerung, ein erweitertes Befehlssystem zu veröffentlichen, einschließlich der Unterstützung neuer Flags. Einer der offiziellen Hersteller dieser Prozessoren hat jedoch das gesamte Teamsystem veröffentlicht. Was sind die Gründe für eine so seltsame Ablehnung? Man kann nur raten. Vielleicht spielte Zilog dann eine ähnliche Rolle wie AMD und schuf den Anschein von Konkurrenz, und 8085 könnte Zilog stürzen? Vielleicht liegt der Punkt in dem Wunsch, das Befehlssystem näher an dem damals entworfenen 8086 zu halten? Letzteres scheint zweifelhaft. Intel 8086 wurde mehr als 2 Jahre nach der Veröffentlichung von 8085 veröffentlicht, und es ist kaum zu glauben, dass sein Befehlssystem bereits 1975 bekannt war. In jedem Fall kann die Kompatibilität mit 8080 und 8085 bis 8086 nur mit einem Makroprozessor erreicht werden, wobei manchmal ein 8080/8085-Befehl durch mehrere eigene ersetzt wird. Darüber hinaus sind die beiden veröffentlichten neuen Anweisungen 8085 in 8086 überhaupt nicht durchführbar. Es ist besonders schwierig zu erklären, warum Intel nach der Veröffentlichung von 8086 keine Informationen über neue Teams veröffentlicht hat. Wir können nur davon ausgehen, dass es sich höchstwahrscheinlich um Marketing handelte. Vor diesem Hintergrund haben wir die Spezifikationen von 8085 künstlich verschlechtert und einen spektakuläreren 8086 erhalten.

Motorola 6800 und nahe Verwandte


Motorola-Prozessoren zeichneten sich seit jeher durch das Vorhandensein mehrerer sehr attraktiver "Highlights" aus, während gleichzeitig einige architektonische Lösungen vorhanden waren, die in Bezug auf Abstraktheit und geringe Praktikabilität absurd sind. Das wichtigste "Highlight" aller fraglichen Prozessoren ist die zweite volle und sehr schnelle Registerbatterie.

Der 6800 war der erste Prozessor der Welt, der nur eine Stromquelle (5 Volt) benötigte - es war eine sehr nützliche Innovation. Aufgrund der Einzigartigkeit des 16-Bit-Indexregisters, die für eine 8-Bit-Architektur umständlich ist, erwies sich der Ho 6800 als unpraktisch für die Programmierung und Verwendung durch das Produkt. Es wurde 1974 veröffentlicht, nicht viel später als 8080, wurde aber nie zur Grundlage für ein bekanntes Computersystem. Interessanterweise nannten die 6502-Entwickler Chuck Peddle und Bill Mensch den 6800 falsch, "zu groß". Er und seine Varianten wurden jedoch häufig als Mikrocontroller eingesetzt. Vielleicht ist es erwähnenswert, dass Intel seit 1971 Prozessoren herstellt, was Motorola in die Lage versetzt, eine Fangseite zu sein, für die der 6800 der allererste Prozessor war. Und wenn Sie den 6800 nicht mit 8080 vergleichen, sondern mit seinem Vorgänger 8008, dann ist der 6800 viel besser. Motorola hat Intel mit 68000/20/30/40 fast eingeholt. Sie können auch feststellen, dass Motorola in den 70er Jahren ein viel größeres Unternehmen als Intel war.

Es wurden auch zahlreiche 6800 Varianten hergestellt: 6801, 6802, 6803, 6805, ... Die meisten davon sind Mikrocontroller mit integriertem Speicher und Eingangs- / Ausgangsanschlüssen. 6803 ist ein vereinfachter 6801 und wurde sehr spät (1983) für seinen Klassencomputer Tandy TRS-80 MC-10 und seinen französischen Klon Matra Alice verwendet, die mit Commodore VIC-20 (1980) oder Sinclair ZX81 (1981) vergleichbar waren. Das Befehlssystem 6801/6803 wurde erheblich verbessert, 16-Bit-Befehle, Multiplikation, wurden hinzugefügt ... Ein ungewöhnlicher bedingungsloser Verzweigungsbefehl (BRN - Verzweigung nie) ist erschienen, der niemals ausgeführt wird! Einige Anweisungen sind etwas schneller geworden.

680x unterstützt die Arbeit mit vorzeichenbehafteten Ganzzahlen vollständig, z80 und 6502 unterstützen es schlechter, während die 8080 und 8085 fast keine solche Unterstützung haben. In 8-Bit-Software wurde eine solche Unterstützung jedoch selten benötigt.

6809 wurde 1978 veröffentlicht, als die 16-Bit-Ära bereits mit 8086 begonnen hatte, und verfügt über ein sehr entwickeltes Befehlssystem, das das Multiplizieren von zwei Byte-Batterien umfasst, um ein 16-Bit-Ergebnis in 11 Zyklen zu erhalten (zum Vergleich benötigt 8086 70 Zyklen für eine solche Operation). . In mehreren Fällen können zwei Batterien zu einer 16-Bit-Batterie zusammengefasst werden, was schnelle 16-Bit-Anweisungen ergibt. 6809 hat zwei Indexregister und eine Datensatzanzahl von Adressierungsmethoden unter 8-Bit-Prozessoren - 12. Unter den Adressierungsmethoden gibt es eindeutige für 8-Bit-Chips, wie z. B. Index mit automatischer Inkrementierung oder Dekrementierung, relativ zum Befehlszähler, Index mit Offset. 6809 bietet eine interessante Möglichkeit, zwei Arten von Interrupts zu verwenden: Sie können schnelle Interrupts mit teilweiser automatischer Registerspeicherung und Interrupts mit vollständiger Registerspeicherung verwenden - 6809 verfügt über drei Eingänge für Interruptsignale FIRQ (schnell maskierbar), IRQ (maskierbar), NMI (nicht maskierbar). Manchmal ist es auch praktisch, schnelle Anweisungen zum gleichzeitigen Lesen und Setzen aller Flags zu verwenden.

Speicheroperationen erfordern jedoch mehr als 6502 Taktzyklen. Indexregister sind in einer 8-Bit-Welt ungeschickte 16-Bit-Dinosaurier geblieben. Einige Operationen sind aufgrund ihrer Langsamkeit einfach schockierend. Beispielsweise dauert das Übertragen einer Byte-Batterie auf eine andere 6 Zyklen, und der Austausch dauert 6 Zyklen Ihr Inhalt beträgt 8 Zyklen (vergleiche mit 8080, wo ein 16-Bit-Austausch in 4 Zyklen stattfindet)! Aus irgendeinem Grund werden sofort zwei Stapelzeiger angeboten, vielleicht war es der Einfluss der Deadlock-Architektur VAX-11 - in einer 8-Bit-Architektur mit 64 KB Speicher sieht es sehr umständlich aus. Und selbst das Vorhandensein einer Anweisung mit dem interessanten Namen SEX kann nicht alle Probleme von 6809 lösen. Im Allgemeinen ist 6809 bei gleicher Frequenz immer noch etwas schneller als 6502, erfordert jedoch dieselbe Speichergeschwindigkeit. Ich habe es geschafft, die Division für 6809 mit einer 32-Bit-Dividende und einem 16-Bit-Divider (32/16 = 32,16) für etwas mehr als 520 Zyklen durchzuführen, für 6502 konnte ich nicht weniger als 650 Zyklen erreichen. Die zweite Batterie ist ein großer Vorteil, aber andere Merkmale des 6502, insbesondere die invertierte Übertragung, reduzieren diesen Vorteil nur auf die angegebenen 25%. Die Multiplikation mit einer 16-Bit-Konstante erwies sich jedoch als langsamer als die Tabelle 1 für 6502 mit einer Tabelle für 768 Bytes. Mit 6809 können Sie relativ kompakte und schnelle Codes unter Verwendung der Adressierung der installierten Seite (direkte Seite) schreiben, aber diese Adressierung macht die Codes ziemlich verwirrend. Das Wesentliche dieser Adressierung besteht darin, das High-Byte der Datenadresse in einem speziellen Register festzulegen und nur das Low-Byte der Adresse in den Befehlen anzugeben. Das gleiche System mit nur einem festen High-Byte-Wert wird in 6502 verwendet, wo es als Nullseitenadressierung bezeichnet wird. Das Adressieren der installierten Seite ist ein direktes Analogon zur Verwendung des DS-Segmentregisters in x86 nicht nur für Segmente mit 64 KB, sondern auch für Segmente mit nur 256 Byte. Eine andere weit hergeholte Architektur von 6800 ist die Verwendung der Bytereihenfolge von hoch nach niedrig (Big Endian), wodurch 16-Bit-Operationen der Addition und Subtraktion verlangsamt werden. Der 6809 ist nicht vollständig mit den 6800-Befehlscodes kompatibel. 6809 war der letzte 8-Bit-Prozessor von Motorola. In weiteren Entwicklungen wurde beschlossen, stattdessen 68008 zu verwenden.

Es ist davon auszugehen, dass Motorola viel Geld für die Werbung für 6809 ausgegeben hat. Dies gilt auch bei der Erwähnung dieses Prozessors. Um 6809 gibt es viele positive Bewertungen, die sich in einigen Nebeln, Verallgemeinerungen und Unbestimmtheiten unterscheiden. 6809 wurde als 8-Bit-Mikroprozessor-basierter Superprozessor positioniert. Fast Unix-, OS-9- und UniFlex-Betriebssysteme wurden sogar für ihn entwickelt. Apple Macintosh , , 68000. , 6809 – , 6502 ( ) z80 ( ). , , Motorola 6809 6502.

6809 . – Tandy Color Tandy Coco, Dragon-32/64. 80- Tandy Coco , . 6809 - 80- Thomson, - . 6809 : Commodore SuperPET 9000 TUBE- BBC Micro. , , . . , Vectrex, – .


3

680x « » (Halt and Catch Fire – HCF), , , . , (reset). . 6800 , , , .. !

8080, 8085 z80 6809 8-. 6309 8-, Toshiba ( , , 1982) , 6809. , , 6809 . , 1988 Usenet. , , . . , 32- 16- (32/16=16,16) 34 , . 16- 32- 28 . 6 + 3n, n – , , . . . , - . 0. - , 6309 – 8- 64 .

6309 6809, Tandy . , e 6309.

MOS Technology 6502 WDC 65816


. . . :

  • - Motorola, - Intel;
  • MOS Technology;
  • 6502 .

Alles begann damit, dass Motorola sich aus völlig unbekannten Gründen weigerte, die Initiative junger Ingenieure zu unterstützen, die vorschlugen, den allgemein mittelmäßigen Prozessor 6800 zu verbessern. Sie mussten das Unternehmen verlassen und ihre Arbeit bei dem kleinen, aber vielversprechenden Unternehmen MOS Technology fortsetzen, wo sie bald zwei Prozessoren vorbereiteten 6501 und 6502 mit NMOS-Technologie hergestellt. Der erste war mit dem 6800 kompatibel, ansonsten waren sie identisch. Dem Team 6501/6502 gelang es, eine neue Technologie zur Chipherstellung erfolgreich einzuführen, die die Kosten für neue Prozessoren drastisch senkte. 1975 konnte MOS Technology 6502 US-Dollar für 25 US-Dollar anbieten, während der Startpreis für Intel 8080 und Motorola 6800 1974 bei 360 US-Dollar lag. 1975 senkten Motorola und Intel die Preise, lagen aber immer noch nahe bei 100 US-Dollar. Experten von MOS Technology behaupteten, ihr Prozessor sei bis zu viermal schneller als der 6800. Dies erscheint mir zweifelhaft: Der 6502 kann viel schneller mit Speicher arbeiten, aber der zweite 6800-Akku beschleunigte viele Berechnungen erheblich. Ich kann schätzen, dass 6502 im Durchschnitt schneller als nicht mehr als zweimal war. Motorola hat eine Klage gegen seine ehemaligen Mitarbeiter eingereicht - sie haben angeblich viele der technologischen Geheimnisse des Unternehmens genutzt. Während des Prozesses konnte festgestellt werden, dass einer der Ingenieure, die Motorola verlassen hatten, einige vertrauliche Dokumente zum 6800 herausgab, die den Einstellungen ihrer Kollegen widersprachen. Ob es seine eigene Tat war oder einige Führungskräfte hinter ihm standen, ist noch unbekannt. Aus diesem und anderen nicht ganz klaren Gründen zwang Motorola MOS Technology, dessen finanzielle Möglichkeiten sehr gering waren, einen erheblichen Betrag von 200.000 US-Dollar zu zahlen und die Produktion von 6501 einzustellen. Intel handelte in einer ähnlichen Situation mit Zilog überhaupt nicht. Obwohl zugegeben werden muss, dass MOS Technology manchmal zu riskant war, als es versuchte, das große Geld, das Motorola ausgab, für 6800 für seine eigenen Zwecke zu bewerben.

Weiter in der Geschichte erscheinen die legendäre Commodore-Firma und ihr ebenso legendärer Gründer Jack Tramiel, in deren Schatten die Figur des Hauptfinanzierers der Firma stand, die ihre Politik bestimmt - ein Mann namens Irving Gould. Jack erhielt einen Kredit von Irving und zwang MOS Tecchnology mit diesem Geld, um es milde und skrupellos auszudrücken, MOS Tecchnology, Teil des Commodore zu werden. Danach wurde, möglicherweise entgegen den Wünschen von Tramel, der Hood nachgeben musste, die Entwicklung von 6502 praktisch gestoppt, obwohl es 1976 möglich war, Prototypen 6502 mit Betriebsfrequenzen bis zu 10 MHz herzustellen, obwohl eine Nachricht darüber erst nach vielen Jahren von einer Person erschien genannt Bill Mensch (er war in dem Team, das Motorola verlassen hat), der wiederholt laute, aber weitgehend leere Aussagen machte und eine eher zweideutige Rolle im Schicksal von 6502 spielte. Der Chefentwickler von 6502, Chuck Peddle, wurde für immer von der Entwicklung von Prozessoren ausgeschlossen. 6502 wurde weiterhin nicht nur bei Commodore produziert, sondern auch in dem von Bill Mensch, Western Design Center (WDC), gegründeten Unternehmen. Es ist merkwürdig, dass in Zukunft keines der vorherigen 6502-Teams mit ihm zusammengearbeitet hat.

Das Drama um 6502 endete dort nicht. 1980 erschien in Rockwells AIM65 Interactive Magazine ein kurzer anonymer Artikel, der besagt, dass alle 6502 einen gefährlichen Fehler namens JMP (xxFF) tragen. Der Ton des Artikels deutet auf etwas völlig Außergewöhnliches hin. In der Folge wechselte diese Haltung zu Apples Position zu diesem Thema und wurde zu einer Art Mainstream. Obwohl es streng genommen keinen „Bug“ gab. Natürlich scheint eine der Funktionen, die für Mikroprozessoren durchaus angemessen und sogar nützlich ist, für einen Spezialisten, der sich an die komfortablen Prozessoren großer Systeme jener Jahre gewöhnt hat, ein ärgerlicher Fehler zu sein. Tatsächlich wurde dieses Verhalten, das die Gefühle eines Menschen verletzte, in der offiziellen Dokumentation von 1976 und in den Programmierlehrbüchern beschrieben, die vor dem Erscheinen des genannten Artikels erschienen. Der „Fehler“ wurde von Bill Mensch behoben, der vermutlich 1983, dh nach der Veröffentlichung von 65816, 6502 (CMOS 6502) herstellte. Während Intel, Motorola und andere 16-Bit-Prozessoren neuer Generationen herstellten, wurde 6502 nur mikroskopisch verbessert und künstlich teilweise mit sich selbst unvereinbar gemacht. Zusätzlich zur Beseitigung des „Fehlers“ wurden eine Reihe von Änderungen vorgenommen, die insbesondere zu einer Änderung bei der Ausführung mehrerer Anweisungen führten, die pro Schlag langsamer wurden, aber gleichzeitig in einem weit hergeholten akademischen Sinne korrekter wurden. Aber ich muss zugeben, dass einige neue Anweisungen erwartet und nützlich waren. Auf der anderen Seite belegte die überwiegende Mehrheit der neuen Anweisungen nur den Codebereich und fügte den Funktionen von 6502 fast nichts hinzu, wodurch weniger neue Codes für mögliche weitere Upgrades übrig blieben. Commodore und der Japaner Ricoh (Hersteller der beliebtesten NES-Spielekonsolen) haben diese Änderungen nicht akzeptiert. Der Autor dieses Materials selbst ist mehrmals auf das Problem dieses „Fehlers“ gestoßen. Er wusste nichts über ihn und schrieb Programme für Commodore. Dann übertrug er einen von ihnen auf Systeme, in denen ein Befehlssatz 6502 verwendet wurde. Inkompatibilität trat auf, ich musste die Codes ändern, eine bedingte Kompilierung vornehmen. Der Code für 6502 erwies sich als sperriger und langsamer. Dann sprach er dieses Problem im Forum 6502.org an, wo die meisten Teilnehmer aus der Apple-Welt stammen. Ich fragte, ob jemand ein Beispiel geben könnte, wenn der angegebene "Fehler" das Programm zum Absturz brachte. Ich erhielt nur emotionale und allgemeine Kommentare, es wurde kein konkretes Beispiel vorgeschlagen.

Bug !!!

65C02 wurde an viele Firmen lizenziert, insbesondere an NCR, GTE, Rockwell, Synertek und Sanyo. Wird in Apple II verwendet, beginnend mit IIe-Modellen, obwohl viele IIe NMOS 6502 verwendeten. Die 65C02 6512-Variante wurde auch in späteren BBC Micro-Modellen verwendet. Atari verwendete NMOS 6502. Zusätzlich zu CMOS 6502 produzierten Synertek und Rockwell auch NMOS 6502. NMOS 6502 verfügt übrigens über einen eigenen Satz von undokumentierten Anweisungen, deren Art sich vollständig von den „geheimen“ Befehlen 8085 unterscheidet. In 6502 erschienen diese Anweisungen daher als Nebeneffekt der verwendeten Technologie Die meisten von ihnen sind ziemlich nutzlos, aber mehrere, zum Beispiel das Laden oder Entladen von zwei Registern mit einem Befehl gleichzeitig, und einige andere können den Code schneller und kompakter machen.

Es gab andere Versuche, den 6502 zu aktualisieren. Im selben Jahr 1979 erschien ein Artikel, in dem sich Atari-Computer auf die Produktion des 6509-Prozessors vorbereiteten (nicht zu verwechseln mit dem Prozessor mit dem gleichen Namen der später erscheinenden Commodore-Firma), der die Ausführung von Befehlen um 25% und viele neue beschleunigen sollte Anweisungen. Aus Gründen, deren Genauigkeit nicht bekannt ist, fand die Herstellung dieses Prozessors jedoch nicht statt. Commodore führte nur mikroskopische Upgrades durch. Dort wechselten sie insbesondere zur HMOS-Technologie und zur Herstellung statischer Kerne, wodurch die Prozessoren verlangsamt werden konnten. Aus programmtechnischer Sicht ist der 6509-Prozessor am interessantesten, der, wenn auch in sehr primitiver Form, mit Hilfe von nur zwei speziell für diesen Zweck zugewiesenen Anweisungen die Adressierung von bis zu 1 MB Speicher ermöglicht. Im überaus beliebten Commodore 64 und 128 gab es 6510/8510 Prozessoren und in der weniger erfolgreichen 264-Serie 7501/8501. Diese Prozessoren hatten nur 6 bzw. 7 integrierte E / A-Bit-Ports, während der 7501/8501 nicht maskierbare Interrupts nicht unterstützte. Rockwell produzierte die 65C02-Variante mit seinem erweiterten Befehlssatz für 32-Bit-Operationen (ähnlich wie z80-Bit-Befehle). Soweit ich weiß, wurden solche Prozessoren jedoch nicht in Computern verwendet, und diese Bit-Befehle selbst wurden eher nur in eingebetteten Systemen verwendet. Diese Erweiterung wurde übrigens von Bill Mensch produziert.

Die letzte Szene des Dramas mit der Beteiligung von 6502 wurde in der Prävention von Computern auf Basis von 6502 mit einer Frequenz von 2 MHz für den US-Markt in der ersten Hälfte der 80er Jahre angezeigt. Dies betraf den Ausländer-Engländer BBC Micro, dessen Produktionsfirma Acorn eine große Menge Computer für die USA herstellte, aber, wie sich herausstellte, vergebens. Eine Art Schloss funktionierte und die Computer mussten dringend nach europäischen Standards erneuert werden. Die halbamerikanischen, aber formal kanadischen Computer Commodore CBM II (1982) waren trotz einiger Probleme (insbesondere gemäß den Normen für elektrische Geräte) weiterhin zugelassen. Vielleicht aufgrund der Tatsache, dass sie keine Grafikmodi und sogar keinen Farbtext hatten - selbst das stilvolle Porsche-Design konnte dies nicht kompensieren. Der letzte in der Liste der Verlierer war der 100% amerikanische Apple III (1980) - es ist bekannt, dass Steve Jobs, wie das Apple-Management im Allgemeinen, viel getan hat, um diesen Computer zu verhindern. Jobs erforderten eindeutig unmögliche Spezifikationen und Management - unrealistische Fristen. Werden wir jemals ihre Motive herausfinden? Mit dem 1983 veröffentlichten Apple III Plus konnten die Mängel des Apple III behoben werden. Das Apple-Management schloss das Projekt jedoch 1984 stillschweigend ab, da es nicht bereit war, mit dem Macintosh-Computer zu konkurrieren. Erst 1985, als die Ära der 8-Bit-Technologie zu beginnen begann, erschien der Commodore 128, der 6502 in einem seiner Modi mit einer Taktrate von 2 MHz verwenden konnte. Aber auch hier stellte sich heraus, dass es sich eher um einen Witz handelte, da dieser Modus praktisch nicht unterstützt wurde und es praktisch keine Programme dafür gab. Erst in der zweiten Hälfte der 80er Jahre begannen in den USA Konsolenbeschleuniger für Apple II und seit 1988 das Apple IIc + Modell mit 4 MHz Prozessor zu produzieren. Warum ist das passiert? Vielleicht, weil 6502 mit 2 oder 3 MHz (und solche wurden bereits Anfang der 80er Jahre hergestellt) bei einer Reihe von Aufgaben und insbesondere bei Spielen erfolgreich mit Systemen konkurrieren konnte, die auf Intel 8088 oder Motorola 68000 basieren. 1991 schloss die Commodore Corporation Ein interessantes, wenn auch verspätetes Projekt C65, das auf einem 4510-Prozessor mit einer Frequenz von 3,54 MHz basiert. 4510 - dies ist der schnellste 6502, der erst 1988 hergestellt wurde. Er wurde schließlich erwähnt und hat bereits eine frühere Optimierung der Zyklen erwähnt, die eine 25% ige Geschwindigkeitssteigerung ergab. Somit ist der Prozessor in C65 in der Geschwindigkeit nahe an Systemen mit 6502 bei 4,5 MHz. Überraschenderweise wurde dieser schnellste 6502 mit einem erweiterten Befehlssatz (in einigen Details erwies sich diese Erweiterung als erfolgreicher als in 65816) seitdem nirgendwo mehr verwendet.

C128 und Apple III Plus verfügten über eine Speicherverwaltungseinheit (Memory Management Unit, MMU), die die Verwendung mehrerer Stapel und Nullseiten für mehr als 64 KB Speicher usw. ermöglichte. In C128 wurde die MMU künstlich so angepasst, dass sie nur mit 128 KB Speicher funktioniert. Für BBC Micro wurden Konsolen mit 6502 bei 3 MHz (1984) und 4 MHz (1986) hergestellt.


Anti-Werbung - mehrere Porsche-PETs in der Wohnung des Bösewichts aus der Perle des Nils (1985) - die Ära nur für Apple in Hollywood ist noch nicht angebrochen

Nun ein paar Worte zum 6502-Befehlssystem. Das Hauptmerkmal dieses Prozessors ist, dass er fast so schnell wie möglich hergestellt wurde, praktisch ohne zusätzliche Taktzyklen, die in den Prozessoren 8080/8085 / z80 / 8088/68000 besonders zahlreich sind. Tatsächlich war es die Ideologie der 6502 RISC-Architekturprozessoren, die später und unter direktem Einfluss auftauchte. Dieselbe Ideologie dominiert, beginnend mit 80486, und unter Intel-Prozessoren. Darüber hinaus reagierte 6502 so schnell wie möglich auf Unterbrechungen, was es in einigen eingebetteten Systemen sehr nützlich machte. Der 6502 verfügt über eine Batterie und zwei Indexregister. Darüber hinaus können die ersten 256 Byte Speicher in speziellen Befehlen entweder als schnellerer Speicher oder als Satz von 16-Bit-Registern (die in ihrer Funktionalität fast identisch mit den BC- und DE-Registern in 8080 / z80 sind) verwendet werden ziemlich leistungsfähige Adressierungsmethoden. Einige arithmetische Anweisungen (Verschiebungen, Drehung, Inkrementierung und Dekrementierung) können direkt mit dem Speicher verwendet werden, ohne Register zu verwenden. Es gibt keine 16-Bit-Anweisungen - es handelt sich um einen 100% 8-Bit-Prozessor. Alle wichtigen Flags mit Ausnahme der charakteristischen Intel Parity Flag-Architektur werden unterstützt. Es gibt noch ein paar ungewöhnliche Flaggen des nutzlosen 10. Modus. Intel- und Motorola-Prozessoren verwenden spezielle Korrekturanweisungen für die Arbeit mit Dezimalzahlen, und 6502 kann in den 10. Modus wechseln, wodurch der Geschwindigkeitsvorteil bei 10 Zahlen noch bedeutender ist als bei binären. Es ist sehr beeindruckend, dass für die 6502-Tabellenmultiplikation von 8-Bit-Operanden mit einem 16-Bit-Ergebnis weniger als 30 Taktzyklen erzielt werden, wobei die Größe der Hilfstabelle 2048 Byte beträgt. Langsam erzeugt 6502 Massenkopiervorgänge des Speichers - ab 14 Taktzyklen pro Byte.

6502 kann parallel mit einem anderen Gerät arbeiten, beispielsweise einem anderen 6502. Soweit ich weiß, wurden solche Systeme mit zwei Prozessoren nie hergestellt. Anstelle des zweiten Prozessors wurde normalerweise ein Videocontroller verwendet, der den Speicher mit 6502 gemeinsam nutzte.

65816 wurde 1983 von WDC veröffentlicht. Interessanterweise erhielt Bill Mensch von Apple Spezifikationen für den neuen Prozessor. Dies war natürlich ein großer Schritt nach vorne, aber offensichtlich verspätet und mit großen architektonischen Mängeln. 65816 wurde von niemandem als Konkurrent für die Hauptprozessoren von Intel oder Motorola angesehen - es war bereits ein sekundärer Außenseiter, der bereits darauf programmiert war, einen weiteren Positionsverlust herbeizuführen. 65816 hatte zwei wichtige Vorteile - es war relativ billig und fast kompatibel mit dem immer noch sehr beliebten 6502. In den folgenden Jahren versuchte Bill Mensch nicht einmal, seine Idee zu verbessern, eine Schleifenoptimierung durchzuführen und die Adresse der Nullseite durch die erweiterte Seite unter Verwendung des Z-Registers zu ersetzen ( Dies geschah in 4510), um zumindest die Multiplikation hinzuzufügen ... WDC erhöhte nur die maximalen Taktfrequenzen und erreichte Mitte der 90er Jahre 14 MHz (dieser Prozessor wurde im beliebten Beschleuniger für C64 SuperCPU mit einer Frequenz von 20 MHz verwendet). Allerdings bietet WDC auch jetzt (2019!) Aus irgendeinem Grund 65816 nur auf denselben 14 MHz an. 65816 kann bis zu 16 MB Speicher belegen, die hierfür verwendeten Adressierungsmethoden sind jedoch alles andere als optimal. Beispielsweise können Indexregister nur 8- oder 16-Bit sein, der Stapel kann nur in den ersten 64 KB Speicher abgelegt werden, nur dort können Sie die bequeme Kurzadressierung der installierten Seite (direkte Seite - Verallgemeinerung der Nullseite) verwenden und mit einem Speicher über 64 KB arbeiten vergleichsweise ungeschickt, ... 65816 hat eine 16-Bit-ALU, aber einen 8-Bit-Datenbus, so dass es in arithmetischen Operationen nur etwa 50% schneller als 6502 ist. Trotzdem wurde 65816 in einer Menge von mehr als einer Milliarde veröffentlicht. Natürlich ergänzen eine Reihe von Befehlen 65816 die Lücken in der 6502-Architektur deutlich, beispielsweise Befehle zum Massenkopieren von Speicher für 7 Taktzyklen pro Byte. Sie können auch hinzufügen, dass 65816 fast alle Anweisungscodes verwendet (255 von 256). Der letzte nicht verwendete Code ist für lange zukünftige Anweisungen gedacht, die nie erschienen sind.

Apple IIx, an dessen Entwicklung Steve Wozniak aktiv beteiligt war, sollte 65816 verwenden, aber es war nur möglich, die Produktion dieses Prozessors im Jahr 1984 einzurichten, und die erste Charge von 65816 war defekt, was zu übermäßigen Verzögerungen führte und infolgedessen das gesamte Projekt geschlossen wurde.

Es gibt auch eine Option 65816 65802, die einen 16-Bit-Adressbus verwendet und mit 6502-Anschlüssen kompatibel ist. Es gab Upgrades für Apple II, die auf diesem Prozessor basierten, aber mit einem solchen Upgrade können Sie nur mit speziell dafür geschriebenen Programmen eine kleine Beschleunigung erzielen.

6502 wurde in einer großen Anzahl von Computersystemen verwendet, von denen die beliebtesten 8-Bit-Commodore, Atari, Apple, NES sind. Interessanterweise wurde der 6502 als Tastaturcontroller im Commodore Amiga-Computer verwendet, und zwei 6502 mit 10 MHz wurden im Hochleistungs-Apple Macintosh IIfx verwendet. Hier kann man nur die Atari-Spielekonsolen erwähnen, die von 1977 bis 1996 hergestellt wurden - sie wurden ungefähr 35 Millionen Mal verkauft! 65816 wurde im recht beliebten Apple IIgs-Computer, in der Super NES-Spielekonsole und auch im seltenen englischen Computer Acorn Communicator verwendet.

1984 erschien im Byte-Magazin ein Artikel über eine schlechte Kopie des Apple-Computers [hergestellt in der UdSSR] vor dem Hintergrund von Bildern mit roten Bannern, Lenin und marschierenden Soldaten. In diesem Artikel wurde ein merkwürdiger Preis für diesen Computer genannt - 17.000 US-Dollar (dies ist eine absurde Zahl, der tatsächliche Preis lag bei 4.000 Rubel) und ironischerweise darauf hingewiesen, dass die sowjetischen Hersteller den Preis drastisch senken müssten, wenn sie ihr Produkt im Westen verkaufen wollten. Achat wurde hauptsächlich in der Schulbildung verwendet. Ältere Achatmodelle waren fast 100% Apple-kompatibel] [und hatten einige ziemlich nützliche Erweiterungen.

Sie können nur versuchen, sich vorzustellen, was passieren würde, wenn sich 6502 im gleichen Tempo wie seine Konkurrenten entwickeln könnte. Es scheint mir, dass die schrittweise Übertragung des Nullseiten-Speichers in Register und die schrittweise Erweiterung des Befehlssystems bei gleichzeitiger Optimierung der Zyklen es dem 6502-Terminator ermöglichen würden, in Bezug auf die Geschwindigkeit bis Anfang der 90er Jahre an der Spitze zu bleiben. Die Einführung von Modus 16 und dann 32 Bit würde die Verwendung großer Speichermengen und schnellerer Befehle ermöglichen. Könnten seine Konkurrenten etwas zu widerlegen haben?

Ich möchte mit einigen allgemeinen philosophischen Überlegungen enden. Warum war der 6502 gebremst und hatte keine viel bessere Zukunft? Vielleicht aufgrund der Tatsache, dass er wirklich große Firmen unter Druck setzen und eine völlig neue Realität schaffen konnte. Aber war das 6502-Team dafür eingerichtet? Vielmehr wollten sie nur einen besseren Prozessor entwickeln.

Bereits viel später, zu Beginn des 21. Jahrhunderts, wurde das Unternehmen Lexra, das fünf Jahre lang verschiedene innovative Prozessoren herstellte, mit Hilfe von Klagen aus weit hergeholten Gründen besiegt. Diese traurige Geschichte erinnert ein wenig an das, was mit MOS Technology passiert ist.

Zilog z80


Dieser Prozessor wurde zusammen mit 6502 zum Hauptprozessor der ersten Personal Computer. Es gibt keine dramatischen Ereignisse in der Geschichte seines Auftretens und seiner Verwendung. Es ist nur eine Intrige, dass Zilog die nächste Generation von Prozessoren nicht hergestellt hat. Z80 begann 1976 zu produzieren und seine Varianten werden noch produziert. - z80.

. 6502, Z80, (Federico Faggin), , Intel. z80 Z8000 80- , . , , . , , z80, Zilog Z8.

Z80 – , 8080. . , 8080 , . , Zilog 8080, , z80. Intel x86 GNU, - . Z80 , Intel 8086. , z80 , , 8086, . z80, 6502, , .. , « », « », – , 8086, 6800 PDP-11 .

z80 21 , . EXX, 48 , BC, DE, HL , 4 ! 32- ARM 6 . , . :

  • 16- c 16- 15 ;
  • 8 ;
  • , BC, DE, SP, IX,IY, HL;
  • , - 8- ;
  • , ;
  • (JR);
  • .


, . 16- IX IY, . , IX IY Z80 6800 Z80! , Z80 - , .

8080 z80 . 16- ADD , , -.

8080. z80 , ( 8080) . 2, .

Z80 , CMOS, . , 16- I IY. Z80 , , .

, z80 , 8080 16-. z80 - , , z80 4-! z80 8080 – .

z80 6502, . , . z80 , . z80 4 , 6502 6809 1.3 . , , 6502 2.4 2.6 , z80. . , , z80 – , , . , z80 6502 2.2 . , 4- . z80 . z80, PUSH, 6502, . z80 1.5 . , 32- 16- z80 1.7 . , . , , ZX Spectrum c z80 3.5 MHz 64 6502 1 . , z80 6502 , , - Amstrad CPC/PCW 3.2 , 4. 6502 . , , , z80 25-40% , 6502. , 2 z80 6 , 6502 2 .

Z80 . Tandy TRS-80, — ZX Spectrum, Amstrad CPC PCW. , Amstrad PCW 90- 90-. MSX. C128 z80, – , 1985 , 8- z80, 2 , 1.6 . , 8080 70-. CP/M .


90-, z80 , ZX Spectrum

z80 – BBC Micro c TUBE- z80B 6 , 1984. , , « ». Apple ][ 1979. Z80H 8 . , Microsoft 1980 . Amstrad PCW16, 1994, CMOS Z80 16 .

MSX TurboR (1990) R800, z80. R800 16- 32- . 16- , 768 . , R800 — Z800, , , 7.16 M. , R800 28.64 !

Zilog Z80 . Z80 2.5 , Z80A 4 – , Z80 . Z80B 1980, , , BBC Micro (1989) Sam Coupé. Z80H 80- 8 – . , Zilog , , , Z80 9 , , , .

z80 Zilog , 16- Intel. 1978, 8086 Z8000, z80. Intel , , Motorola – 68000 Z8000, Z8000 , , Unix. , IBM Z8000 IBM PC, Zilog Exxon, IBM. - Z8000 Zilog 1980 Exxon. 32- . 1986 Z80000, Z8000, . , , Zilog , , Zilog - , Exxon.

, Zilog , Z80, Intel, . , , AMD, Cyrix, VIA.

Z80 1985, Z800. , Zilog Z80000 Z800 . 1986, z80000 Z280, Z800, , , , – Intel 486DX2 486DX4 . Z280 , . , – Z280, , , . , Z280 Intel 80286, , 50% 80286 . , Z280 5 , .

Hitachi, 1985 -Z80, HD64180, Intel 80186, 512 , , Z80 . HD64180 . Zilog HD64180 Z64180. Zilog , , 1 1986 . Z180 , 33 . MSX2, . , Z280 Z180 , 80286 80186 . 1994 Z180 32- Z380, z80 Intel 80386 Motorola 68020 – Zilog 10 . 21 Z180 - eZ80 6502. , , , DVD-, ,…

Texas Instruments TMS9900


. 16- . 1976 . (Big Endian). Motorola 6800 68000 IBM/370. (Little Endian).

TMS9900 16- : , . 32 16 . - 6502. , TMS9900 . Z80, . , , (), , , . RISC- . , . . , . TMS9900 , 16.


16- –

. . X . , 8 , – 14, (16*16=32) 52 (32/16=16,16) 124 70-.

TMS9900 -5, 5 12 – . 1979 IBM, IBM PC. TMS9900 ( 64 , , ) Intel 8088. Texas Instruments TMS9900 8- , TMS-9980, 33% .

TMS9900 TI99/4 TI99/4A, «» Commodore VIC-20 1983. , Texas Instruments 1983 $49 ( 1979 $1150!) . Commodore+4, 1986, $49 1989 . T99/4A 1984, , - . 16-. 256 (!) 16- . - 8- . 16- -0010. , TI99/4 TI99/4A 3 – -0010.

TI-99/4 TI99/4A TMS9918, MSX, . Yamaha , , TI-99/4 TI99/4A!

TI99/4 – , .

DEC PDP-11


70- 10- DEC. DEC , IBM , IBM . . PDP-11 . PDP-11 70- 90-. . , -60/81/85, -1/2/3, -0010/0011 (0010 – , ).

, DEC VAX-11, . 70- DEC PDP-11, , 16- . PDP-11 70-.

PDP-11 , , , LSI-11, F-11, J-11. 70- DEC T-11. , , , , . Atari. T-11 , z80. 18011, 18012, 18013,… DEC, DEC. .

PDP-11 , , , . PDP-11 Motorola 68000.

PDP-11 16-. 8 ( – R7) – 16 , ( ) 16- , 1- 3- 16- . ( , , XOR) – . – . 80- , Intel x86 -. PDP-11, . , , 90- . , , - . PDP-11 , ,

MOV @(R0)+,@-(R1) 

bedeutet dasselbe wie der C / C ++ - Sprachoperator

 **–r1 = **r1++; 

, wobei r0 und r1 als deklariert sind

 signed short **r0, **r1; 

Ein weiteres Beispiel, ein Befehl

 MOVB @11(R2),@-20(R3) 

entspricht

 **(r3-20) = **(r2+11); 

wobei r2 und r3 als deklariert sind

 char **r2, **r3; 

In den heutigen populären Architekturen kann ein Team nicht auf ein solches Team verzichten, wahrscheinlich werden mindestens 10 Teams benötigt. Sie können die Adresse auch relativ zum aktuellen Wert des Befehlszählers abrufen. Ich werde ein weiteres Beispiel mit einfacherer Adressierung geben. Das Team

 ADD #16,11(R4) 

in Intel x86 kann Architektur abgebildet werden

 ADD [BX+11],16 

In DEC-Assemblern ist es üblich, Operanden von links nach rechts zu schreiben, im Gegensatz zu Intel, wo sie von rechts nach links schreiben. Es besteht Grund zu der Annahme, dass der GNU-Assembler für x86 unter dem Einfluss des PDP-11-Assemblers erstellt wurde.

Multiplikations- und Divisionsbefehle sind nur symbolisch und nicht auf allen Prozessoren verfügbar. Die Dezimalzahlarithmetik ist ebenfalls optional - dies ist die sogenannte kommerzielle DEC-Terminologie-Arithmetik. Als Kuriosität der vollständigen Orthogonalität werde ich ein Beispiel für einen Befehl geben

 MOV #11,#22 

was nach der Ausführung wird

 MOV #11,#11 

- Dies ist ein Beispiel für die Verwendung einer Sofortkonstante als Operand. Ein weiteres merkwürdiges Team ist der einzigartige MARK-Befehl, dessen Code auf den Stapel geschoben werden muss und niemals explizit verwendet werden kann. Das Aufrufen von Routinen in der PDP-11-Architektur ist ebenfalls etwas eigenartig. Der entsprechende Befehl speichert zuerst das zugewiesene Register (kann ein beliebiges sein) auf dem Stapel, speichert dann den Befehlszähler in diesem Register und schreibt erst dann den neuen Wert in den Befehlszähler. Der Rückgabebefehl aus dem Unterprogramm muss das Gegenteil bewirken und wissen, welches Register beim Aufrufen des Unterprogramms verwendet wurde. Mit dem Befehlszähler als normalem Register können sehr seltsame und unvorhersehbare Effekte erzielt werden.

Es ist interessant, dass sich unter PDP-11-Programmierern eine Kultur der direkten Arbeit mit Maschinencodes entwickelt hat. Programmierer könnten beispielsweise beim Debuggen ohne Disassembler arbeiten. Oder schreiben Sie kleine Programme direkt in den Speicher, ohne sie zusammenzusetzen!

Natürlich unterscheiden sich die Teamzeiten nicht in zu schnellen Eigenschaften. Es war einmal überraschend herauszufinden, dass auf dem Haushaltscomputer des BK der Übertragungsbefehl von Register zu Register bis zu 12 Zyklen dauert (10 Zyklen bei Verwendung des Codes aus dem ROM) und Befehle mit zwei Operanden mit doppelter indirekter Adressierung für mehr als 100 Zyklen ausgeführt werden. Z80 führt eine 16-Bit-Registerübertragung für 8 durch. Die Langsamkeit des BC wird jedoch nicht so sehr durch den Prozessor verursacht, sondern durch die schlechte Qualität des inländischen Speichers, unter dessen Merkmalen der BC angepasst werden musste. Wenn ein ausreichend schneller Speicher verwendet wurde, sendete der BC 16 Registerbits auch für 8 Taktzyklen. Früher gab es viele Kontroversen, was ist schneller als BC oder Spectrum? Es muss sofort gesagt werden, dass der Spectrum einer der schnellsten 8-Bit-Massencomputer ist, wenn die oberen 32 KB Speicher verwendet werden. Daher ist es nicht überraschend, dass das Spektrum schneller als das BC ist, aber nicht viel. Und wenn der BC mit einem Speicher ohne Bremsen arbeiten würde, wäre er wahrscheinlich etwas schneller.

Die Codedichte ist auch eher eine Schwachstelle der PDP-11-Architektur. Die Anweisungscodes sollten ein Vielfaches der Länge des Maschinenworts sein - 2 Bytes, was besonders unangenehm ist, wenn mit Byteargumenten oder einfachen Befehlen wie dem Setzen oder Zurücksetzen eines Flags gearbeitet wird.

Interessant sind Versuche, einen Personal Computer auf Basis der PDP-11-Architektur herzustellen. Einer der ersten PCs der Welt, der nur wenig später als Apple und Commodore PET und etwas früher als der Tandy TRS-80 erschien, war der Terak 8510 / a mit Schwarzweißgrafiken und der Möglichkeit, eine unvollständige Version von Unix herunterzuladen. Dieser PC war ziemlich teuer und wurde, soweit ich weiß, nur im US-amerikanischen Hochschulsystem verwendet. Seit 1978 wurde der Computer in Form eines Bausatzes zur Montage des Heathkit H11 hergestellt. DEC selbst hat ebenfalls versucht, einen eigenen PC zu bauen, allerdings sehr uneinheitlich. DEC hat zum Beispiel einen PC herausgebracht, der auf dem z80 und 8088 basiert und offensichtlich eher gegen seine Hauptentwicklungen spielt. Personal, das auf der PDP-11 DEC PRO-325/350/380-Architektur basiert, hatte einige eher künstliche Inkompatibilitäten mit der zugrunde liegenden Architektur, was es schwierig machte, einen Teil der Software zu verwenden. Die beste Personalisierung von Mini-Computertechnologien war in der UdSSR, wo BK-, DVK- und CC-NTs hergestellt wurden ... Electronics-85 ist übrigens ein ziemlich genauer Klon des DEC PRO-350. Darüber hinaus wurde der CP1600-Prozessor, ähnlich der PDP-11-Architektur, in Intellivision-Spielekonsolen verwendet, die in den frühen 80er Jahren beliebt waren.


Inländischer 16-Bit-Heimcomputer (1985) - fast PDP-11-kompatibel

K1802BM2, das im DVK verwendet wurde, ist ungefähr doppelt so schnell wie K1801BM1, K1801BM3 ist sogar noch schneller und schneller als Intel 8086.

Bei älteren PDP-11-Modellen und in der Nähe befindlichen Haushaltscomputern kann der Prozessor bis zu 4 MB Speicher adressieren, einem Programm können jedoch nicht mehr als 64 KB zugewiesen werden. In Bezug auf die Geschwindigkeit liegen diese Prozessoren auch in Bezug auf die Anzahl der Operationen pro Megahertz nahe bei 8086, obwohl sie immer noch langsamer sind.

CPU für DEC VAX-11


VAX-11-Systeme waren in den 80er Jahren sehr beliebt, insbesondere im Hochschulbereich. Jetzt ist es schwierig, einige der in Büchern dieser Jahre beschriebenen Konzepte zu verstehen, ohne die Architektur dieser Systeme zu kennen. Die VAX-11 waren teurer als die PDP-11, aber sie waren stärker auf universelle Programmierung ausgerichtet und immer noch deutlich billiger als IBM / 370-Systeme. Für die VAX-Architektur wurde Mitte der 80er Jahre ein V-11-Prozessor hergestellt, und bis zu diesem Zeitpunkt wurden Prozessorbaugruppen verwendet.

Die VAX-11-Architektur ist 32-Bit, sie verwendet 16 Register, unter denen sich wie beim PDP-11 ein Befehlszähler befindet. Es sollen zwei Stapel verwendet werden, von denen einer zum Speichern von Hilfsrahmen verwendet wird. Zusätzlich wird eines der Register zugewiesen, um mit Argumenten aufgerufener Funktionen zu arbeiten. Somit sind 3 von 16 Registern für Stapel zugeordnet. Das VAX-11-Befehlssystem überrascht mit seiner Größe und dem Vorhandensein sehr seltener und häufig eindeutiger Befehle, z. B. zum Arbeiten mit Bitfeldern oder verschiedenen Arten von Warteschlangen, zum Berechnen der CRC, zum Multiplizieren von 10 Zeilen ... Viele Befehle sind in Versionen mit drei Adressen erhältlich (beide ARM) und in zwei Adressen (als x86), aber es gibt Befehle mit vier Adressen, zum Beispiel die erweiterte Aufteilung von EDIV. Natürlich gibt es Unterstützung für die Arbeit mit reellen Zahlen.

Aber der VAX-11 ist für seine Klasse und seinen Preis ein sehr langsames System. Selbst der supereinfache 6502 mit 4 MHz könnte den langsamsten der VAX-11/730-Familie überholen, und die schnellsten VAX-11-Systeme - riesige Schränke und „ganze Möbelsets“ - erreichen das Leistungsniveau der ersten PC-ATs. Als der 80286 erschien, wurde klar, dass die Tage des VAX-11 gezählt waren und selbst das Bremsen mit der Einführung von Systemen auf Basis des 80286 nichts mehr grundlegend ändern konnte. Die unkomplizierteren Briten aus Acorn, die 1985 ARM hergestellt hatten, ohne etwas zu verbergen, sagten, ARM sei viel billiger und spürbar schneller. VAX-11 blieb jedoch bis in die frühen 90er Jahre relevant und hatte immer noch einige Vorteile gegenüber einem PC, insbesondere schnellere Systeme für die Arbeit mit Festplatten.

VAX-11 ist wahrscheinlich das letzte Massensystem, bei dem die Bequemlichkeit der Arbeit im Assembler als wichtiger als die Geschwindigkeit angesehen wurde. In gewisser Weise hat sich dieser Ansatz auf moderne, beliebte Skriptsprachen verlagert.

Das Foto zeigt den VAX-11/785 - dies ist auch ein Computer (1984) - der schnellste unter den VAX-11, vergleichbar in der Leistung mit dem IBM PC AT oder ARM Evaluation System

Überraschenderweise gibt es nur sehr wenig Literatur zu VAX-11-Systemen. Als ob ein seltsames Gesetz über das Vergessen in Kraft wäre. Mehrere politiknahe Episoden, die mit der Geschichte der UdSSR korrelieren, sind mit der Geschichte dieser Architektur verbunden. Es ist möglich, dass die tatsächliche Ablehnung der Entwicklung der PDP-11-Architektur durch ihre Billigkeit und den Erfolg ihres Klonens in der Sowjetunion verursacht wurde. Das Klonen von VAX-11 kostete eine Größenordnung großer Ressourcen und führte zu einer Sackgasse. Das Interesse an der VAX-11 wurde beispielsweise durch Kundgebungen wie den berühmten Kreml Vax am 1. April 1984 geweckt, bei denen der damalige Führer der UdSSR, Konstantin Chernenko, anlässlich der Verbindung zum Usenet-Netzwerk anbot, Wodka zu trinken. Ein weiterer Witz war, dass einige VAX-11-Chips mit einer Nachricht in gebrochenem Russisch bedruckt waren, wie gut der VAX-11 ist. :) :)

Einige VAX-11-Modelle wurden Ende der 80er Jahre in der UdSSR geklont, aber nur sehr wenige solcher Klone wurden hergestellt und fanden fast nie Verwendung.

Für die Verwendung über das Netzwerk stehen mehrere VAX-11-Systeme zur Verfügung. Und dies vergleicht sie günstig mit den IBM / 370-Systemen, mit denen sie konkurrierten.

Intel: 8086 bis 80486


Natürlich ist 8086 einer der besten Prozessoren, die in den 70er Jahren hergestellt wurden, sowie der billigere, fast analoge 8088. Die Architektur dieser Prozessoren zeichnet sich angenehm durch das Fehlen mechanischer Anleihen und die Einhaltung abstrakter Theorien aus, durchdachte und ausgewogene Architektur, ausgewogen und fokussiert Weiterentwicklung. Unter den Mängeln der x86-Architektur kann man von einer gewissen Umständlichkeit und einer Tendenz zu einem starken Anstieg der Anzahl von Anweisungen sprechen.

Eine der genialen Designlösungen von 8086 war die Erfindung von Segmentregistern. Damit wurden sozusagen zwei Ziele erreicht: die „freie“ Portabilität von Programmen mit einer Größe von bis zu 64 KB (dies war bis Mitte der 80er Jahre eine sehr anständige Menge an Computerspeicher für ein Programm) und die Adressierbarkeit von bis zu 1 MB Adressraum. Sie können auch feststellen, dass der 8086 wie der 8080 oder der z80 einen speziellen Adressraum für E / A-Ports mit einer Größe von 64 KB hat (y 8080 und 8085, dieses Volume ist 256 Byte). Es gibt nur vier Segmentregister: für Code, für Stapel und zwei für Daten. Somit stehen 64 * 4 = 256 KB Speicher für die schnelle Verwendung zur Verfügung, dies war jedoch bereits Mitte der 80er Jahre der Fall. Tatsächlich gibt es kein Problem mit der Größe des Codes, da Sie die sogenannten langen Aufrufe von Unterprogrammen zum Laden und Speichern der vollständigen Adresse aus zwei Registern verwenden können. Die Größe eines Unterprogramms ist nur auf 64 KB begrenzt - dies reicht für viele moderne Anwendungen aus. Die Unmöglichkeit, Datenarrays mit einer Größe von mehr als 64 KB schnell zu adressieren, führt zu einem gewissen Problem. Wenn Sie solche Arrays verwenden, müssen Sie bei jedem Aufruf das Segmentregister und die Adresse selbst laden, wodurch sich die Arbeitsgeschwindigkeit mit so großen Arrays um ein Vielfaches verringert.

Segmentregister sind so implementiert, dass ihre Anwesenheit in Maschinencodes kaum wahrnehmbar ist, was es einfach machte, sie zu gegebener Zeit abzulehnen.

Die 8086-Architektur behielt ihre Nähe zur 8080-Architektur bei, was einen vergleichsweise geringen Aufwand beim Übertragen von Programmen von 8080 (oder sogar z80) auf 8086 ermöglichte, insbesondere wenn der Quellcode der Programme verfügbar war.

Die Teams 8086 unterscheiden sich nicht in der hohen Ausführungsgeschwindigkeit, sind jedoch mit Wettbewerbern vergleichbar, beispielsweise dem Motorola 68000, das ein Jahr später erschien. Eines der neuen Produkte, das den im Allgemeinen ruhigen 8086 leicht beschleunigt, war die Wende der Teams.

Der 8086 verwendet acht 16-Bit-Register, von denen einige als Zwei-Byte-Register und einige als Indexregister verwendet werden können. Somit sind die 8086-Register etwas heterogen, aber sie sind gut ausbalanciert und die Register sind sehr bequem zu verwenden. Diese Heterogenität ermöglicht es Ihnen übrigens, dichtere Codes zu haben. Der 8086 verwendet dieselben Flags wie der 8080 sowie einige neue. Beispielsweise wurde ein Flag angezeigt, das für die PDP-11-Architektur typisch ist - schrittweise Ausführung.

Mit 8086 können Sie sehr interessante Adressierungsmodi verwenden. Beispielsweise kann eine Adresse aus der Summe zweier Register und einer konstanten 16-Bit-Mischung bestehen, der der Wert eines der Segmentregister überlagert ist. Von der Summe der Adressen können nur zwei oder sogar ein Begriff weggelassen werden. Dies funktioniert bei PDP-11 mit einem Befehl nicht. Die meisten 8086-Befehle erlauben nicht beide Operanden vom Typ Speicher, einer der Operanden muss ein Register sein. Es gibt jedoch Zeichenfolgenbefehle, die nur wissen, wie man mit dem Speicher unter Verwendung von zwei Adressen arbeitet. Mit String-Befehlen können Sie schnell Blockkopien (17 Kennzahlen pro Byte oder Wort) durchführen, suchen, füllen, laden und vergleichen. Darüber hinaus können Zeichenfolgenbefehle beim Arbeiten mit E / A-Ports verwendet werden. Die Idee von 8086, Befehlspräfixe zu verwenden, ist sehr interessant, so dass häufig sehr nützliche zusätzliche Funktionen verwendet werden können, ohne dass die Befehlscodierungsschemata wesentlich kompliziert werden.

8086 hat eine der besten unter allen Computersystemen Organisation der Arbeit mit dem Stapel. Mit nur zwei Registern (BP und SP) können Sie mit 8086 alle Probleme lösen, wenn Sie Aufrufe von Routinen mit Parametern organisieren.

Unter den Teams gibt es symbolische und vorzeichenlose Multiplikation und Division. Es gibt sogar eindeutige Dezimalanpassungsbefehle für Multiplikations- und Divisionsbefehle. Es ist schwer zu sagen, dass im 8086-Befehlssystem eindeutig etwas fehlt. Eher das Gegenteil. Das Teilen einer 32-Bit-Dividende in einen 16-Bit-Teiler, um einen privaten 32-Bit- und einen 16-Bit-Rest zu erhalten, kann bis zu 300 Taktzyklen erfordern - nicht besonders schnell, aber um ein Vielfaches schneller als eine solche Division auf 8-Bit-Prozessoren (außer 6309). und in der Geschwindigkeit mit 68000 vergleichbar. Die Division durch x86 hat eine unerwartete Eigenschaft - sie ändert die Zeichenflaggen unvorhersehbar ...

Es ist erwähnenswert, dass in der x86-Architektur das vom 8080 geerbte XCHG-Team erhalten blieb, was verbessert wurde. Darüber hinaus verwendeten spätere Prozessoren die Anweisungen XADD, CMPXCHG und CMPXCHG8B, die auch einen atomaren Austausch von Argumenten durchführen können. Solche Anweisungen sind eines der Merkmale von x86. Es ist schwierig, sie auf Prozessoren anderer Architekturen zu finden.

Wir können zusammenfassen, dass der 8086 ein sehr erfolgreicher Prozessor ist, der sowohl die Bequemlichkeit der Programmierung als auch die Bindung an Speicherbeschränkungen kombiniert, die für ihre Zeit charakteristisch sind. 8086 wurde relativ selten verwendet, wodurch der billigere 8088 den Ehrenplatz erhielt, der erste Prozessor für die Haupt-PC-Architektur unserer Zeit, die IBM PC-Architektur, zu sein. Der 8088 verwendete einen 8-Bit-Datenbus, was ihn etwas langsamer machte, aber es ermöglichte, darauf basierende Systeme zu bauen, die für Kunden zugänglicher waren.

Interessanterweise weigerte sich Intel grundsätzlich, Verbesserungen an seinen Prozessoren vorzunehmen, und zog es vor, stattdessen die nächsten Generationen zu entwickeln. Einer der größten zweiten Subunternehmer von Intel (NEC), das japanische Unternehmen NEC, das Anfang der 80er Jahre viel größer war als Intel, entschied sich für die Verbesserung der 8088 und 8086 und veröffentlichte V20- und V30-Prozessoren, die mit ihnen am Sockel kompatibel und bis zu 30% schneller sind. NEC bot Intel sogar an, sein Subunternehmer zu werden! Intel leitete stattdessen eine Klage gegen NEC ein, die jedoch nicht gewinnen konnte. Aus irgendeinem Grund wurde dieser große Showdown zwischen Intel und NEC von Wikipedia völlig ignoriert.

80186 und 80286 erschienen 1982. Daher kann davon ausgegangen werden, dass Intel zwei nahezu unabhängige Entwicklungsteams hatte. 80186 ist ein 8086, der durch mehrere Befehle und kürzere Zeitabläufe sowie mehrere für die x86-Architektur typische integrierte Schaltkreise verbessert wurde: Taktgenerator, Zeitgeber, DMA / DAP, Interrupt-Controller, Verzögerungsgenerator usw. Ein solcher Prozessor scheint die Produktion erheblich zu vereinfachen Computer, die darauf basieren, aber da sich herausstellte, dass der integrierte Interrupt-Controller aus irgendeinem Grund nicht mit dem IBM-PC kompatibel ist, wurde er auf einem PC fast nie verwendet. Der Autor kennt nur das BBC Master 512-System, das auf dem BBC Micro-Computer basiert und nicht die eingebauten Schaltkreise verwendet, auch nicht den Timer. Es gab jedoch mehrere weitere Systeme, die 80186 verwendeten. Der adressierbare Speicher von 80186 blieb auf die gleiche Weise wie bei 8086 mit einer Größe von 1 MB. Das japanische Unternehmen NEC produzierte Analoga von 80186, die mit dem IBM PC kompatibel waren.

80286 hatte noch bessere Timings als 80.186, wobei besonders die fantastische Division (32/16 = 16,16) für 22 Takte besonders bemerkenswert ist - seitdem hat man nicht gelernt, schneller zu teilen! 80286 unterstützt die Arbeit mit allen neuen 80186-Teams sowie mit vielen Teams, um in einem neuen, geschützten Modus zu arbeiten. 80286 war der erste Prozessor mit integrierter Unterstützung für den geschützten Modus, der das Organisieren des Speicherschutzes, die korrekte Verwendung privilegierter Anweisungen und den Zugriff auf den virtuellen Speicher ermöglichte. Obwohl die Arbeit im neuen Modus viele problematische Probleme verursachte (der geschützte Modus wurde eher erfolglos erstellt) und relativ selten verwendet wurde, war dies ein großer Durchbruch. In diesem neuen Modus haben Segmentregister eine neue Qualität erhalten, sodass Sie bis zu 16 MB adressierbaren Speicher und bis zu 1 GB virtuellen Speicher pro Task verwenden können. Das große Problem bei 80286 war die Unfähigkeit, vom geschützten Modus in den realen Modus zu wechseln, in dem die meisten Programme damals funktionierten. Mit dem undokumentierten LOADALL-Befehl „secret“ konnten 16 MB im Speicher und im Real-Modus verwendet werden.

Im Jahr 80286 begann die Berechnung von Adressen in Operanden von Befehlen nach getrennten Schemata durchzuführen und verlangsamte die Ausführung von Befehlen. Dies fügte beispielsweise dem Team interessante Funktionen hinzu

 LEA AX,[BX+SI+4000] 

In nur 3 Zyklen konnten zwei Additionen durchgeführt und das Ergebnis in das AX-Register übertragen werden!

Segmentierte Register im geschützten Modus sind Teil eines vollständigen Speicherverwaltungssystems (MMU) geworden. Im Real-Modus bieten diese Register nur teilweise MMU-Funktionalität.

Die Anzahl der Hersteller und spezifischen Systeme, die 80286 verwenden, ist enorm, aber die ersten waren natürlich IBM PC AT-Computer mit Leistungsindikatoren, die unter PCs fast fantastisch waren. Von diesen Computern begann der Speicher in der Geschwindigkeit vom Prozessor zurückzubleiben, es gab Verzögerungszustände, aber dann schien es etwas anderes vorübergehend zu sein.

80286, 8086/8088, 100% , . , POPF 80286 , ( REP ES:MOVSB) 8086/8088 . POPF 80286.

80286 , 64 . 80386, 1985, , 4 . , 8086 8086. . 80386 , 80286. 80386 32- . , . (barrel shifter), . , - . , 80286. , , , , 80286. , 16- 80286 - , 80386 .

80386 , , . , :

  • , , , z80;
  • BSF BSR;
  • , MOVSX MOVZX;
  • SETxx;
  • SHLD, SHRD.

x86 80386 , – . 80386 ( 32- ) , , ( ) , , .

4- , , , .

, 80286, . , flat- 4 , . flat-, .

80386 Intel , IBM PC, Motorola, . 80386 90-, 25 40 . C 80386 IBM IBM PC . , , , 80386 1986 Compaq.

, 80386 . , 80386 , 1970, 1980.

80386. . , . 80386 , . IBTS XBTS. 80386DX/SX, AMD, Intel ( ), , EAX, POPAD PUSHAD , BX. . , . .

ARM . , ARM . Intel 80486. Intel – .

80486 ARM . - . , , 8088! , 8 , -. , , CMPXCHG – IBTS XBTS (, 80386). – , 32- BSWAP. – . .

80486 . , 80486, VX FT, Apricot – 1989 18 40 , – 60 ! Intel ARM Acorn. IBM 80486 1990, PS/2 90 $17000.

Intel , . , 8086. , , AAD AAM , ( Pentium 15 !). AND/OR/XOR , , AND BX,7 (83 E3 07). , , , 80386. , 8086 80286 , . ADD/ADC/SBB/SUB, . , , , (?) . – . , , SAL/SHL ( D0 E0, D0 F0 D1 E0, D1 F0) . , , . , . , Intel , ? SALC 1995 20 ! ICEBP 10 1985 1995. LOADALL LOADALLD – , 80286 80386 . UD1 (0F B9), . .

8088 8086, 80286 .

Motorola: 68000 68040


Motorola – , - Intel .

68000 1979 8086. 16 32- ( 17), . 16 , , , . , 68000 , , . 1 – . 68000 , 8086 – 68000 . , 68k 2 , 86 – 1. , , 68000 , 8086. 16 – 8 , - x86. 16-, 32- , . - – 4 , 8086 – 2. 68000 80- , Intel 8088, 68000 , .

, Motorola, 68000 . , ( , ). . - , MOVE, . , , 68000, , 68010. , , CLR 0 MOVE . , , , . 8086, . , 4 8086 . 68000 PDP-11, 60-.

Motorola - 86 ARM. , 68000 8086, 20-30%. 680x0, , - , , x86. , eab.abime.net , 68k , x86.

, 68000 – , . : Apple Macintosh, 90-, Commodore Amiga, Atari ST. 68000 , Unix, , Tandy 16B. , IBM PC System 9000 68000, PC.

68010 , 1982, Intel 80286, -. 68010 68000, - , 68000 68010 . 68000 . 68010 , 10% 68000. , 68010 80286 80186. 80186, 68010 .

68008 1982 8088. 68000, 8- , . 68008, 68000, , 50% , 68000. , 68008 , 8088, - 20% , 8086.

Clive Sinclair Spectrum QL – , - Atari ST . , QL (Quantum leap – ) , , ( Amstrad, QL).

68000, , , 16, 24.

1984, 68020 Motorola . . , ! 32- 68020EC 24- . 32- . , 256 , , , . (64/32=32,32) (32*32=64), 80 45 . , , (32/16=16,16) 45 ( 140 68000). , ! , , – x86 80386. , , – PDP-11 .

, , 10- , , - . , . 80286, 68020 , . 68020 - 80286. . 68020 (MMU) .

68020 Apple Macintosh II, Macintosh LC Commodore Amiga 1200. Unix.

80386 MMU 32- , Motorola 2. 68030, 1987, , Motorola . 68030 , – . , 68030 , . , , 68030 80386 . , 68030 50 , 80386 40 , 68030 .

68030 Apple Macintosh II, Commodore Amiga 3000, Atari TT, Atari Falcon .

68040 Motorola Intel. 80486, . Motorola, , - . 68040 , 80486. lowendmac.com/benchmarks 68040 2.1 68030, , 68040 80486 . 68040 . – 68LC040, . , , !

Motorola . Motorola, , 68000/68010, Intel 8087 c 1980. 68020/68030 68881 - 68882. 68882 68881.

, Intel x86 – , , , 4 . , .

National Semiconductor 32016


32- , 1982. VAX-11 , - DEC National Semiconductor (NS) VAX-11.

– . , . .

NS32016 VAX-11, , . 24-, 16 . 32016 . ( ), , , ( ) L (less), – . , Motorola 680x0. - F. , (!) . , , (L) , .

32- . , , , , ( - ), ( - ), , . NS32016 68000.

32016 BBC Micro . 1984 . 6, 8 10 . . 32016 , Acorn, - Unix Panos Acorn . BBC Micro MMU – , . .

, , .

Acorn ARM


6502, , , Acorn, ARM-1, 1985, , Intel, 80386. ARM . , ARM MMU , , 80386 . ARM , . 100 .

ARM 1983 , Acorn 32016, , 6502 , , . 80286, , Intel, Acorn, . 80286 80386 , . , Intel , Acorn , ARM.

ARM , , BBC Micro. , . . 1986 BBC Micro c ARM Evaluation system, 4 ( ), ( 4000 , .. 6000 ). , , . . , Unix – Unix, MMU, Unix PDP-11, 68000, 80186 8088. , 90- Acorn Archimedes Linux. Unix ARM Acorn ARM .


ARM

Acorn 1985 . Acorn ARM , , , - 32016. Acorn Communicator. , IBM PC Master 512, . , , Acorn Olivetti , Intel 8086 80286, . , Acorn, Olivetti .

Olivetti Acorn ARM2 , Archimedes, 1987. , Olivetti IBM PC Acorn.

ARM 16 32- ( , ). , R15, PDP-11 . 1 . , , , . , ARM . , , . , . , , . ARM – , 26-, . . 64 , . , , , 4- . 4- , 16- . ARM 3-. RISC - . ARM (Barrel Shifter), . , R0 65 c R1

 ADD R1, R0, R0 shl 6 

, 63 –

 RSB R1, R0, R0 shl 6 

, , , . ARM : . 16 ( ), . , , . , , . ARM . , . ARM 6809 , . , , .

ARM , x86. ARM . ARM 80386, , RSB ( ), BIC (AND , PDP-11), 4- MLA ( ), LDM STM ( , MOVEM 68k). ARM 3-, 80386 2 . ARM – , R14 R15. ARM 3-4 80386 , 80386 2-3 ARM. , IBM PC XT Acorn Archimedes 8 , PC XT. Commodore Amiga 68000 7 , 10-15% PC XT. , NeXT 25 68030 8 ARM. Apple Möbius - Apple ][, , Apple ][, 68k , !

ARM . 8 , . 32- 4 . , , , , 12-. ARM , , . , . ARM (MMU) – , , Apple 90-. ARM . ARM , x86. ARM: . ,
 R1 shl 7 
– R1 7 –
 R1, shl 7 
.

1989 ARM3 . 1990 ARM Acorn Apple VLSI ARM Holding. ARM Acorn-Olivetti. Acorn , ARM Holding . Acorn ARM Holding Apple ARM Newton .

ARM , 80486 10-20%! Intel Pentium. DEC StrongARM 1996, Intel, ARM-. , .

ARM , . , ARM Holding Apple 90- .

,


, 8- 70- 80- . 8- 6502 . Intel Motorola , .

, Amiga Atari ST 4 20- 24- , 6502, 68000. , 6502 10 .

Amstrad PCW, Commodore CBM II, z80 , , 10 .

, ARM 1982, ?

, , ?

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


All Articles