Zwei Bits pro Transistor: Intel 8087 Fließkomma-ROM mit hoher Dichte

Ursprünglicher Autor: Ken Shirriff
  • Übersetzung
Den 8087-Chip hat Intel 1980 entwickelt, um die PC-Leistung mit 8086/8088-Prozessorzeilen (wie dem IBM-PC) bei Fließkommaoperationen zu verbessern. Da die ersten Mikroprozessoren für Operationen mit ganzen Zahlen konzipiert wurden, war die Ausführung von Operationen mit Fließkommazahlen langsam, was bereits von transzendenten Operationen wie trigonometrischen Funktionen oder Logarithmen spricht. Der 8087-Coprozessor beschleunigte die Ausführung von Aufgaben mit einem Fließpunkt erheblich, alles wurde fast 100-mal schneller ausgeführt. Die 8087-Architektur wurde auch in späteren Intel-Prozessoren implementiert, und die 8087-Anweisungen werden noch in modernen x86-PCs verwendet. 1980 brachte Intel den 8087-Chip auf den Markt, der die Leistung des Floating-Point-Computing auf den 8086- und 8088-Prozessoren verbessern soll.


Seit den frühen Mikroprozessoren nur Integer-Arithmetik mit Gleitkomma gearbeitet hat sich nur langsam, und transzendentale Vorgänge, wie Trigger oder Logarithmen, sah noch schlimmer. Hinzufügen eines mathematischen Coprozessor in 8087 erlaubt zu Gleitkommaoperationen 100mal zu beschleunigen. Architektur 8087 ist ein Teil der späteren Intel-Prozessoren wurde und Anweisungen 8087 (wenn auch veraltet) sind immer noch Teil des modernen x86-Desktop.

8087 Chip eine schnelle Arithmetik bieten Gleitkommaoperationen für den ursprünglichen IBM PC und werden Sie ein Teil der x86-Architektur verwendet heute. Eine der Besonderheiten 8087 ist ein Multi-Level-ROM speichern kann zwei Bits pro Transistor (Nurlesespeicher), die das Zweifache der Dichte der herkömmlichen ROM ist. Anstelle des Speicherns von Binärdaten, wobei jede Zelle in dem ROM 8087 unterhält eine von vier verschiedenen Werte, die dann in zwei Bits decodiert werden. Seit 8087 wurde in der Notwendigkeit einer großen Menge an ROM-Mikrocode (1), und die Anzahl der Transistoren auf einem Chip hat, sehr begrenzt ist, werden die Intel eine ungewöhnliche Technik zur Lösung des Problems verwendet. In diesem Artikel werde ich erklären, wie Intel dieses Multi-Level-ROM implementiert hat.

I geöffnet, um den Chip 8087 und photographierte sie mit einem Mikroskop, das Foto unten erhalten zu haben. Auf dem Foto habe ich die grundlegenden Funktionsbausteine ​​mein eigenes Reverse-Engineering basieren (Klicken für größeres Bild). Matrix-Prozessor 8087 ist ziemlich kompliziert, mit 40.000 Transistoren (2). 8087 verwendet die 80-Bit-Fließkommazahl: 64 Bits der Mantisse von 15 Bits für den Exponenten zugeordnet ist, und sogar das Vorzeichenbit. (Beispiel der Base 10: 1023 einschließlich 6,02 × 6,02 ist die Mantisse und 23 - Exponent). Am unteren Rande des Fotos eingeschrieben «Bruchverarbeitung» markierten Teil der Regelung für die Mantisse. Von links nach rechts sie umfasst: Konstanten speichern 64-Bit-Verschiebung, die 64-Bit-Addierer / Subtrahierer und Stapelregister. Genau über eine Schaltung, die die Exponenten für die Verarbeitung.


Matrix-Coprozessor-Chip für Gleitkommaoperationen Intel 8087 mit der Bezeichnung der Hauptfunktionsblöcke Die

Ausführung des Befehls 8087 erforderte mehrere Schritte und in einigen Fällen mehr als 1000. Das Mikroprogramm 8087 verwendete Mikrocode, um Low-Level-Operationen bei jedem Schritt zu bestimmen: Verschiebungen, Inkrementieren, Speicherabtastungen , Lesekonstanten usw. Sie können den Mikrocode als einfaches Programm wahrnehmen, das in Form von Mikrobefehlen geschrieben ist, in denen jeder Mikrobefehl Steuersignale für verschiedene Komponenten von Chi erzeugt na Auf dem Foto oben sehen Sie das ROM mit dem Mikrocode-Programm 8087. Das ROM belegt den größten Teil des Chips und zeigt deutlich, warum ein kompaktes mehrstufiges ROM erforderlich war. Auf der linken Seite des ROM befindet sich die "Engine", auf der das Mikrocode-Programm ausgeführt wurde, tatsächlich ein einfacher Prozessor.

