Zephyrnet-Logo

Der Computer der 1970er Jahre: Ein Stück Informatik

Datum:

Was haben der HP-1000 und der DEC VAX 11/730 mit den Videospielen Tempest und Battlezone gemeinsam? Mehr als Sie vielleicht denken. Alle diese Maschinen, zusammen mit vielen anderen aus dieser Zeit, verwendeten Bit-Slice-CPUs der AM2900-Familie.

Die Bit-Slice-CPU war ein sehr erfolgreiches Produkt, das nur in den 1970er Jahren existieren konnte. Wenn Sie heute ein Computersystem benötigen, stehen viele CPUs und sogar ganze Systeme auf einem Chip zur Auswahl. Sie können auch viele kleine Systeme auf Platinenebene erhalten, die wahrscheinlich alles tun würden, was Sie wollen. In den 1960er Jahren hatte man überhaupt keine Wahl. Sie haben Leiterplatten mit Gates auf der Basis von Transistoren, Röhren, Relais oder – vielleicht – kleinen IC-Gates gebaut. Dann haben Sie die Platinen verkabelt.

Man musste kein Genie sein, um zu erkennen, dass es großartig wäre, den Menschen einen CPU-Chip anzubieten, wie er heute erhältlich ist. Das Problem besteht darin, dass die damalige Halbleitertechnologie dies nicht zulässt – zumindest nicht mit nennenswerten Ressourcen. Beispielsweise war der Motorola MC14500B aus dem Jahr 1977 ein Ein-Bit-Mikroprozessor, der zwar seinen Nutzen hatte, aber nicht für jeden und alles geeignet war.

Die Antwort

Die Antwort bestand darin, so viel CPU wie möglich in einem Chip zu produzieren und Vorkehrungen zu treffen, um mehrere Chips zusammen zu verwenden, um die CPU zu bauen. Genau das hat AMD mit der AM2900-Familie getan. Wenn Sie darüber nachdenken, was ist eine CPU? Natürlich gibt es Variationen, aber im Kern gibt es einen Ort zum Speichern von Anweisungen, einen Ort zum Speichern von Daten, eine Möglichkeit zum Auswählen von Anweisungen und eine Möglichkeit zum Bearbeiten von Daten (wie eine ALU – Arithmetik-Logik-Einheit). Anweisungen bewegen Daten von einem Ort zum anderen und legen den Status von Dingen wie E/A-Geräten, ALU-Operationen und dergleichen fest.

<img decoding="async" data-attachment-id="665623" data-permalink="https://hackaday.com/2024/03/06/the-1970s-computer-a-slice-of-computing/bcpu/" data-orig-file="https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png" data-orig-size="785,551" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="bcpu" data-image-description data-image-caption="

Grundlegende Bitslice-CPU aus dem AMD-Datenbuch

„data-medium-file=“https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png?w=400“ Daten- large-file=“https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png?w=785″ class=“size- Miniaturansicht wp-image-665623″ src=“https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing.png“ alt width=“250″ height=“175″ srcset=“https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png 785w, https://zephyrnet .com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png?resize=250,175 250w, https://zephyrnet.com/wp-content/uploads/ 2024/03/the-1970s-computer-a-slice-of-computing-2.png?resize=400,281 400w“ size=“(max-width: 250px) 100vw, 250px“>

Grundlegende Bitslice-CPU aus dem AMD-Datenbuch

Sicher, das ist eine zu starke Vereinfachung, aber sie kann auf die Beschreibung der meisten herkömmlichen CPUs ausgedehnt werden. Die AMD-Chips stellten einen 4-Bit-Datenpfad zur Verfügung, der miteinander verkettet werden konnte. Andere Chips der Familie könnten den Speicher verwalten (einschließlich optional DMA) und sich um die Buchhaltung zwischen den Slices kümmern. Sie könnten eine 8-Bit-Maschine mit zwei Slices bauen, eine 24-Bit-Maschine mit drei und so weiter.

Dies ermöglichte nicht nur weniger ICs als bei der Verwendung herkömmlicher Chips, sondern ermöglichte auch bipolare Logik, die – insbesondere zu dieser Zeit – schneller, aber nicht so dicht wie NMOS oder CMOS war. Mit Chips wie der AM2900-Familie können Sie flexible CPUs erstellen. Sie passen zu Ihrer Anwendung und sind im Vergleich zu anderen Methoden schnell ausgeführt.

Mikrokodierung