8087 arbeitete als Coprozessor mit einem 8086-Prozessor.Wenn der 8086 einen speziellen Gleitkommabefehl feststellte, ignorierte der Prozessor ihn und erlaubte dem 8087, den Befehl parallel auszuführen. Ich werde die interne Arbeit von 8087 nicht detailliert erläutern, aber Gleitkommaoperationen wurden kurz mit Integer-Additions- / Subtraktions- und Verschiebungsoperationen implementiert. Um zwei Gleitkommazahlen hinzuzufügen oder zu subtrahieren, hat 8087 eine bitweise Verschiebung der Zahl durchgeführt, bis die Binärseparatoren (dh das Dezimaltrennzeichen ist ein Komma, aber im Binärsystem) übereinstimmen, und dann die Mantisse hinzugefügt oder subtrahiert. Multiplikation, Division und Quadratwurzel wurden durch Mehrfachverschiebungen, Additionen oder Subtraktionen durchgeführt. Transzendentale Operationen (Tan, Arctan, Log, Power) verwendeten die Algorithmen CORDIC, dass die Verwendung Verschiebungen und Hinzufügen von Spezial Konstanten, die Verarbeitung eines Bit auf einmal. 8087 auch mit vielen Sonderfällen konfrontiert: infinity überläuft, NaN (keine Zahl) und denormalized Zahlen mehr Runden-Modi. Der im ROM gespeicherte Mikrocode steuert alle diese Vorgänge.

ROM-Implementierung


Der Chip 8087 enthält eine winzige Siliziummatrix, in der das Silizium mit Verunreinigungen an einigen Stellen dotiert ist, um die gewünschten Halbleitereigenschaften zu erhalten. Auf der Oberfläche des Silizium abgeschiedenen Polysiliziums (eine spezielle Art von Silizium), die den Draht und die Transistoren bildet. Schließlich vervollständigt eine Metallschicht über den Siliziumschaltkreis arbeiten. In dem Foto unten, auf der linken Seite zeigt einen kleinen Teil des Chips, wie es unter einem Mikroskop zu sehen ist, eine gelbliche Metallverdrahtung zeigt. Auf der rechten Seite des Foto Metalls durch Säure entfernt, um das Polysilizium und Silizium freigelegt wird. Wenn Polysilizium überquert wird Silizium-Transistor gebildet. Rosaer Bereich - dotiertes Silizium, und dünne vertikale Linien - Polysilizium. Kleine Kreise - ein Kontakt zwischen Silizium und Metallschichten, diese miteinander zu verbinden.


ROM-Struktur in Intel 8087 FPU. Die Metallschicht wird auf der linken Seite gezeigt, und das Polysilizium und Silizium - Right

Obwohl es viele Wege gibt, ist es, einen ROM, eine standardisierte Möglichkeit zu bauen ein Raster von „Zellen“ zu erstellen, wobei jede Zelle speichert ein Bit. Jede Zelle kann einen Transistor (dh 0 Bit) oder keinen Transistor (1 Bit) haben. In dem obigen Bild kann man ein Gitter von Zellen, die mit Transistoren sehen und das Fehlen von Transistoren (wo es Lücken in dem Silizium) (wobei das Polysilizium auf Silizium abgeschieden wird). Für Informationen von dem ROM zu lesen aktiviert ist, eine Spaltenauswahlleitung (basierend auf der Adresse), die Bits in dieser Spalte gespeicherten auszuwählen, und die Ausgabe eines Bit aus jeder Zeile zu empfangen. Sie können die vertikale Spaltenauswahlleitung (Spaltenauswahlleitungen) aus Polysilicium und Metall horizontaler Reihen, in dem Foto oben sehen. Die vertikalen Linien sind dotierte Silizium geerdet.

Schema unten wird erläutert, wie das ROM (ROM-Segment 4 × 4 entspricht). Jede Zelle weist einen Transistor (schwarz), oder keinen Effekttransistor (grau dargestellt). Wenn Polysilicium Spaltenauswahlleitung mit den Spannungs Transistoren in dieser Spalte, und die entsprechenden geerdeten Metall Serie enthalten versorgt. (In diesem Fall wird die NMOS-Transistor ähnliches Ventil, das offen ist, wenn der Eingang gleich 0 ist, und geschlossen, wenn der Eingang gleich 1 ist) Metall „string“ Schaltungen gespeicherten Daten in der ausgewählten „Spalte“ ausgibt.


4x4-ROM-Segmentschaltung