Mikrocode ist in vielen CPUs üblich, und Bitslice-CPUs bildeten da keine Ausnahme. Beispielsweise könnten Sie einen sehr langen Mikrocode-Befehl haben, bei dem jedes Register über eine separate Lese- und Schreibleitung verfügt. Wenn Sie acht Register hätten, wären das allein in diesen Steuerelementen 16 Bit. Dann verfügen Sie möglicherweise auch über einen Funktionscode (4 Bit) und ein Bit, das angibt, ob die Bedingungscodes aktualisiert werden sollen. Jetzt besteht jede „Anweisung“ aus 21 Bits. Das ist länger, als Sie beispielsweise für eine 8-Bit-Maschine benötigen, also definieren Sie Anweisungen, die Mikrocode ausführen.

<img decoding="async" data-attachment-id="665630" data-permalink="https://hackaday.com/2024/03/06/the-1970s-computer-a-slice-of-computing/pin2901/" data-orig-file="https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png" data-orig-size="317,460" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="pin2901" data-image-description data-image-caption="

Pinbelegung von AM2901

” data-medium-file=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png?w=276″ data-large-file=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png?w=317″ class=”size-thumbnail wp-image-665630″ src=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-1.png” alt width=”172″ height=”250″ srcset=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png 317w, https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png?resize=172,250 172w, https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png?resize=276,400 276w” sizes=”(max-width: 172px) 100vw, 172px”>

Pinbelegung von AM2901

Beispielsweise könnte eine Anweisung, Register A zu Register B hinzuzufügen und das Ergebnis in B zu belassen, drei Mikrocodeschritte umfassen. Der erste Schritt würde die Register A und B mit dem Datenbus verbinden und den Code aktivieren, der die ALU zum Hinzufügen veranlasst. Dann würde der zweite Befehl das Ergebnis auf den Datenbus übertragen und dem B-Register befehlen, den Datenbus zu lesen. Der letzte Mikrocode-Befehl würde zum Hauptteil des Mikrocodes springen, der den nächsten Befehl liest und das Programm fortsetzt.

So würde man normalerweise eine Bitslice-CPU entwerfen. Ein AM2909, AM2910 oder AM2911 (Mikroprogramm-Sequenzer) würde ein Mikroprogramm-Speicher-ROM adressieren, das Befehle an eine Reihe von AM2901-Chips weiterleiten würde. Den 40-poligen AM2901 gab es in mehreren Varianten (z. B. AM2901B), die jeweils durch technische Verbesserungen kleiner und schneller wurden.

Der Mikroprogrammspeicher würde dann das Abrufen von Anweisungen und deren Ausführung orchestrieren. Vermutlich war das Mikroprogramm im Vergleich zur echten Software relativ klein, sodass Ihr ROM mit dem Mikrocode möglicherweise kleiner ist als das ROM, das Ihre eigentliche Anwendung enthält.

Kooperation

Natürlich kann man nicht alles erledigen, indem man einfach einen weiteren Chip hinzufügt. Sie müssen kooperieren. Beispielsweise gibt es auf jedem Chip einen F-Ausgang, der ein offener Kollektor ist. Sie verbinden alle F-Ausgänge mit einem Pull-up-Widerstand. Wenn ein CPU-Slice ein Ergebnis ungleich Null hat, wird der F-Ausgang heruntergezogen. Wenn also der F-Ausgang hoch ist, muss das gesamte Ergebnis (wie viele Bits es auch sein mögen) Null sein.

Auch der Umgang mit Carry ist ein Problem. Wenn Ihr erster Slice 1111+0001 hinzufügt, ist die Antwort nicht wirklich 0000. Es ist 0000 + ein Übertrag. Sie können einfach jeden Cn+4-Ausgang mit dem Cn-Eingang des nächsten Chips verbinden, um einen Ripple-Carry zu erhalten, aber das führt zu einem Geschwindigkeitsverlust, der umso schlimmer wird, je mehr Slices hinzugefügt werden. Sie können einen AM2902 auch verwenden, um „nach vorne zu schauen“, um eine bessere Leistung zu erzielen. Jeder 2902 könnte vier Slices oder 16 Bit verarbeiten. Wenn Sie darüber hinausgehen möchten, können Sie mit einem AM2902 bis zu vier weitere AM2902 vorsehen, von denen jeder vier CPU-Slices verwaltet. Vermutlich wäre es möglich, dieses Schema weiter zu erweitern, wenn man über 64 Bit hinausgehen wollte, obwohl das 1975 vielleicht nicht das größte Problem beim Bau einer so großen Maschine gewesen wäre.

Auch Verschiebung und Vermehrung erforderten Kooperation. Es war üblich, an jedem Ende der Kette einen Multiplexer zu verwenden, um beim Verschieben die Quelle neuer Bits zu bestimmen. Es kam einfach darauf an, was Sie brauchten.

Anpassung

Das ist eine interessante Sache bei der Verwendung von Bit-Slice. Sie könnten genau das entwerfen, was Sie brauchten. Warum eine 32-Bit-Maschine bauen, wenn Sie für die anstehende Aufgabe 24-Bit benötigen? Warum sollten Sie Multiplexer verwenden, um einen Rotationsbefehl zu ermöglichen, den Sie nie verwenden werden?

Heutzutage nehmen wir einen Baustein und passen ihn an unser Problem an. Mit Bitslice haben Sie eine CPU erstellt, die genau Ihren Anforderungen entspricht. Es gab viele Kleinigkeiten darüber, wie man verschiedene Operationen wie das Abrufen von Anweisungen, das Multiplizieren oder das Austauschen von Bytes in der Datei durchführt AM2900-Datenbuch.

Dieses Datenbuch zeigt auch die Chips, die Sie benötigen, wie AM2902s oder den 48-poligen AM2903 „Superslice“ mit erweiterbaren Registern, Multiplikatoren, Division und anderen speziellen Schaltkreisen an Bord.

Evolution

Die AM2900-Familie war sehr erfolgreich. Der ursprüngliche AM2901 basierte auf einem sehr großen Chip mit Schottky mit geringem Stromverbrauch und konnte mit 80 Nanosekunden betrieben werden. 1978 – drei Jahre später – war der AM2901B-Chip weniger als halb so groß und konnte 50 Nanosekunden verarbeiten. Bis 1981 nutzte der AM2901C intern ECL und konnte auf demselben Chip 37 Nanosekunden schaffen. Bis 1979 konnte man sogar einen Gleitkomma-Coprozessor (den AMD9511) bekommen.

Dabei handelte es sich um einfache Geräte, da man zur Unterstützung mehrere Chips und für alles, was größer als vier Bit war, mehrere AM2901 benötigte. Der ursprüngliche AM2901 hatte beispielsweise nur 540 Tore an Bord. Dennoch fanden sie ihren Weg in alles, von Workstations über Musiksynthesizer bis hin zu Videospielen. Aufgrund ihrer Beliebtheit gab es viele Zweitlieferanten für das Gerät, und es ist immer noch möglich, neue alte Lagerbestände zu finden. Es wurden sogar sowjetische Kopien hergestellt.

Mehr Bitslice

Viele der mit dem AM2900 hergestellten CPUs waren proprietär oder militärisch. Wenn Sie jedoch eines sehen möchten, das über eine gute Dokumentation verfügt, finden Sie hier Folgendes eine Masterarbeit von 1980 über die Implementierung einer Nova 1200-kompatiblen CPU Nutzung der Technologie – zumindest Teil davon.

Der AM2900 war nicht das einzige Spiel in der Stadt. 1974 waren der IMP von National Semiconductor und die 3000er-Serie von Intel erhältlich. Darüber hinaus stellten Motorola, Texas Instruments, Fairchild, Raytheon und andere ähnliche Geräte her. Aber aus verschiedenen Gründen ist der AM2900 das, woran die meisten Menschen denken, wenn sie an Bitslice-CPUs denken. Tatsächlich enthält die Masterarbeit über die Nova-CPU auch eine Tabelle mit anderen Bitslice-Technologien und den Grund, warum keine der anderen verwendet wurde. Einige der Geräte verwendeten beispielsweise PMOS, was langsam war. Andere nutzten ECL, eine schnelle Technologie, die zu Recht den Ruf hat, schwierig zu verwenden zu sein. Ein anderer These von 1976 hat eine ähnliche Logik für die Auswahl des AM2900.

Du willst mehr?

[Ken Shirriff] nahm eine ECL-Variante des AM2901 auseinander.. Es gibt auch ein Buch aus dem Jahr 1980 du kannst lesen. Es gibt auch eine Menge Dokumente auf einem Gopher-Server (kein Scherz). Wenn Ihr Browser Gopher nicht unterstützt – und das wird uns nicht überraschen – versuchen Sie es mit einem der vielen Gopher-Proxys. Das Beispiel für ein 16-Bit-Computerdesign ist besonders einen Blick wert. Möchten Sie ein komplexeres Beispiel? Hier ist eine blitzschnelle 8080-CPU, die mit Bitslice gebaut wurde. Drüben hackaday.io, [zpekic] hat kürzlich diesen 8080 gebaut und winziges Basic darauf ausgeführt (sehen Sie sich das Video an, wenn Sie es nicht glauben).

[Eingebetteten Inhalt]

Der Xerox Star 8010 nutzte das AM2900 im Jahr 1981. Kostet weniger als 17,000 $! Zum Glück können Sie das emulieren Sie eines, wenn Sie möchten. Im Übrigen können Sie es irgendwie tun emulieren den AM2900 mit Java, obwohl es möglicherweise nicht für jedes mögliche Design funktioniert (Tipp: Download aus den Releases).

spot_img

Neueste Intelligenz

spot_img