Spaltenauswahlsignale werden von einer Decodierschaltung erzeugt. Da die Regelung von NOR - Gatter aufgebaut ist, erkläre ich zunächst die Konstruktion der Ventile. Das folgende Diagramm zeigt ein NOR-Gatter mit vier Eingängen, das aus vier Transistoren und einem Pull-up-Widerstand aufgebaut ist (obwohl ein spezieller Transistor tatsächlich die Funktion eines Widerstands erfüllt). Auf der linken Seite der Schaltung sind alle Eingänge 0, so dass alle Transistoren ausgeschaltet sind und der Pull-Up-Widerstand das Ausgangssignal auf einem hohen Pegel hält. Auf der rechten Seite einer der Eingänge abgegeben 1, mit einem Transistor. Der Transistor ist geerdet, das Ausgangssignal ist jetzt auf "low" -Pegel. Somit wird , wenn einer der Eingänge hoch ist (1), die Ausbeute niedrig ist (0). Dieses Schema implementiert also das NOR-Ventil.


NOR-Gate mit 4 Eingängen, aufgebaut aus NMOS-Transistoren

Scheme Spaltenauswahldecoder empfängt eingehende Adreßbits und aktiviert die entsprechende Auswahlleitung. Der Decoder umfasst einen 8-Eingang-NOR-Gatter für jede Spalte, das heißt ein NOR-Gatter für jede Adresse. Das Bild zeigt die beiden Elemente NOR, Spaltenauswahlsignale zu erzeugen (I zeigen der Einfachheit halber nur vier der acht Eingänge). Jede Spalte verwendet eine andere Kombination von Adreßleitungen und komplementiert Adreßleitungen als Eingabe, um eine andere Adresse ausgewählt wird. Adressleitungen sind in der Metallschicht, die im Folgenden in der Photographie entfernt wird; Adressleitungen in grün hervorgehoben. Um zu bestimmen, die Adresse, die mit der Spalte, Blick auf den quadratischen Kontakten mit jedem Transistor zugeordnet ist, und beachten die Adreßleitungen verbunden sind. Wenn alle Adressenleitungen zu den Transistoren der Spalte verbunden ist, ist niedrig (0) Niveau,


Teil des Adressdecoders. Der Adressendecodierer wählt die ungeradzahligen Spalten in dem ROM, von rechts nach links gezählt. Die Zahlen im oberen Teil zeigen die Adresse, die jedem Ausgang zugeordnet ist.

Das Foto unten zeigt einen kleinen Teil des ROM-Decoders mit allen 8 Eingängen für NOR-Gatter. Sie können binäre Adresse lesen, sorgfältig die Verbindung in der Adressleiste untersucht hat. Beachten Sie das binäre Muster: Verbindungen a1 ändern Werte in jeder Spalte, Verbindungen a2 wechseln alle zwei Spalten, Verbindungen a3 alle vier Spalten usw. D. Verbindung a0 ist fest, da dieses Decoderschema ungerade Spalten wählt; Ein ähnliches ROM-Schema wählt geradzahlige Adressen aus (diese Trennung war notwendig, damit der Decodierer auf den Chip passt, da jede Spalte des Decodierers doppelt so breit ist wie die ROM-Zelle).


Ein Teil der Adresse für den Microcode-ROM-Decoder Der Decoder 8087 wandelt die 8-Bit-Spaltenadresse Wählsignale

Die letzte Komponente des ROM - eine Gruppe von Multiplexern 64 auf, die die Ausgangsleitung bis zu 8 Zeilen reduziert. Jeder Multiplexer 8-zu-1 wählt einen seiner Eingänge 8, basierend auf der Adresse. Das folgende Diagramm veranschaulicht einen Prozessor 8087 Zeilen-Multiplexer mit acht großen Durchlaßtransistoren aufgebaut, von denen jeder mit einer der Leitungen „Reihe“ verbunden ist. Alle Transistoren sind mit dem Ausgang verbunden ist, so dass, wenn der ausgewählte Transistor eingeschaltet wird, ist es mit seinem Eingang an den Ausgang überträgt. Transistoren Multiplexer ist viel, viel größer als die Transistoren in dem ROM, um eine Verzerrung des ROM-Signals zu reduzieren. Der Decoder (ähnlich der zuvor diskutierten, aber kleiner) erzeugt acht Multiplexer-Steuerleitungen der drei Adreßleitungen.


Einer der 8-reihigen Multiplexer im ROM. Hier sehen Sie Schichten aus (Poly-) Silizium mit in Orange lackierten Metallverbindungen.

Zusammenfassend speichert das ROM die Bits in einem Raster. Es verwendet acht Adressbits, um eine Spalte im Raster auszuwählen. Als nächstes richtet acht drei Bits gewünschte Ausgabe von „Linien“ ausgewählt.

Mehrstufiges ROM


Bisher habe ich das typische ROM-Gerät erklärt, das ein Bit pro Zelle speichert. Wie kann der 8087 also zwei Bits pro Zelle speichern? Wenn Sie genau hinschauen, enthält der Mikrocode-ROM 8087 vier verschiedene Transistorengrößen - wenn wir davon ausgehen, dass der Transistor nicht als eine der Größen (6) gilt. Mit vier Optionen für jeden Transistor kann eine Zelle zwei Bits codieren, was die Dichte ungefähr verdoppelt (7). Der aktuelle Abschnitt erläutert, wie die vier Größen von Transistoren vier verschiedene Ströme erzeugen und wie analoge und digitale IC-Schaltungen diese Ströme in zwei Bits umwandeln.


Eine mikroskopische Aufnahme des Mikrocodes des ROM 8087 zeigt vier verschiedene Transistorgrößen. Dies ermöglicht es ein ROM zwei Bits pro Zelle speichern

Transistorgröße der Strom durch den Transistor steuert (8). Ein wichtiger Faktor ist die unterschiedliche geometrische Breite von Silizium (pink), wo es mit Polysilicium (vertikale Linien) schneidet, Transistoren mit unterschiedlichen Gate - Breite zu schaffen. Da die Breite des Gate den Strom durch den Transistor steuert, erzeugen vier Transistoren vier unterschiedliche Größe Strom: Transistor größte Großteil des Stromes fließt, und kein Strom fließt , wenn kein Transistor.

Der ROM-Strom wird in mehreren Schritten in Bits umgewandelt. Zunächst wandelt der Pullup-Widerstand den Strom in Spannung um. Die drei Komparatoren vergleichen dann die Spannung mit der Referenzspannung, um digitale Signale zu erzeugen, und bestimmen, welche Spannung höher / niedriger ist. Schließlich konvertieren Logikgatter die Ausgangssignale des Komparators in zwei Ausgangsbits. Dieses Schema wird acht Mal wiederholt, um insgesamt 16 Bit am Ausgang zu erzeugen.


Das Schema für zwei Bits aus dem ROM

Zellenleseschaltung führt die obigen Umwandlungsschritte. Als Ergebnis wird einer der ROM-Transistoren durch die "Spalten" -Auswahlleitung und den Multiplexer (zuvor erläutert) ausgewählt, der einen der vier Ströme erzeugt. Dann wandelt der Pullup-Widerstand (12) den Strom des Transistors in Spannung um, mit dem Ergebnis, dass die Spannung von der Größe des ausgewählten Transistors abhängt. Komparatoren vergleichen diese Spannung mit drei Referenzspannungen und Ausgang 1, wenn die ROM-Spannung höher als die Referenzspannung ist. Komparatoren und Referenzspannungen erfordern ein sorgfältiges Design, da ROM-Spannungen bis zu 200 mV abweichen können.

Die Referenzspannung wird auf halbem Weg zwischen dem erwarteten Spannungswert ROM, das einige Belastungsschwankungen ermöglicht. Die "niedrige" Spannung des ROM ist niedriger als alle Referenzspannungen, daher geben alle Komparatoren 0 aus. Die zweite Spannung des ROM ist höher als Ref 0, so dass der untere Komparator 1 ausgibt. Bei dem dritten Spannungs-ROM liegen die unteren beiden Komparatoren am Ausgang 1 und maximal die Spannung des ROMs am Ausgang aller drei Komparatoren 1. Somit ergeben die drei Komparatoren je nach Transistor-ROM vier verschiedene Ausgangsmuster. Dann Transformationslogikelemente, die die Ausgabe des Komparators in zwei Ausgabebits (10).

Komparator Design ist interessant, dass es eine Brücke zwischen der analogen und der digitalen Welt ist, eine 1 oder 0, wenn die Spannung ROM, höher oder niedriger als die Referenzspannung zu erzeugen. Jeder Komparator enthält einen Differenzverstärker, der die Differenz zwischen der Spannung des ROM und der Referenzspannung verstärkt. Ausgang des Differenzverstärkers betätigt einen Verschluss, den Ausgang und wandelt es in ein Logikpegelsignal stabilisiert. Der Differenzverstärker (unten) ist eine Standard-Analogschaltung. Die Stromquelle (Symbol unten) liefert einen konstanten Strom. Wenn einer der Transistoren, die eine höhere Eingangsspannung als eine andere ist, die meisten der Strom fließt durch diesen Transistor. Der Spannungsabfall an den Widerständen führt dazu, dass der entsprechende Ausgang niedriger und der andere Ausgang höher ist.


Diagramm, das den Betrieb des Differentialpaares zeigt. Der meiste Strom fließt durch einen Transistor mit höherer Eingangsspannung, was zu einem niedrigeren Ausgangssignal führt. Das Symbol eines Doppelkreises unten - eine Quelle für DC I

Das Foto unten zeigt einen der Komparatoren auf dem Chip; Metallschicht oben, darunter Transistoren. Ich werde nur die Höhepunkte dieses komplexen Schemas betrachten. Für Details siehe Anmerkung 12. Das Signal von ROM und Multiplexer erscheint links. Die Pull-Up-Schaltung 12 wandelt den Strom in eine Spannung um. Zwei große Transistordifferenzverstärker vergleicht die Spannung mit einer Referenzspannung ROM (Topeinwurf). Ausgangssignale von dem Differenzverstärker an die Gatterschaltung Go (Streubild); Der Verschlussausgang befindet sich in der rechten unteren Ecke. Die Stromquelle des Differenzverstärkers und die Pullup-Widerstände bestehen aus Transistoren vom Verarmungstyp. Jede Ausgangsschaltung verwendet drei Komparatoren, so dass sich insgesamt 24 Komparatoren ergeben.


Einer der Komparatoren in 8087. Der Chip enthält 24 Komparatoren zum Umwandeln von Spannungspegeln von einem mehrstufigen ROM in binäre Daten, wobei

jede Referenzspannung von einem sorgfältig bemessenen Transistor und einer Pullup-Schaltung erzeugt wird. Die Spannungsreferenzschaltung ist so ausgelegt, dass sie der ROM-Signalschaltung so ähnlich wie möglich ist, so dass Änderungen in der Chip-Produktion beide Elemente auf dieselbe Weise beeinflussen. Die Referenzspannung und das ROM-Signal verwenden die gleiche Lastschaltung. Zusätzlich enthält jede Referenzspannungsschaltung einen sehr großen Transistor, der mit dem Multiplexer-Transistor identisch ist, obwohl in der Referenzsignalschaltung kein Multiplexen stattfindet - nur um ein "Anpassen" der Schaltungen sicherzustellen. Die drei Spannungsreferenzkreise sind bis auf die Größe des Referenztransistors (9) identisch.


Eine Schaltung, die drei Referenzspannungen erzeugt. Die Größe der Referenztransistoren - zwischen der Größe der Transistoren ROM. Eine Oxidschicht vollständig war nicht von diesem Teil der Matrix entfernt wird, durch die die Photographie Strudeln wurden gefärbt

Um das gesamte Puzzle zusammenzusetzen, zeigt das Foto unten die Position der Komponenten des Mikrocode-ROMs auf dem Chip (12). Der Hauptteil des Schaltkreis-ROMs sind Transistoren, die Daten speichern. Die Spaltendekodierschaltung befindet sich oberhalb und unterhalb der ROM-Daten. Die Hälfte der Spaltendecoder die Auswahl ist auf der Oberseite und die andere Hälfte - von unten, für eine bessere Anordnung. Die Ausgangsschaltung befindet sich rechts. Acht Multiplexer reduzieren 64 Leitungen auf acht Leitungen. Dann werden acht Zeilen in den Komparatoren enthalten ist, 16-Bit-Ausgabe von dem ROM rechts zu erzeugen. Die Referenzschaltung über den Komparatoren erzeugt drei Referenzspannungen. Unten rechts steuert ein kleiner String-Decoder die Multiplexer.


Intels 8087 FPU-Mikrocode-ROM mit der Hauptkomponenten-Beschriftung:

Obwohl es anfänglich so aussieht, als sei ein Multi-Level-ROM halb so groß wie ein regulärer ROM, ist der Effekt aufgrund des zusätzlichen Komparatorschemas und der Transistoren nicht so spürbar - aufgrund der Notwendigkeit, mehrere Größen zu verwenden. Trotzdem sparte ein mehrstufiges ROM etwa 40% des Platzes ein, der den üblichen ROM belegt hätte.

Nun, da ich den Aufbau des ROMs verstanden habe, kann ich den Inhalt des ROMs einfach (aber unermüdlich) lesen, indem ich die Größe jedes Transistors unter einem Mikroskop anschaue. Ohne jedoch den Satz von Mikrocode-Anweisungen zu kennen, ist der Inhalt des ROMs unbrauchbar.

Schlussfolgerungen


Math-Coprozessor für die Gleitkomma-Operationen 8087 verwendete ungewöhnliche Struktur „zwei Bits pro Zelle“ für die auf dem Chip-Mikrocode setzt. Intel wiederverwendet Schichtstruktur ROM im Jahr 1981 in einem zum Scheitern verurteilt System iAPX 432,11 Soweit es mich betreffen, ist das Interesse an der ROM mit Multi-Level-Zelle hat im Jahr 1980 ihren Höhepunkt erreicht und dann nachgelassen. Wahrscheinlich aufgrund der Tatsache, dass es nach dem Moore'schen Gesetz viel einfacher ist, die Kapazität des ROM durch Reduzieren der Standardzelle zu erhöhen, als nicht standardmäßige ROMs zu entwerfen, die spezielle Analogschaltkreise erfordern, die mit hohen Toleranzen gebaut sind (14).

Überraschenderweise wird ein mehrstufiges Konzept vor kurzem zurückgekehrt, aber auf Flash - Speicher. Viele Flash-Geräte speichern zwei oder mehr Bits pro Zelle (13). Der Flash-Speicher hat in Verbraucherprodukten (QLC, Quad-Level-Zelle) sogar beachtliche 4 Bit pro Zelle (16 verschiedene Spannungspegel) erreicht. Somit sind die wenig bekannten Technologien der 1980er Jahre wieder Jahrzehnte später.

Ich melde meine neuesten Blogbeiträge auf Twitter. Abonniere also @kenshirriff, um zukünftige Artikel über 8087 zu lesen. Ich habe auch einen RSS-Feed. Vielen Dank an Jeff Epler für das Angebot, die 8087 ROM zu erkunden.

Notizen und Links


  1. Der Prozessor 8087 enthält ein Mikrocodewort 1648 (wenn ich gezählt) mit 16 Bits in jedem Wort, nur 26368 Bits. ROM-Größe ist nicht als eine Potenz von zwei benötigt und Intel können jede gewünschte Größe bauen.
  2. Quellen liefern widersprüchliche Werte der Anzahl von Transistoren in 8087: Intel behauptet, dass 40 000 Transistoren, wie Wikipedia besagt, dass die 45 000. Die Diskrepanz aufgrund der unterschiedlichen Arten sein kann, die Transistoren des Zählens. Insbesondere, da die Anzahl der Transistoren, die in dem ROM, PLA, oder einem ähnlichen Struktur, unabhängig von den darin gespeicherten Daten, werden die Quellen oft als „potentielle“ Transistoren, anstatt die Anzahl der physischen Transistoren. Andere Unterschiede können auf die Tatsache zurückzuführen sein, ob die Pull-up-Transistoren aufgezeichnet und untersucht, ob die Hochstromtreiber mehr parallelen oder einen einzigen großen Transistor.
  3. Die Wechselwirkung zwischen dem Prozessor 8086 und ein Coprozessor für Gleitkommaoperationen 8087 ist schwierig; Ich werde einige der Highlights erläutern. Eine vereinfachte Ansicht ist, dass 8087 den 8086-Befehlsstrom überwacht und alle Anweisungen ausführt, die 8087-Anweisungen sind. Die Schwierigkeit besteht darin, dass der 8086 über einen Befehlsvorabrufpuffer verfügt, sodass der ausgewählte Befehl nicht ausführbar ist. Somit dupliziert 8087 den 8086-Prefetch-Puffer (oder den kleineren 8088-Prefetch-Puffer), sodass er weiß, was 8086 tut. Ein weiteres Hindernis sind die komplexen Adressierungsmodi, die der 8086 verwendet, die Register innerhalb des Prozessors verwenden. 8087 kann diese Adressierungsmodi nicht ausführen, da er keinen Zugriff auf die 8086-Register hat. Wenn der 8086 die 8087-Anweisung sieht, er holt aus dem Speicher an der angegebenen Adresse und ignoriert das Ergebnis. Inzwischen nimmt die 8087 die Adresse Bus, so kann er es benutzen, wenn er eine Adresse benötigt. Wenn 8087 nicht verfügbar ist, können Sie Probleme bei der Arbeit zu erwarten, aber es ist nicht passiert. Stattdessen schreibt das System 8087 ohne den Linker die Anweisungen 8087, sie mit Subroutinenaufrufe in der Emulationsbibliothek zu ersetzen.
  4. Der Grund, dass ROM im Allgemeinen in den Zeilen Multiplexern Ausgängen verwendet wird, ist, dass ineffizientes ROM mit einer großen Anzahl von Spalten und eine Anzahl von Ausgangsbits erzeugen, da die Decodierschaltung größer sein wird als die ROM-Daten. Die Lösung ist die Form von ROM, ändert die gleichen Bits zu speichern, aber mit viel weniger Zeilen und Spalten. Zum Beispiel kann die ROM hat 8-mal mehr Zeilen und Spalten 1/8, 1/8 Verwendung Decoder ermöglicht. Außerdem lange, schmales, ROM (beispielsweise 1 K × 16) ist unbequem auf dem Chip zu platzieren, da es nicht geeignet als einfachen Block ist. Dennoch kann die „Schlange“ Design verwendet werden. Intels früheste Speicherabtastungen waren beispielsweise Schieberegister; 1405 enthält 512 Bits in einem langen Schieberegister. Um es zu installieren auf dem Chip,
  5. Einige IBM-Computer verwenden, um eine ungewöhnliche Speichertechnik für Mikrocode speichert: Karten wurden in Mylar gestanzten Löcher (in der gleichen Weise wie bei den herkömmlichen Lochkarten), und der Computer zeigte eine kapazitive Löcher (link). Einige Computer wie Xerox Alto hatten einen Mikrocode im RAM. Dies ermöglicht es dem Programm, die Firmware zu ändern, neue Regelungen für ihre spezifischen Zwecke zu schaffen. Viele modernen Prozessoren haben ein beschreibbaren Mikro, so Patches Fehler in dem Mikro korrigieren.
  6. Ich habe die vier Dimensionen der Transistoren in dem Mikrocode-ROM nicht bemerkt, bis ich in einem Kommentar sah auf Hacker News erwähnt, dass die 8087 die Technologie von zwei Bits pro Zelle verwenden. Ich war skeptisch, aber nach einer genaueren Prüfung des Chips, stellte ich fest, dass der Kommentar war korrekt.
  7. Mehrere andere Ansätze wurden in den 1980er Jahren verwendet worden, mehrere Bits pro Zelle zu speichern. legierten Transistoren in dem ROM haben unterschiedliche Schwellspannungen: Mostek und andere Unternehmen haben eine der am häufigsten verwendet wird. Mit vier verschiedenen Schwellenspannungen können zwei Bits pro Zelle gespeichert werden. Verglichen mit Intel geometrischem Ansatz, sofern eine Schwelle Ansatz eine größere Dichte (weil alle Transistoren eine minimale Größe sein könnten), erfordern jedoch eine größere Anzahl von Schichten und Verarbeitungsschritten für eine Multi-Level-Implantation erzeugt wird. Dieser Ansatz ist die neu (zu der Zeit) der Ionenimplantationstechnik für die sorgfältige Einstellung der Dotierungspegel jeden Transistor verwendet. Die größten Auswirkungen der Ionenimplantation auf integrierten Schaltungen verwendet worden, schwächenden Transistoren (Transistoren mit einer negativen Schwellenspannung) zu erzeugen, die viel besser funktionierte als die Pull-up-Widerstände in logischen Elementen. Ionenimplantation wird auch in dem Z-80 Mikroprozessor verwendet, um einigen transistor „trap“ der Systeme zu schaffen, die unter einem Mikroskop schauen, wie herkömmliche Transistoren, aber erhielt Implantate, die sie nicht-funktionell gemacht. Dies diente als Schutz gegen das Kopieren, als Produzenten, der Klone von Z-80-Prozessor durch Kopieren des Chips unter Verwendung ein Mikroskop herzustellen versucht, endlich einen Chip bekam, die nicht richtig auf unterschiedliche Weise arbeitet, zu identifizieren, von denen einige schwierig waren. als die Pull-up-Widerstände Logikelemente. Ionenimplantation wird auch in dem Z-80 Mikroprozessor verwendet, um einigen transistor „trap“ der Systeme zu schaffen, die unter einem Mikroskop schauen, wie herkömmliche Transistoren, aber erhielt Implantate, die sie nicht-funktionell gemacht. Dies diente als Schutz gegen das Kopieren, als Produzenten, der Klone von Z-80-Prozessor durch Kopieren des Chips unter Verwendung ein Mikroskop herzustellen versucht, endlich einen Chip bekam, die nicht richtig auf unterschiedliche Weise arbeitet, zu identifizieren, von denen einige schwierig waren. als Pullup-Widerstände in Logikelementen. Ionenimplantation wird auch in dem Z-80 Mikroprozessor verwendet, um einigen transistor „trap“ der Systeme zu schaffen, die unter einem Mikroskop schauen, wie herkömmliche Transistoren, aber erhielt Implantate, die sie nicht-funktionell gemacht. Dies diente als Schutz gegen das Kopieren, als Produzenten, der Klone von Z-80-Prozessor durch Kopieren des Chips unter Verwendung ein Mikroskop herzustellen versucht, endlich einen Chip bekam, die nicht richtig auf unterschiedliche Weise arbeitet, zu identifizieren, von denen einige schwierig waren.
  8. Der Strom durch den Transistor zu dem Verhältnis zwischen der Breite und Gate-Länge proportional. (Länge -. Der Abstand zwischen der Source und dem Drain) Transistor ROM (und alle außer der kleinsten der Referenztransistor) wird mit konstanter Länge und die Änderung der Breite beibehalten, so reduziert sich die Verengung den Strom. Für MOSFET-Gleichungen siehe Wikipedia
  9. Das Gate des kleinsten Referenztransistors ist aufgrund der Eigenschaften von MOS-Transistoren eher lang als schmal. Das Problem ist, dass die Referenztransistoren zwischen den Größen der ROMs der Transistoren bemessen werden müssen. Insbesondere erfordert Referenz 0 Transistor kleiner als der kleinste Transistor ROM. Der kleinste ROM-Transistor ist jedoch nach den Fertigungstechniken bereits so klein wie möglich. Hinweis: Um dieses Problem zu lösen, Polysilizium, der mittlere Referenztransistor Crossing ist viel dicker als die Horizontalen. Da die Eigenschaften des MOS-Transistors durch das Verhältnis von Breite zu Höhe der Gate-Polysilizium-Erweiterung bestimmt wirkt sowie Silizium und Kompression an den Transistor mit einem geringeren Strom betrieben werden.
  10. ROM Dekodierungs Größe Logiktransistor in Bits wie folgt: Abwesend = Transistor 00, einen kleinen Transistor = 01, Mittelwert = Transistor 11, ein großer Transistor ist gleich 10. Eine derartige Anordnung von mehreren Bits in logischen Elementen Decodierung speichert; Da die Abbildung der Bits des Transistors beliebig ist, spielt es keine Rolle, dass die Sequenz nicht in Ordnung ist. (Siehe. «Two Bits pro Zelle ROM», Stark).
  11. Der Schnittstellenprozessor von Intel iAPX 43203 (1981) verwendete ein mehrstufiges ROM, das dem 8087-Chip sehr ähnlich war. Weitere Informationen finden Sie unter "Der Schnittstellenprozessor für den 32-Bit-Computer VLSI 432 von Intel", J. Bayliss et al., IEEE J. Solid-State Circuits vol. SC-16, S. 522-530, Oktober 1981. Der Schnittstellenprozessor 43203 bot eine E / A-Unterstützung für den Prozessor iAPX 432. Intel startete das Projekt iAPX 432 im Jahr 1975, um einen "Mikro-Mainframe" zu schaffen, der den revolutionären Intel-Prozessor für 1980 darstellen wird. s. Bei Verzögerungen im Projekt iAPX 432 brachte Intel den 8086-Prozessor 1978 als temporäre Lösung auf den Markt. Obwohl der Intel 8086 ein großer Erfolg war und zu Desktop-PCs und moderner x86-Architektur führte, schlug das Projekt iAPX 432 1986 fehl.
  12. Das folgende Diagramm (von den mehrwertigen ROM-Ausgangsschaltungen) enthält detaillierte Informationen zum ROM-Leseschema. Konzeptionell ist die ROM Pullup-Widerstand zum Umwandeln von Strom in Spannung Transistor verwendet. Schema verwendet tatsächlich trehtranzistornuyu Schaltung (T3, T4, T5) als Anzug. T4 und T5 sind im wesentlichen die Wechselrichter, eine negative Rückkopplung durch T3 bereitstellt, die die Schaltung weniger empfindlich auf Störungen (wie Herstellungsabweichungen) macht. Der Komparator besteht aus einem einfachen Differenzverstärker (gelb), wobei T6 als Stromquelle dient. Ausgang des Differenzverstärkers wird in ein stabiles Logikpegelsignal durch einen Verschluss (grün) umgewandelt.
  13. Der Flash-Speicher ist in SLC (eine Zelle mit einer einzelnen Ebene - ein Bit pro Zelle), MLC (Zelle mit mehreren Ebenen - zwei Bits pro Zelle), TLC (Zelle mit drei Ebenen - drei Bits pro Zelle) und QLC (Zelle mit vier Ebenen - vier Bits) unterteilt pro Zelle). Flash-Speicher mit einer höheren Anzahl von Bits pro Zelle sind häufig billiger, jedoch weniger zuverlässig und werden aufgrund geringerer Signaldifferenzen langsamer und schneller.
  14. Die Zeitschrift "Electronics" veröffentlichte einen kurzen Artikel mit dem Titel "Four-State Cell verdoppelt die ROM-Bit-Kapazität" (S. 39, 9. Oktober 1980), in dem die Intel-Methodik beschrieben wird. Dieser Artikel ist jedoch unklar und irreführend. Intel veröffentlichte einen ausführlichen Artikel "Zwei Bits pro Zellen-ROM" in COMPCON (S. 209-212, Februar 1981). Das externe Team hat versucht, detailliertere Spezifikationen für Intels Schaltkreise in "Mehrwertige ROM-Ausgangsschaltungen" (Proc. 14th Int. Symp. Multivalue Logic, 1984) zu entwickeln. Zwei Artikel, die Speicher mit einer ähnlichen Technologie beschreiben, sind „  Eine Übersicht über mehrwertige Speicher “ („IEEE-Transaktionen auf Computern“, Februar 1986, S. 99–106) und „ Eine Überprüfung der mehrwertigen Speichertechnologie “ (IEEE) Symposium zur multivalenten Logik, 1998).

Danke, dass Sie bei uns bleiben. Magst du unsere Artikel? Möchten Sie weitere interessante Materialien sehen? Unterstützen Sie uns, indem Sie eine Bestellung aufgeben oder Freunden empfehlen, 30% Rabatt für Habr-Benutzer auf ein einzigartiges Analogon der Einstiegsserver, die wir für Sie erfunden haben: Die ganze Wahrheit über VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbps $ 20 oder wie kann ich den Server freigeben? (Optionen sind für RAID1 und RAID10 verfügbar, bis zu 24 Kerne und bis zu 40 GB DDR4).

VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps vor dem 1. Januar frei , wenn Sie für einen Zeitraum von sechs Monaten zahlen kann bestellt werden hier .

Dell R730xd 2 mal billiger? Nur wir haben 2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TV ab 249 $in den Niederlanden und in den USA! Lesen Sie mehr darüber, wie Sie ein Infrastrukturgebäude bauen. Klasse C mit Servern Dell R730xd E5-2650 v4 im Wert von 9000 Euro für einen Cent?

Jetzt auch beliebt: