DE4134192A1 - Integrierter schaltkreis mit verarbeitung im speicher - Google Patents

Integrierter schaltkreis mit verarbeitung im speicher

Info

Publication number
DE4134192A1
DE4134192A1 DE4134192A DE4134192A DE4134192A1 DE 4134192 A1 DE4134192 A1 DE 4134192A1 DE 4134192 A DE4134192 A DE 4134192A DE 4134192 A DE4134192 A DE 4134192A DE 4134192 A1 DE4134192 A1 DE 4134192A1
Authority
DE
Germany
Prior art keywords
memory
data
processors
chip
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE4134192A
Other languages
English (en)
Inventor
Kenneth W Iobst
David R Resnick
Kenneth W Wallgren
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of DE4134192A1 publication Critical patent/DE4134192A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One dimensional arrays, e.g. rings, linear arrays, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry

Description

Untersuchungen an einem Laboraufbau für eine parallele Ein­ zelbefehl-Mehrfachdaten Simulation haben gezeigt, daß Mehr­ fachbefehl-Mehrfachdaten Vektormaschinen beinahe mit voller Geschwindigkeit die globalen Leitbahnverlauf-Operationen und bitseriellen Operationen im Handel erhältlicher Einfachbe­ fehl-Mehrfachdaten Maschinen simulieren können. Hardware- Zusammenstellung und -Vereinzelung und Rückkehr am Rande ei­ nes Vektorregisters sind der Schlüssel zu dieser Art von Einfachbefehl-Mehrfachdaten Rechnungsdurchführung hoher Be­ triebsleistung bei Vektormaschinen, wie es in der anhängigen US-Patentanmaldung SN 5 33 233 im Namen von Iobst unter der Bezeichnung "Vorrichtung zur Durchführung eines bitseriellen Orthogonal-Transformations-Befehls" geoffenbart ist. Bei ei­ nem direkten Vergleich zwischen Vektormaschinen und Einfach­ befehl-Mehrfachdaten Maschinen sind die einzigen anderen be­ merkenswerten Beschränkungen der Betriebsleistung von Ein­ fachbefehl-Mehrfachdaten Maschinen die Speicherbandbreite und die Mehrfach-Logikoperationen, die für gewisse Rechenar­ ten erforderlich sind, d. h. volles Addieren bei einer Vek­ tormaschine oder Zählstriche (tailles) bei den Prozessoren einer Einfachbefehl-Mehrfachdaten Maschine. Ergebnisse die­ ser Untersuchung legen nahe, daß eine gute, Methode sowohl Mehrfachbefehl-Mehrfachdaten als auch Einfachbefehl-Mehr­ fachdaten Rechenvorgänge an derselben von beiden benutzten Speichermaschine zu unterstützen, darin besteht, Einfachbe­ fehl-Mehrfachdaten in herkömmliche Maschinen einzugliedern, statt eine vollständig neue Maschine zu konstruieren.
Selbst eine bessere Einfachbefehl-Mehrfachdaten - Betriebs­ leistung bei herkömmlichen Maschinen mag möglich sein, wenn Prozessoren und Speicher auf demselben Chip integriert wer­ den. Genauer gesagt, wenn man eine neue Art von Speicherchip (Verarbeitungs-im-Speicher-Chip) entwürfe, der einen Einzel­ bit-Prozessor mit jeder Spalte eines normalen Speichers mit freiem Zugriff (RAM) auf einem integrierten Schaltkreis ver­ bindet, dann müßte die Zunahme der Einfachbefehl-Mehrfachda­ ten Betriebsleistung einige Größenordnungen steigen. Es wird auch darauf hingewiesen, daß diese Zunahme bei der Betriebs­ leistung ohne bedeutende Zunahme beim elektrischen Lei­ stungsverbrauch, der Kühlung und/oder der Raumanforderungen möglich sein sollte.
Diese Grundidee hebt die Nicht-Neumann-Engstelle zwischen einer zentralen Verarbeitungseinheit (CPU) und dem Speicher auf, indem unmittelbar in dem Speicher gerechnet wird, und ermöglicht eine natürliche Entwicklung von einem herkömmli­ chen Rechnerumfeld zu einem gemischten Mehrfachbefehl-Mehr­ fachdaten/Einfachbefehl-Mehrfachdaten Rechnerumfeld. Man beginnt gerade damit, Anwendungen bei diesem gemischten Rechnerumfeld auszunützen.
Die vorliegende Erfindung betrifft einen Verarbeitung-im- Speicher-Chip (process in memory chip), der einen Speicher und Rechenvermögen auf demselben integrierten Schaltkreis kombiniert, was die Befehls-Daten-Bandweite zwischen den Prozessoren und Speichern maximiert, indem der größte Anteil an Eingabe/Ausgabe-Erfordernissen über die Datenanschluß­ stifte eliminiert wird. Der Chip enthält eine Vielzahl von Einzelbit-Rechenprozessoren, die alle in parallel betrieben werden, und umfaßt eine Anzahl von Prozessoren von einigen wenigen bis zu möglicherweise tausenden auf jedem Chip. Die Chips werden dann zu Gruppen oder Systemen von Speicherbän­ ken zusammengestellt, was bestehende Speicheruntersysteme in Rechnern von Personalcomputers (PC) bis zu Superrechnern verstärkt oder ersetzt.
Demgemäß ist es eine vorrangige Aufgabe der vorliegenden Er­ findung, einen Verarbeitung-im-Speicher-Chip bereitzustel­ len, der mit einer üblichen Speicheranordnung beginnt, die derart abgeändert wird, daß alle Daten, die in einem Zeilen­ bezug gelesen werden, zu einem Satz von bitseriellen Prozes­ soren übertragen werden, wobei ein Bit der Zeile einem bit­ seriellen Prozessor zugeordnet ist. Wenn die Prozessoren ein in den Speicher wieder einzuschreibendes Ergebnis aufweisen, werden alle Ergebnisbits, eines pro Prozessor, zur gleichen Zeit eingeschrieben. Da in dieser parallelen Weise Zugriff zu dem Speicher erfolgt, wird die Möglichkeit der Einzelfeh­ lerkorrektur und Doppelfehlererfassung hinzugefügt, um eine richtige Arbeitsweise sicherzustellen oder um eine fehler­ hafte Arbeitsweise anzugeben. Da die Betriebsleistung von Bedeutung ist, überlappt die Ausführungssequenz das Laden und Abspeichern von Speicherdaten mit der Verarbeitung ande­ rer Daten. Ein R Register ist hinzugefügt, um dieses Pipe­ lining zu implementieren.
Der Verarbeitung-im-Speicher-Chip kann in zwei Betriebsarten arbeiten. Der integrierte Schaltkreis kann als ein normaler Lese-Schreibe-Speicher in Bezug auf die Außenwelt verwendet werden. Durch die Rechenprozessoren und durch zusätzliche Steuerleitungen besteht die Fähigkeit, daß die Prozessoren ein Ergebnis anstelle eines Speicherzugriffszyklus (entweder zum Lesen oder Einschreiben) berechnen. Wenn der Verarbei­ tung-im-Speicher-Chip zum Berechnen (Verarbeitung-im-Spei­ cher-Chip Betriebsart) verwendet wird, wird eine Adresse an den Zeilendekoder von den Chipanschlüssen gegeben. Als Er­ gebnis hiervon wird eine Datenzeile aus dem Speicher abgeru­ fen. Die Daten werden fehlerkorrigiert und dann in dem R Re­ gister am Ende des Taktzyklus bzw. am Anfang des nächsten Taktzyklus verriegelt. Beim nächsten Taktzyklus verwenden die Prozessoren die Daten als Teil der Verarbeitungssequenz unter Steuerung der externen Befehls-Steuerungsleitungen. Wenn ein errechnetes Ergebnis von den Prozessoren im Spei­ cher gespeichert werden soll, wird der Speicherladezyklus durch einen Speicherzyklus ersetzt. Fehlerkorrekturprüfbits werden zu den gespeicherten Daten auf ihrem Weg in die Spei­ cheranordnung hinzugefügt.
Es gibt zwei zu den Prozessoren hinzugefügte Übertragungs­ netzwerke, um den Datenfluß zwischen der Vielzahl von Pro­ zessoren und auch von der Vielzahl von Prozessoren zu einer oder mehreren Ebene der Steuerung außerhalb des Chips zu vereinfachen. Diese Netzwerke sind bekannt als globales ODER-Netzwerk und paralleles Präfix-Netzwerk.
Wenn der Chip für normales Schreiben verwendet wird, werden Daten zuerst aus dem Speicher ausgelesen, daraufhin fehler­ korrigiert und dann mit den Schreibdaten vermischt, bevor sie in das R Register eingeschrieben werden. Der Inhalt des R Registers mit den modifizierten Daten wird dann über die Fehlerkorrekturlogik auf den Weg zu dem Speicher gelenkt. Dies ist erforderlich, weil die Anzahl der Bits, die über den Schreibeingang zu dem Chip gelangt, kleiner als die Men­ ge der in den Speicher geschriebenen Daten ist. Dieser Ver­ mischungsschritt ermöglicht, eine richtige Fehlerkorrektur­ information für die zu schreibenden Wörter zu erzeugen. Bei der Verwendung für ein normales Lesen wird eine Zeile von Daten dem Speicher entnommen, fehlerkorrigiert und in das R Register eingeschrieben. Beim nächsten Taktzyklus wählen Adressenbits die richtige Untergruppe von Bits aus, die von dem Chip fortgesandt werden soll.
Gemäß einer weiteren Zielsetzung der Erfindung wird ein Ver­ fahren zur Steuerung einer Speicherbank von Verarbeitung­ im-Speicher-Chip über Adressen- und Datenbusse angegeben. Bei der normalen Lese-Schreibe-Betriebsart erhält eine Bank von Verarbeitung-im-Speicher-Chip Zeilen- und Spaltenadres­ sen auf dem Adressenbus und Lese-Schreib-Daten auf dem Da­ tenbus. Bei der Verarbeitung-im-Speicher-Chip Betriebsart erhält eine Bank von Verarbeitung-im-Speicher-Chips eine Zeilenadresse auf dem Adressenbus und einen Einfachbefehl- Mehrfachdaten Befehl, der auf dem Datenbus ausgeführt werden soll. Wahlweise kann der Einfachbefehl-Mehrfachdaten Befehl auf den nicht verwendeten Spaltenadressenleitungen des Adressenbusses übertragen werden. Auf diese Weise können Sequenzen von Einfachbefehl-Mehrfachdaten Befehlen vollständig bei überlappenden Speicherbezügen und Operationen bei allen Prozessoren gepipelined werden.
Der Erfindungsgegenstand wird im folgenden anhand von Aus­ führungsbeispielen unter Bezugnahme auf die Zeichnungen nä­ her erläutert. Es zeigt:
Fig. 1 ein Blockdiagramm des Verarbeitung-im-Speicher- Chips nach der Erfindung,
Fig. 2 eine schematische Darstellung eines bitseriellen Prozessors des Verarbeitung-im-Speicher-Chips ge­ mäß Fig. 1,
Fig. 3 ein Diagramm, das das globale ODER-Netzwerk und parallele Präfix-Netzwerk des Verarbeitung-im- Speicher-Chips der Fig. 1 darstellt, und
Fig. 4 ein Blockdiagramm eines umstrukturierten Spei­ cherprozessors zur Spaltenverringerung der Spei­ cheranordnung.
Unter Bezugnahme zunächst auf die Fig. 1 wird die Architek­ tur des Verarbeitung-im-Speicher-Chip-Schaltkreises be­ schrieben. Die Hauptbestandteile des Schaltkreises sind mit einem lokalen Speicher 4 verbundene serielle Bitprozessoren 2. Der lokale Speicher kann während jedes Taktzyklus ein Bit zu oder von einem seriellen Bitprozessor über die Fehlerkor­ rekturschaltkreislogik verschieben. (Somit ist die Taktge­ schwindigkeit für eine Verarbeitung-im-Speicher-Chip-Kon­ struktion durch den Speicherzugriff und zusätzlich die Zeit der Fehlerkorrekturschaltkreislogik festgelegt). Anderer­ seits kann der Speicher einen externen Lese- oder Schreib­ vorgang während jeden Taktes durchführen, nachdem er wieder­ um durch die Fehlerkorrekturschaltkreis -Logik verarbeitet worden ist. Es sind ferner logische Kreise hinzugefügt, um Übertragungswege zwischen den Prozessorelementen auf dem Chip und zwischen den Chips bereitzustellen.
Der mit einem seriellen Bitprozessor verbundene Speicher wird als eine Speicherspalte mit der Weite von einem Bit an­ gesehen. Die Spalten sind miteinander verkettet und bilden eine Speicheranordnung 6. Ein Satz von seriellen Bitprozes­ soren ist in ähnlicher Weise miteinander verkettet und wird normalerweise funktionsmäßig als sich unterhalb der Spei­ cheranordnung befindend angesehen. Dies bedeutet, daß eine einzelne Zeilenadresse zu der Speicheranordnung ein Bit an jeden der seriellen Bitprozessoren insgesamt in parallel liefert oder von diesen nimmt. Alle Speicherzugriffe, inter­ nen und externen Bezüge und Lese- und Schreibvorgänge sind parallele Operationen. Dies bedeutet, daß während eines Ver­ arbeitung-im-Speicher-Chip - Befehls, die Spaltenadressen­ bits unbenutzt sind. Die normalen Spaltendekodierer und -Auswahleinrichtungen für externe Bezüge werden bewegt, um den Unterschied in der Chiparchitektur und für die Fehler­ korrekturschaltkreis - Verarbeitung und die sich ergebende Änderung der Zeitsteuerung zu ermöglichen. Die Speicheran­ ordnung umfaßt auch eine Prüfspalte 8, die noch weiter unten im einzelnen erklärt werden wird.
Zwischen der Speicheranordnung 6 und den Prozessoren 2 be­ findet sich ein Fehlererfassungs- und Korrekturschaltkreis 10, der eine Zeilendekodierprüfeinrichtung 12 aufweist, die im einzelenen noch näher erläutert wird.
Ein R-Register 14 ist zwischen dem Fehlererfassungs- und Korrekturschaltkreis 10 und den Prozessoren 2 vorgesehen, um ein Pipipelining zu realisieren, damit sich das Speichern und Laden von Speicherdaten mit der Verarbeitung anderer Da­ ten überlappen kann.
Der Verarbeitung-im-Speicher-Chip kann in zwei Betriebsarten arbeiten: als ein normaler Lese-Schreib-Speicher, oder zum Rechnen (Verarbeitung-im-Speicher-Chip - Betriebsweise). Ar­ beitsleistung ist durch Rechenprozessoren 2 und zusätzliche Steuerleitungen 16 hinzugefügt, damit die Prozessoren ein Ergebnis statt eines Speicherzugriffzyklus berechnen.
Wenn der Chip für die Berechnung verwendet wird, wird eine Adresse an den Zeilendekodierer 18 von den Chip-Anschlüssen gegeben. Als Ergebnis hiervon, wird eine Datenzeile dem Speicher entnommen. Die Daten sind fehlerkorrigiert und in dem R-Register am Ende des Taktzyklus/dem Anfang des näch­ sten Taktzyklus verriegelt. Beim nächsten Taktzyklus verwen­ den die Prozessoren die Daten als Teil der Rechensequenz un­ ter Steuerung der externen Steuerung und der Befehlsleitun­ gen 16. Wenn ein berechnetes Ergebnis von den Prozessoren in dem Speicher gespeichert werden soll, wird der Speicherlade­ zyklus durch einen Speicherzyklus ersetzt. Fehlerkorrektur­ daten werden zu den Speicherdaten auf ihrem Weg in die Spei­ cheranordnung hinzugefügt.
Wenn der Chip für normales Schreiben verwendet wird, werden Daten zuerst aus dem Speicher 4 ausgelesen, fehlerkorrigiert und dann mit den Schreibdaten von dem Schreibdekodierer 20 vermischt, bevor sie in das R-Register 14 eingegeben werden. Der Inhalt des R-Registers mit den neuen Daten wird dann über die Fehlerkorrekturlogik auf dem Weg zu dem Speicher zurückgeführt. Dies ist erforderlich, weil die Bitanzahl, die zu dem Chip durch den Schreibanschluß gelangt, kleiner als die Menge der in den Speicher geschriebenen Daten ist. Dieser Vermengungsschritt ermöglicht, daß eine richtige Feh­ lerkorrekturinformation für die zu schreibenden Wörter rege­ neriert wird.
Bei der Verwendung für normales Lesen wird eine Datenzeile dem Speicher entnommen, fehlerkorrigiert und in das R-Regi­ ster eingegeben. Beim nächsten Taktzyklus wählen Spalten­ adressenbits die richtige Untergruppe von Bits, die von dem Leseselektor 22 von dem Chip abgesandt werden soll.
Bei der dargestellten Ausführungsform sind 256 Prozessoren vorhanden, die, wenn Einzelfehlerkorrektur-Doppelfehler­ erfassungs-Prüfbytespalten hinzugefügt werden, insgesamt 312 Spalten in der Speicheranordnung ergeben. Jede Spalte soll 2 Kbits groß sein. Somit wird der Speicher 2048×312= 638 976 (624K) Bits enthalten. Es besteht keine Anforderung dahingehend, daß die Speicheranordnung physikalisch in die­ ser Ausgestaltung gebaut werden muß, da andere ebenso gut arbeiten.
Jeder Prozessor auf einem Verarbeitung-im-Speicher-Chip ist eine bitserielle Recheneinheit. Alle Prozessoren sind iden­ tisch und werden parallel gesteuert; dies bedeutet, daß alle Prozessoren die gleiche Operation zu derselben Zeit und alle an unterschiedlichen Daten durchführen. Die Prozessoren im­ plementieren somit eine Einfachbefehl-Mehrfachdaten Rechen­ architektur.
Unter Bezugnahme auf die Fig. 2 wird nun ein bitserieller Prozessor mehr im einzelnen beschrieben. Der Prozessor um­ faßt verschiedene Multiplexer 24, 26, 27, 28, 30, 31, 32, 33, 34, 36, 37 die eine arithmetische Logikeinheit 38 mit Festfunktion beschicken, wobei Mittel vorhanden sind, um be­ dingt die Rechenergebnisse an andere Prozessoren oder an den Speicher zu übertragen.
Die arithmetische Logikeinheit 38 nimmt drei Eingangssignale auf, die A, B und C genannt werden, und berechnet drei fest­ gelegte Funktionsergebnisse der drei Eingänge. Die Ergebnis­ se sind die Summe (A + B + C), die Übertragung (Carry) (A·B + A·C + B·C) und der Sequenzvergleich (String Compare) (C + A·B). Unter Verwendung der Arbeitsmöglichkeiten der Multi­ plexer kann ein ganzer Satz von logischen Operationen von der Übertragungs-Funktion ausgeführt werden. Beispielsweise kann durch Blockieren des C-Eingangs (Steuern von C = 0), das UND von A und B berechnet werden, und indem der C-Ein­ gang (C = 1 gesetz) gesteuert wird, kann das ODER von A und B berechnet werden.
Verschiedene Multiplexer wählen die Datenwege und Funktionen innerhalb des Prozessors. Datenquellen, die die Multiplexer betreiben, kommen von dem Speicher, anderen Prozessoren über interne Übertragungsnetzwerke, oder intern erzeugte und festgehaltene Ergebnisse.
Es sind drei Hauptmultiplexer 24, 26, 28 vorhanden, die die Eingänge A, B, C der arithmetischen Logikfunktion beschik­ ken. Jeder Multiplexer wird von getrennten Steuer-/Befehls­ leitungen gesteuert. In der Zeichnung sind die Steuerleitun­ gen als Fn dargestellt, wobei n eine Zahl von 0 bis 20 be­ deutet. Alle Steuerleitungen haben ihren Ursprung außerhalb des Chips. Jeder der Multiplexer 24, 26, 28 wird von drei getrennten Steuerleitungen betrieben. Zwei der Leitungen sind dekodiert, um einen der vier Eingänge auszuwählen, wäh­ rend die dritte Steuerleitung den Zustand des ausgewählten Signals umkehrt. Der erste Multiplexer 24 kann unter Steu­ erung durch die Steuerleitungen den vorhergehenden Ausgang des Multiplexers 24 von dem letzten Taktzyklus (dieser Zu­ stand ist durch ein Flip-Flop 20 aufbewahrt, welches mit dem Multiplexer 24 verbunden ist), die gerade von dem Speicher ausgelesenen Daten, entweder das Summen- oder Trägerergebnis von der arithmetischen Logikfunktion, wobei die Auswahl zwi­ schen diesen zwei Signalen von einem anderen Multiplexer durchgeführt wird, der von einer anderen Steuer-/Befehlslei­ tung betrieben wird, und logischem Null auswählen. Jedes dieser Signale kann bei jedem Taktzyklus zu dem Eingang A der arithmetischen Logikfunktion geleitet werden, möglicher­ weise umgekehrt.
Der zweite Multiplexer 26 besitzt die gleichen Dateneingänge wie der erste Multiplexer 24 mit Ausnahme, daß der erste Eingang von einem Multiplexer 27 mit einer zweiten Ebene herstammt, der aus verschiedenen Kommunikationswegen oder Rückführungen einige vorhergehend berechnete Ergebnisse aus­ wählt. Die Steuerleitungen sind von den Steuerleitungen zu dem ersten Multiplexer verschieden, obgleich sie identischen Funktionen dienen. Ebenso wie bei dem ersten Multiplexer können zu der arithmetischen Logikfunktion geschickte Daten umgekehrt werden, wenn es erforderlich ist.
Der dritte Multiplexer 28 kann aus der vorhergehenden Ausga­ be des dritten Multiplexers beim letzten Taktzyklus (dieser Zustand wird durch ein Flip-Flop 42 aufgehoben, das mit dem dritten Multiplexer verbunden ist) denselben Übertragungs­ multiplexer 27 auswählen, der den zweiten Multiplexer 26 be­ schickt, nämlich entweder das Ergebnis für den Träger oder für den Sequenzvergleich von der arithmetischen Logikfunk­ tion, wo die Auswahl zwischen diesen zwei Signalen von einem anderen Multiplexer durchgeführt wird, der von einer anderen Steuer-/Befehlsleitung betrieben wird, und logischem Null. Die ausgewählte Größe, möglicherweise invertiert, wird unter Steuerung an drei getrennten Steuerleitungen zu der arithme­ tischen Logikfunktion gesandt.
Jede Einfachbefehl-Mehrfachdaten Einrichtung benötigt einen Mechanismus, damit einige Prozessoren gewisse Operationen nicht durchführen. Der für den Verarbeitung-im-Speicher-Chip ausgewählte Mechanismus besteht in der bedingten Speiche­ rung. Das bedeutet, daß, statt einige Prozessoren an der Durchführung eines Befehls zu hindern, führen alle Prozesso­ ren den Befehl durch, jedoch wird nicht von allen das Re­ chenergebnis gespeichert. Um diese Art der bedingten Steue­ rung durchzuführen, sind drei Flip-Flops 35 zu dem Prozessor zusammen mit Multiplexern 31, 33, 36 und 37 hinzugefügt. Bei jedem beliebigen Zyklus kann der Multiplexer irgendeinen der drei oder auch logische Null auswählen. Ebenso wie bei den vorhergehenden Multiplexern, kann der Zustand des ausgewähl­ ten Eingangs invertiert werden. Wenn zum Beispiel die logi­ sche Null als Eingang ausgewählt wird, so kann dies den Aus­ gang auf logische Eins bringen, indem der Befehl für ein in­ vertiertes Signal aktiviert wird.
Die Einfachbefehl-Mehrfachdaten- Befehlsfolge, die gerade ausgeführt wird, lädt die alten Daten von dem Speicher in das mit dem A Multiplexer verbundenen Flip-Flop und lenkt das errechnete Ergebnis von dem arithmetische Logikfunktion durch den B Multiplexer. Wenn der Multiplexer 33, der von dem Multiplexer 36 gespeist wird, eine logische Eins aus­ gibt, werden die 8 Daten zu dem Speicherspeicherungsweg tor­ gesteuert, während andererseits die Daten von dem A Multi­ plexer torgesteuert werden.
Daten werden in die Speicherfreigabe-Flip-Flops 35 geladen, im allgemeinen von Daten, die von dem Speicher über den Mul­ tiplexer 26 oder von der arithmetische Logikfunktion als ein errechnetes Ergebnis über die Multiplexer 26 und 28 geladen sind. Eine Steuerleitung wählt ein Ergebnis oder das andere durch einen anderen Multiplexer 34 aus und weitere Steuer­ leitungen wählen aus, welche Speicherungsfreigabebits 35, wenn solche vorhanden sind, geladen werden sollen.
Daten können von jedem Prozessor zu Netzwerken geleitet wer­ den, die eine Übertragung zwischen den Prozessoren auf dem und außerhalb des Verarbeitung-im-Speicher-Chip bereitstel­ len. Es gibt zwei unterschiedliche Netzwerke, die globale ODER-Netzwerk und paralleles Präfix-Netzwerk genannt werden. Das globale ODER-Netzwerk dient dazu, in einer Viele-zu-Eins oder Eins-zu-Viele Weise zu übertragen, während das paralle­ le Präfix-Netzwerk dazu dient, eine Viele-zu-Viele-Übertra­ gung zu ermöglichen.
Zu dem globalen ODER-Netzwerk geschickte Daten werden mit einem der Speicherungsfreigabebits 35 torgesteuert. Dies er­ möglicht, daß ein einzelner bzw. besonderer Prozessor das globale ODER-Netzwerk treiben kann, indem das Speicherungs­ freigabebit dieses Prozessors eine logische Eins ist, wäh­ rend bei den anderen Prozessoren das Freigabebit eine logi­ sche Null ist.
Andererseits können alle Prozessoren auf dem Chip das globa­ le ODER-Netzwerk treiben und das globale ODER aller Prozes­ soren zurück bis zu den individuellen Prozessoren oder bis zu einer höheren Ebene der außerhalb des Chips liegenden Steuerung liefern. Das globale ODER auf dem Chip über alle Prozessoren wird durch das Mehrebenen-ODER-Tor 49 durchge­ führt.
Die Daten sowohl von dem globalen ODER-Netzwerk als auch von dem parallelen Präfix-Netzwerk werden durch einen anderen Multiplexer 27 ausgewählt, der von getrennten Steuerleitun­ gen gesteuert wird. Diese Daten können von dem zweiten oder dem dritten Multiplexer 26, 28 oder auch von beiden ausge­ wählt werden.
Das parallele Präfix-Netzwerk wird unter Bezugnahme auf die Fig. 3 beschrieben. Dieses Netzwerk leitet seinen Namen von der mathematischen Funktion ab, die Durchmustern oder para­ lleler Präfix genannt wird. Das Netzwerk gemäß Fig. 3 im­ plimentiert diese Funktion in einer Weise, die ein hohes Maß von Parallelverarbeitung erlaubt, um den parallelen Präfix über jeden assoziativen Operator zu beschleunigen.
Die Präfixoperation über eine Addition wird Durchmustern ge­ nannt und ist definiert als:
Xi = Xi-1 + Yi für i = 1 bis n; X0 = 1
oder
X₁ = X₁
X₂ = X₁ + Y₂
X₃ = X₂ + Y₃
X₄ = X₃ + Y₄
Man beachte die Verkettung der Operationen. Wenn diese in dieser Weise durchgeführt werden, hängt jedes Ergebnis von allen vorhergehenden Ergebnissen ab. Aber diese Gleichungen können umgeformt werden zu:
X₁ = X₁
X₂ = X₁ + Y₂
X₃ = X₁ + Y₂ + Y₃
X₄ = X₁ + Y₂ + Y₃ + Y₄
Jeder Prozessor beginnt mit einem einzigen Datenelement Y1 bis Yn. Das parallele Präfix-Netzwerk ermöglicht, daß der die Kopie von Y2 haltende Prozessor seine Daten zu dem Pro­ zessor sendet, der Y1 hält, und zur gleichen Zeit ermög­ licht, daß der Y4 haltende Prozessor seine Daten zu dem Y3 haltenden Prozessor sendet, etc. Jeder Prozessor führt die erforderliche Operation an den Daten durch (bei diesem Bei­ spiel die Addition) und stellt dann das Teilergebnis für weitere Berechnungen parallel mit anderen ähnlichen Opera­ tionen zur Verfügung, bis alle Prozessoren das Ergebnis X1 im Prozessor 1, X2 im Prozessor 2, usw. besitzen.
Wenn dieses Netzwerk als Hardware implementiert wird und für allgemeine Prozessorübertragung verwendet wird, werden zwei Vorteile erhalten. Erstens, das Netzwerk ermöglicht, daß ei­ nige Funktionen in paralleler Weise durchgeführt werden kön­ nen, die sonst seriell ausgeführt werden müßten, und zwei­ tens, das Netzwerk kann sehr wirkungsvoll in Silizium imple­ mentiert werden, wobei wenig Chipleitungswerk für das Maß an erzielter Parallelverarbeitung benötigt wird.
Dieses Netzwerk ist bei allen logarithmischen/logischen Ebe­ nen über die Prozessoren ausgeführt. Die erste Ebene ermög­ licht, daß Prozessoren Daten um einen Prozessor nach links schicken, während sie Daten von dem Prozessor auf ihrer rechten Seite empfangen. Die nächste Ebene erlaubt, daß be­ sondere Prozessoren ihre Daten zu den nächsten zwei Prozes­ soren auf der linken Seite schicken. Die darauf folgende Ebenen verdoppeln die Anzahl von Prozessoren, die Daten erhalten, während die Anzahl der Prozessoren halbiert wird, die Daten abgeben. Alle Prozessoren erhalten Daten von allen Ebenen. Steuerleitungen, deren Zustand von einem außerhalb ablaufenden Ausführungsprogramm gesteuert werden, wählen den erforderlichen Pegel. Alle Prozessoren wählen denselben Pe­ gel aus.
Es gibt einige Erweiterungen von einer Basisimplementierung des parallelen Präfix-Netzwerks. So sind die Verbindungen, die benötigt werden, einen Pegel vollständig zu machen, im­ plementiert. D.h., daß zum Beispiel auf der Ebene 0 die ge­ rade numerierten Prozessoren Daten zu den Prozessoren auf ihrer linken Seite übertragen können, obgleich das nicht von der parallelen Präfix-Netzwerk-Funktion verlangt wird. Fer­ ner ist eine weitere Ebene 0 zu dem parallel Präfix-Netzwerk hinzugefügt, welches eine Datenbewegung in der umgekehrten Richtung, d. h. nach rechts, ausgeführt. Zusätzlich sind Mul­ tiplexer 46 und 48 an das Ende der Verbindungen für die Be­ wegung der Daten nach rechts und links hinzugefügt, die er­ möglichen, daß die Übertragung in einer erweiterten Be­ triebsart oder in einer zirkularen Betriebsart durchgeführt wird. Bei der zirkularen Betriebsart treibt der letzte Pro­ zessor auf dem Chip den ersten Prozessor (und der erste treibt den letzten zur Datenbewegung in der anderen Rich­ tung). Bei der erweiterten Betriebsart erhalten die Prozes­ soren am Ende Daten von außerhalb des Chips. Dies ermög­ licht, daß Übertragungsnetzwerke gebaut werden können, die größer als ein Chip sind.
Wegen der Anzahl der Prozessoren und der durch eine maximale praktisch verwendbare Chipgröße festgelegten Grenzen, ist die jedem Prozessor zur Verfügung stehende Speichergröße be­ grenzt. Auch wird es Programme und Algorithmen geben, die keine volle Verwendung der vorhandenen Anzahl an Prozessoren machen können. Ein Versuch, beide Probleme gleichzeitig zu lösen, wird als Spaltenreduzierung bezeichnet und wird nun in Verbindung mit der Fig. 4 beschrieben.
Prozessoren sind so zusammengruppiert, daß der vorher indi­ viduelle Speicher für jeden Prozessor von der Gruppe gemein­ sam genutzt wird. Zusätzliche Steuerleitungen, die als zu­ sätzliche Adressenleitungen dienen, lenken angeforderte Da­ ten von einer besonderen Speicherspalte zu allen Prozessoren innerhalb der Gruppe. Jeder Prozessor in der Gruppe rechnet somit mit denselben Daten (man erinnere, daß alle Prozesso­ ren dieselbe Funktion durchführen, ob sie Teil der Gruppe sind oder nicht). Wenn Daten gespeichert werden sollen, wird der Prozessor der der Adresse der zu speichernden Daten ent­ spricht, freigegeben, um das neuerlich berechnete Ergebnis in den Speicher zu senden, während die Prozessoren innerhalb der Gruppe, die nicht der gespeicherten Adresse entsprechen, die alten Daten zurückkopieren, die vorhergehend von der Speicheradresse geholt worden waren.
Genauer gesehen, besitzt eine Vielzahl von Speichereinrich­ tungen 50, 52, 54, 56 Prozessoren 58, 60, 62, 64, die mit ihnen verbunden bzw. ihnen zugeordnet sind. Ein erster Se­ lektor 66 verbindet die Ausgänge der Speichereinrichtungen mit den Eingängen der Prozessoren, so daß jeder Prozessor als Eingang den Ausgang von einem der Speicher erhält. Eine Vielzahl von Multiplexern 68, 70, 72, 74 verbindet die Aus­ gänge der einzelnen Prozessoren mit dem Eingang der zugeord­ neten Speichereinrichtung. Der Ausgang von jedem Speicher ist auch mit dem zugeordneten Multiplexer über eine Rück­ kopplungsleitung 76 verbunden. Ein Dekodierer 78 steuert die Multiplexer 68, 70, 72, 74, um als Eingang zu den Speichern einen der Speicher- und Prozessorausgänge zu wählen. Somit ist die Vielzahl an Prozessoren wirkungsvoll auf einen ein­ zigen Prozessor verringert und die dem einzelnen Prozessor zur Verfügung stehende Speichergröße wird um einen Faktor entsprechend der Anzahl von Speichern vergrößert.
Eine Vielzahl der Speichereinrichtungen und Prozessoren kann in einer Gruppe angeordnet werden, die einen einzigen Selek­ tor und einen einzigen Dekoder umfaßt.
Die vorhergehend diskutierte Implementierung könnte durch eine Logik ersetzt werden, die den ganzen Speicher von einer Prozessorgruppe zu einem Prozessor lenkt und die das Erge­ bnis von diesem Prozessor zurück zu der richtigen Speicher­ adresse führt. Diese Realisierung, obgleich funktionsmäßig richtig, führt eine zusätzliche Zeitverzerrung in den Lo­ gikweg ein und würde in hohem Maße die Implementierung der bedingten Speicherung von Daten verkomplizieren, die vorher­ gehend erörtert worden ist.
Die normale, externe Fehlerkorrektur wird von einem Satz in­ terner Einzelfehlerkorrektur-Doppelfehlererfassungs-Blöcke ersetzt, die alle von einem Speicher gelesenen Daten (unter Einschluß externer Lesevorgänge) korrigieren und Prüfbits für alle in einen Speicher zu schreibende Daten (wiederum unter Einschluß externer Lesevorgänge) erzeugen. Einzelfeh­ lerkorrektur-Doppelfehlererfassung ist als ein wiederholter Satz von 39 Bit-Gruppen implementiert - 32 Datenbits und 7 Prüfbits. Die Datenbits sind mit seriellen Prozessoren ver­ bunden, während dies bei den Prüfbits nicht der Fall ist. Paare der 39 Bit-Gruppen besitzen verschachtelte Bits. So sind in einer 78 Bit-Gruppe (78 = 2(32 + 7)) die gerade nu­ merierten Bits einer Einzelfehlerkorrektur-Doppelfehlerer­ fassungs-Gruppe zugeordnet, während die ungeraden Bits einer anderen Gruppe zugeordnet sind. Dies bedeutet, daß Fehler, wie benachbarte, kurzgeschlossene Bitleitungen als zwei ein­ zelene behebbare Fehler statt eines nicht korrigierbaren Doppelbitfehlers gesehen werden. Als Kompromiß könnten ver­ schachtelte 72 Bit-Gruppen betrachtet werden. Eine Speicher­ gruppe hätte 144 Spalten (144 = 2(64 + 8)). Es gäbe zwei Speichergruppen (statt der vier vorgeschlagenen Gruppen, für eine Gesamtheit von 288 Spalten statt von 312).
Es gibt auch eine andere Fehlererfassungslogik auf dem Chip. Die Parität sowohl von den erhaltenen Daten als auch von den Adressen wird getrennt beim Eintreffen überprüft, ebenso wie die Parität des Einfachbefehl-Mehrfachdaten-Befehls. Die Parität der Lesedaten von dem Chip wird zusammen mit den Da­ ten übertragen. Es gibt auch eine Zeilen-Paritätsprüfung, zu der man Zugriff hat. Die Parität des Zeilenabschnittes der erhaltenen Adresse wird mit dem Inhalt einer besonderen Speicherspalte verglichen, deren Inhalt die Parität der Zei­ le ist, auf die gerade zugegriffen wird. Jeder Fehler, der von irgendeinem Paritätsfehler oder einem Einzelfehlerkor­ rektur-Doppelfehlererfassungs-Fehler festgestellt wird, wird in das Zustandsregister des Chips eingeschrieben. Der Chip­ zustand kann über den normalen Leseweg festgestellt werden, oder Zugriff kann über den Verwaltungs-Chipeingang erhalten werden.
Die externe Lese- und Schreibzeitsteuerung wird durch die Fehlerkorrekturlogik beeinflußt. Bei einer Leseoperation werden Daten von dem Speicher ausgelesen, fehlerkorrigiert und dann in das R Register eingeschrieben. Die ersten zwei Adressenbits werden auf dem Weg in dieses Register aufge­ löst. Bei einem zweiten Zyklus wird die Adressenauswahl ver­ vollständigt und die Daten werden von diesem Teil abge­ schickt. Die Adressier- und Datenwege sind derart, daß die 64 Datenspalten einer verschachtelten Einzelfehlerkorrektur -Doppelfehlererfassung-Gruppe ein Datenbit auf den Chip und von dem Chip treiben.
Zum externen Schreiben wird das Wort an der Leseadresse ge­ lesen, fehlerkorrigiert und dann mit den vier Schreibbits in das R Register gemischt. Beim nächsten Taktzyklus werden Prüfbits von den in dem Register gehaltenen Daten erzeugt und alle 312 werden geschrieben. Es gibt Register, die die externe für den zweiten Speicherzyklus geltende Adresse hal­ ten, so daß Daten und Adressen an den Chipanschlüssen nur für eine Taktperiode Gültigkeit haben müssen.
Die letzten zwei Absätze hoben hervor, daß ein Verarbeitung­ -im-Speicher-Chip eine Synchronschnittstelle mit der Außen­ welt besitzt. Bei einem Lesevorgang werden die Daten nach der zweiten Taktflanke des Taktes gültig, der den Lesevor­ gang startet. Zumindest auf der Chip-Ebene kann ein neuer Lesezyklus bei jedem Takt gestartet werden mit der Ausnahme, daß, wenn ein Datenfehler vorliegt, es wünschenswert ist, die korrigierten Daten erneut in den Speicher zu schreiben, was einen weiteren Taktzyklus benötigen würde. Beim Schreib­ vorgang ist der Chip während zweier Taktzyklen beschäftigt, obgleich die Daten nicht für beide Taktzyklen gültig sein müssen. Es gibt jedoch hier nichts, daß dahingehend zu be­ trachten ist, daß der Takt des Verarbeitung-im-Speicher- Chips dieselbe Frequenz haben müßte, wie das restliche Rech­ nersystem.
Ferner besitzt der Verarbeitung-im-Speicher-Chip -Chip ver­ schiedene Fehlererfassungsmechanismen. Diese umfassen: Erfassen und Erzeugen der Datenparität.
Ein fünftes Bit begleitet die Vierbitdatenschnittstelle beim Lesen und beim Schreiben.
Adressenparität.
Ein Paritätsbit wird bei jeder erhaltenen Adresse über­ prüft, ob für einen externen Lesevorgang oder einen Schreibvorgang bezüglich eines Verarbeitung-im-Spei­ cher-Chip Betriebsartenbezuges.
Steuerparität.
Ein Paritätsbit wird bei jedem Einfachbefehl-Mehrfach­ daten-Befehl überprüft.
Zeilenparität.
Eine besondere Spalte ist zu der Speicheranordnung hin­ zugefügt, deren Inhalt die Parität der Zeile ist, auf die Bezug genommen wird. Dieses Bit wird mit der Pari­ tät der erhaltenen Zeilenadresse verglichen. Bezüglich der Spaltenreduzierungsbetriebsart ändert sich hier nichts.
Alle diese Fehler, die zusammen mit Einzelbit- und Vielfach- Bitfehlern von der Einzelfehlerkorrektur-Doppelfehlererfas­ sungs-Logik erfaßt werden, werden in Verarbeitung-im-Spei­ cher-Chip -Zustands-Flip-Flops eingeschrieben. Diese können über die normalen Speicherzugriffsleitungen oder über den Verwaltungseingang des Chips gelesen werden.
Der Verwaltungseingang soll JTAG/IEEE 1149.1 sein. Zusätz­ lich zu dem Chipzustand kann man über diesen Eingang Zugriff zu einiger Chiptestinformation erhalten.
Es gibt verschiedene Bits, die in dem Chip zur Steuerung ei­ niger der Datenwege vergraben sind, um einige Diagnoseeigen­ schaften zu implementieren, die sonst sehr schwierig (oder unmöglich) zu überprüfen wären. Steuerbits sind vorgesehen, um die Erzeugung von Prüfbits abzustellen. Dies ermöglicht, die Einzelfehlerkorrektur-Doppelfehlererfassungs-Logik zu überprüfen. Was gemacht wird, besteht darin, die Schreib­ prüfbits auf denselben Wert zu bringen, der bei einem Daten­ wort nur mit Nullen erzeugt werden würde. Steuerbits ermög­ lichen auch den Vergleich innerhalb der Zeilenparitätslogik zu invertieren. Jeder Bezug auf Verarbeitung-im-Speicher- Chip sollte dann den Zeilenparität-Fehlerzustandsbit setzen. Andere Bits dienen der Datenlenkung bei dem parallelen Prä­ fix-Netzwerk.
Zusammengefaßt umfaßt das Verfahren zum Feststellen von Systemfehlern auf der Speicherchipebene die Schritte Pari­ tätsfehler bei Mehrfachbitschnittstellen festzustellen, die zu dem Chip gelangen, und den Zustand von jedem der erfaßten Paritätsfehler zu bewahren. Die Fehler des Speicherzeilen­ anordnungs-Dekodierschaltkreises werden als nächstes erfaßt und der Zustand dieser Fehler wird aufbewahrt. Einzelbit- Speicherfehler werden erfaßt und korrigiert und Doppelbit- Speicherfehler werden erfaßt und ihr Zustand wird aufbe­ wahrt.
Eine Zeile von Speichereinrichtungen ist in Korrekturunter­ gruppen unterteilt, von denen jede eine Vielzahl von Spalten umfaßt, wobei abwechselnde Spalten mit getrennten Fehlerer­ fassungskorrekturschaltkreisen verbunden sind. Die Fehlerzu­ stände bei dem Chip werden dann gelesen und gleichzeitig ge­ löscht. Der Einzelbit-Fehlerzustand und der Vielfach-Fehler­ zustand werden getrennt für Verwaltungszwecke aufbewahrt.
Die Verarbeitung-im-Speicher-Chip Betriebsausführung ist sehr ähnlich einer normalen Lese-Schreib-Steuerung, denn die Lese-Schreib-Leitung wird verwendet, um zu unterschei­ den, ob der Bezug auf den Speicher ein Lesevorgang oder ein Schreibvorgang ist. Bei der Verarbeitung-im-Speicher-Chip Lesebetriebsart werden die Adressenleitungen zur Steuerung verwendet und die Datenleitungen werden verwendet, die Zu­ stands-Steuerungs-Information der zentralen Recheneinheit (ein Bit pro Datenleitung bei Verarbeitung-im-Speicher-Chip) zurückzuführen. Bei der Verarbeitung-im-Speicher-Chip Schreibbetriebsart werden die Datenleitungen zur Verarbei­ tung-im-Speicher-Chip Steuerung verwendet und die Adressen­ leitungen werden verwendet, um bei den Prozessoren die Zei­ lenauswahl zu spezifizieren.
Ein Verfahren zur wirkungsvollen Befehlsdekodierung und Aus­ führung von Grundkodiersegmenten bei einem Verarbeitung-im- Speicher-Chip wird ebenfalls mit umfaßt. Gemäß dem Verfahren wird eintreffende Befehls-, Adressen- und Dateninformation in getrennten Übertragungsleitungen bzw. Übertragungskanälen (pipelines) gespeichert. Zugang zu der Information erfolgt zu einer ersten geeigneten Zeit in Übereinstimmung mit der Befehlsinformation, eine Funktion auf einer höheren Ebene durchzuführen, die durch eine Befehlssequenz festgelegt ist. Die Information wird durch eine arithmetische Logikeinheit verarbeitet, um ein Ausgangsergebnis zu erzeugen, das wieder in den Datenübertragungsweg eintritt. Auf die Daten- und Adressenkanäle wird zu einer zweiten geeigneten Zeit in Übereinstimmung mit der Befehlsinformation zugegriffen, die­ se Information im Speicher zu speichern.
Bevorzugte Ausgestaltungen und Ausführungsformen der Erfin­ dung wurden dargestellt und erläutert und es ist für den Durchschnittsfachmann offensichtlich, daß verschiedene Ab­ änderungen und Abwandlungen vorgenommen werden können, ohne von dem Grundgedanken der Erfindung abzuweichen.

Claims (18)

1. Vorrichtung zur Verarbeitung von Daten von einem Speicher und von anderen Prozessoren, gekennzeichnet durch
  • a) drei Selektoreinrichtungen (A, B, C), von denen jede eine Vielzahl von Dateneingängen, eine Vielzahl von ersten Befehlseingängen (F1-n) und einen Ausgang aufweist, wobei jede der Selektoreinrichtungen bei jedem Taktimpuls einen von neuen Datenwerten und von vorhergehend berechneten Datenwerten in Übereinstim­ mung mit einem Befehl von den Befehlseingängen aus­ wählt,
  • b) eine Funktionseinheit, die mit den Ausgängen der Se­ lektoreinrichtungen zur Berechnung von arithmeti­ schen und logischen Funktionen der Daten von den Se­ lektoreinrichtungen verbunden ist, um einen Ausgang zu erzeugen,
  • c) Mittel, um wahlweise den Ausgang der Funktionsein­ heit zu einem Selektoreinrichtungseingang, einem an­ deren Prozessor und einem Speicher zu lenken, und
  • d) Mittel, um wahlweise neu berechnete Daten und ur­ sprüngliche Daten in Übereinstimmung mit externen Befehlen zu speichern.
2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Selektoreinrichtungen (A, B, C) Multiplexer umfassen.
3. Vorrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die Dateneingänge neue Daten von dem Speicher, neue Daten von anderen Prozessoren, vorhergehend be­ rechnete Daten, die von dem Funktionseinheitsausgang zurückgeführt worden sind, und einen erzwungenen Da­ tenausgang unter Befehlssteuerung erhalten.
4. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Funktionseinheit eine arithmetische Logikein­ heit umfaßt.
5. Vorrichtung nach Anspruch 4, dadurch gekennzeichnet, daß die arithmetische Logikeinheit Summierungs-, Träger- und Sequenzvergleichs-Funktionen durchführt.
6. Netzwerk zur Durchführung einer verallgemeinerten, pa­ rallelen präfix-mathematischen Funktion über beliebige assoziative Operatoren, gekennzeichnet durch,
  • a) Mittel, die eins Vielzahl von aufeinanderfol­ genden Übertragungsebenen festlegen, wobei die erste Ebene null ist und
  • b) Mittel, die eine Vielzahl von aufeinanderfol­ genden Gruppen von Prozessoren innerhalb jeder der Ebenen festlegen, wobei jede Gruppe 21 Pro­ zessoren umfaßt, wobei 1 die Ebenenzahl ist,
  • c) wobei jedem Prozessor innerhalb einer Gruppe ein einziger Eingang zugeordnet ist, der einen Ausgang von der vorhergehenden Gruppe umfaßt, wodurch eine Sequenz von Befehlen ausgegeben wird, die den Ebenen von der Ebene null bis zu der Ebene 1 entsprechen, um den parallelen Prä­ fix von 21 Werten zu berechnen, und
  • d) wobei die Eingänge auf der Ebene 1 und nachfol­ gende Ebenen einem einzigen Prozessor pro Grup­ pe zugeordnet sind, der alle vorhergehenden Eingäng erhalten hat.
7. Vorrichtung nach Anspruch 6, dadurch gekennzeichnet, daß die Gruppen innerhalb einer Ebene in aufeinander­ folgenden Paaren angeordnet sind, wobei eine Gruppe von jedem Paar Daten zu der anderen Gruppe des Paares schickt, um die mathematische Operation des parallelen Präfix festzulegen.
8. Vorrichtung nach Anspruch 6, dadurch gekennzeichnet, daß der Ausgang von der letzten Gruppe einer Ebene von Gruppen wahlweise die Eingäng der ersten Gruppe aller Ebenen treiben kann.
9. Vorrichtung nach Anspruch 6, dadurch gekennzeichnet, daß eine Vielzahl von Netzwerken umfaßt wird, bei de­ nen der Ausgang der letzten Gruppe einer Ebene von Gruppen von einem Netzwerk wahlweise die Eingänge der ersten Gruppe von allen Ebenen eines anderen Netzwer­ kes betreiben kann.
10. Umkonstruierter Speicherprozessor, gekennzeichnet durch
  • a) eine Vielzahl von Speichereinrichtungen,
  • b) eine Vielzahl von Prozessoren, die mit den jeweiligen Speichereinrichtungen verbunden sind,
  • c) erste Selektormittel, die die Ausgänge der Speicher­ einrichtungen mit den Eingängen der Prozessoren ver­ binden, wodurch jeder Prozessor als Eingang die Aus­ gänge von einem der Speicher erhält,
  • d) zweite Selektormittel, die den Ausgang von jedem der Prozessoren mit dem Eingang der dem Prozessor zuge­ ordneten Speichereinrichtungen verbinden, wobei fer­ ner der Ausgang von jedem Speicher mit den zweiten Selektormitteln verbunden ist, und
  • e) Mittel zur Steuerung der zweiten Selektormittel, um als einen Eingang zu den Speichern einen der Spei­ cher- und Prozessorausgänge auszuwählen, wodurch die Vielzahl von Prozessoren wirkungsvoll auf einen ein­ zigen Prozessor verringerbar ist und die für den ein­ zelnen Prozessor zur Verfügung stehende Speichermenge um einen Faktor der Anzahl der Speicher vergrößerbar ist.
11. Vorrichtung nach Anspruch 10, dadurch gekennzeichnet, daß die zweiten Selektormittel eine Vielzahl von Mul­ tiplexern umfassen, die jeweils mit der Vielzahl von Speichereinrichtungen verbunden sind.
12. Vorrichtung nach Anspruch 11, dadurch gekennzeichnet, daß die Steuermittel einen Dekodierer umfassen.
13. Vorrichtung nach Anspruch 12, dadurch gekennzeichnet, daß eine Vielzahl von Speichereinrichtungen und Pro­ zessoren in einer Gruppe angeordnet ist, wobei die Gruppe einzige erste Selektormittel und einen einzi­ gen Dekoder umfaßt.
14. Verfahren zum Erfassen von Systemfehlern auf der Speicherchip-Ebene, gekennzeichnet durch die Schritte, daß
  • a) Paritätsfehler bei Mehrfachbitschnittstellen erfaßt werden, die zu dem Chip gelangen, und daß der Zustand von jedem der erfaßten Paritätsfehler aufbewahrt wird,
  • b) daß die Fehler des Speicheranordnungszeilen-Dekodier­ schaltkreises festgestellt und ihr Zustand aufbewahrt wird, und
  • c) daß Einzel-Speicherfehler festgestellt und korrigiert werden und Doppelbit-Speicherfehler festgestellt und ihr Zustand aufbewahrt wird.
15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß ein Schritt vorgesehen ist, bei dem eine Zeile von Speichereinrichtungen in Korrekturuntergruppen unterteilt wird, von denen jede eine Vielzahl von Spalten umfaßt, wobei abwechselnde Spalten mit ge­ trennten Fehlererfassungskorrekturschaltkreisen ver­ bunden werden.
16. Verfahren nach Anspruch 15 dadurch gekennzeichnet, daß ein Schritt vorgesehen ist, die Fehlerzustände von dem Chip auszulesen und gleichzeitig die Fehler­ zustände zu löschen.
17. Verfahren nach Anspruch 15, dadurch gekennzeichnet, daß der Schritt vorgesehen ist, getrennt den Einzel­ bit-Fehlerzustand und den Mehrfachbit-Fehlerzustand für Verwaltungszwecke aufzubewahren.
18. Verfahren zur wirkungsvollen Befehlsdekodierung und Ausführung von Basiskodiersegmenten bei einem Verar­ beitung-im-Speicherchip, gekennzeichnet durch die Schritte
  • a) Speichern von einlaufender Befehls-, Adressen- und Dateninformation in getrennten Pipelines,
  • b) Zugreifen auf die Information zu einer ersten geeigneten Zeit in Übereinstimmung mit der Be­ fehlsinformation, um eine Funktion auf einer höheren Ebene durchzuführen, die durch eine Befehlssequenz festgelegt ist,
  • c) Verarbeiten der Information um ein Ausgangser­ gebnis zu erzeugen, welches die Dateninforma­ tion in die Pipeline wieder einbringt, und
  • d) Zugreifen auf die Daten- und Adressenkanäle zu einer zweiten geeigneten Zeit in Ubereinstim­ mung mit der Befehlsinformation, um diese In­ formation im Speicher abzuspeichern.
DE4134192A 1991-01-18 1991-10-16 Integrierter schaltkreis mit verarbeitung im speicher Withdrawn DE4134192A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US64363391A 1991-01-18 1991-01-18

Publications (1)

Publication Number Publication Date
DE4134192A1 true DE4134192A1 (de) 1992-07-23

Family

ID=24581652

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4134192A Withdrawn DE4134192A1 (de) 1991-01-18 1991-10-16 Integrierter schaltkreis mit verarbeitung im speicher

Country Status (4)

Country Link
US (1) US5396641A (de)
JP (1) JPH04248642A (de)
DE (1) DE4134192A1 (de)
GB (1) GB2252185B (de)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590345A (en) 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
KR940004434A (ko) * 1992-08-25 1994-03-15 윌리엄 이. 힐러 스마트 다이나믹 랜덤 억세스 메모리 및 그 처리방법
KR960015851B1 (ko) * 1994-07-12 1996-11-22 재단법인 한국전자통신연구소 반향 제거회로의 제어 방법(Controlling Method of Echo Canceller Circuit)
US5832291A (en) * 1995-12-15 1998-11-03 Raytheon Company Data processor with dynamic and selectable interconnections between processor array, external memory and I/O ports
KR100263030B1 (ko) * 1996-01-26 2000-08-01 윤종용 중앙처리장치 구동 주파수 자동 선택 장치 및 그 제어방법
JP3075184B2 (ja) * 1996-08-02 2000-08-07 日本電気株式会社 演算処理機能付主記憶システム及びその制御方法
US6026478A (en) * 1997-08-01 2000-02-15 Micron Technology, Inc. Split embedded DRAM processor
US8489861B2 (en) * 1997-12-23 2013-07-16 Round Rock Research, Llc Split embedded DRAM processor
US6760833B1 (en) * 1997-08-01 2004-07-06 Micron Technology, Inc. Split embedded DRAM processor
US6226738B1 (en) 1997-08-01 2001-05-01 Micron Technology, Inc. Split embedded DRAM processor
US6112288A (en) * 1998-05-19 2000-08-29 Paracel, Inc. Dynamic configurable system of parallel modules comprising chain of chips comprising parallel pipeline chain of processors with master controller feeding command and data
ITMI981564A1 (it) * 1998-07-09 2000-01-09 St Microelectronics Srl Memoria non volatile in grado di eseguire un programma autonomamente
US6295597B1 (en) 1998-08-11 2001-09-25 Cray, Inc. Apparatus and method for improved vector processing to support extended-length integer arithmetic
US6279072B1 (en) 1999-07-22 2001-08-21 Micron Technology, Inc. Reconfigurable memory with selectable error correction storage
IL150149A (en) 2001-06-11 2008-08-07 Zoran Microelectronics Ltd Special memory device
US7546438B2 (en) * 2001-07-19 2009-06-09 Chung Shine C Algorithm mapping, specialized instructions and architecture features for smart memory computing
US6970988B1 (en) * 2001-07-19 2005-11-29 Chung Shine C Algorithm mapping, specialized instructions and architecture features for smart memory computing
GB2399900B (en) * 2003-03-27 2005-10-05 Micron Technology Inc Data reording processor and method for use in an active memory device
CA2526467C (en) 2003-05-20 2015-03-03 Kagutech Ltd. Digital backplane recursive feedback control
US7418637B2 (en) 2003-08-07 2008-08-26 International Business Machines Corporation Methods and apparatus for testing integrated circuits
JP2006099232A (ja) * 2004-09-28 2006-04-13 Renesas Technology Corp 半導体信号処理装置
US20060190700A1 (en) * 2005-02-22 2006-08-24 International Business Machines Corporation Handling permanent and transient errors using a SIMD unit
US8028198B2 (en) * 2007-07-30 2011-09-27 Micron Technology, Inc. Devices, methods, and apparatuses for detection, sensing, and reporting functionality for semiconductor memory
US7721175B2 (en) * 2007-08-21 2010-05-18 Micron Technology, Inc. System, apparatus, and method for memory built-in self testing using microcode sequencers
US9477636B2 (en) * 2009-10-21 2016-10-25 Micron Technology, Inc. Memory having internal processors and data communication methods in memory
KR102548591B1 (ko) * 2016-05-30 2023-06-29 삼성전자주식회사 반도체 메모리 장치 및 그것의 동작 방법
KR102479212B1 (ko) 2016-08-17 2022-12-20 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법
US10592121B2 (en) * 2017-09-14 2020-03-17 Samsung Electronics Co., Ltd. Quasi-synchronous protocol for large bandwidth memory systems
US10528426B2 (en) * 2017-11-30 2020-01-07 Western Digital Technologies, Inc. Methods, systems and devices for recovering from corruptions in data processing units in non-volatile memory devices
DE102020105628A1 (de) * 2019-03-11 2020-09-17 Samsung Electronics Co., Ltd. Verfahren zur Durchführung interner Verarbeitungsvorgänge mit vordefinierter Protokollschnittstelle einer Speichervorrichtung

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1089225B (it) * 1977-12-23 1985-06-18 Honeywell Inf Systems Memoria con dispositivo rivelatore e correttore a intervento selettivo
US4302818A (en) * 1979-07-10 1981-11-24 Texas Instruments Incorporated Micro-vector processor
CA1180457A (en) * 1981-04-17 1985-01-02 Peter N. Crockett Pipelined control apparatus with multi-process address storage
US5146608A (en) * 1983-05-31 1992-09-08 Hillis W Daniel Parallel processor array system controlled in response to composition status signal
EP0150177A1 (de) * 1983-07-11 1985-08-07 Prime Computer, Inc. Datenverarbeitungsvorrichtung
US4888682A (en) * 1983-09-09 1989-12-19 International Business Machines Corp. Parallel vector processor using multiple dedicated processors and vector registers divided into smaller registers
US4823259A (en) * 1984-06-29 1989-04-18 International Business Machines Corporation High speed buffer store arrangement for quick wide transfer of data
US4791560A (en) * 1985-07-31 1988-12-13 Unisys Corporation Macro level control of an activity switch in a scientific vector processor which processor requires an external executive control program
US4760525A (en) * 1986-06-10 1988-07-26 The United States Of America As Represented By The Secretary Of The Air Force Complex arithmetic vector processor for performing control function, scalar operation, and set-up of vector signal processing instruction
GB8618943D0 (en) * 1986-08-02 1986-09-10 Int Computers Ltd Data processing apparatus
JPS6353678A (ja) * 1986-08-22 1988-03-07 Hitachi Ltd ベクトル処理装置
US4843540A (en) * 1986-09-02 1989-06-27 The Trustees Of Columbia University In The City Of New York Parallel processing method
US5010477A (en) * 1986-10-17 1991-04-23 Hitachi, Ltd. Method and apparatus for transferring vector data between parallel processing system with registers & logic for inter-processor data communication independents of processing operations
US4760517A (en) * 1986-10-17 1988-07-26 Integrated Device Technology, Inc. Thirty-two bit, bit slice processor
US4912710A (en) * 1988-02-29 1990-03-27 Harris Corporation Self-checking random access memory
US5001671A (en) * 1989-06-27 1991-03-19 Vitelic Corporation Controller for dual ported memory
US5203002A (en) * 1989-12-27 1993-04-13 Wetzel Glen F System with a multiport memory and N processing units for concurrently/individually executing 2N-multi-instruction-words at first/second transitions of a single clock cycle

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US Buch "Advanced Computer Design", J.K.,IIiffe, Prentice Hall International, Inc., 1982, Seiten 63 bis 71 und S. 162 bis 183 *

Also Published As

Publication number Publication date
GB9118071D0 (en) 1991-10-09
GB2252185B (en) 1995-08-02
US5396641A (en) 1995-03-07
JPH04248642A (ja) 1992-09-04
GB2252185A (en) 1992-07-29

Similar Documents

Publication Publication Date Title
DE4134192A1 (de) Integrierter schaltkreis mit verarbeitung im speicher
DE3210816C2 (de)
DE2819571C2 (de)
DE60215835T2 (de) Reduzierung von komponenten in einer montgomery multiplikations-recheneinheit
DE2224537C2 (de) Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor
DE2023354C2 (de) Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher
DE2357003C2 (de) Prozessor für eine Mehrprogramm-Datenverarbeitungsanlage
DE2317870C2 (de) Schaltungsanordnung zur Steuerung der Datenübertragung zwischen dem Hauptspeicher und mindestens einem E/A-Gerät in einer digitalen Datenverarbeitungsanlage
DE3424962C2 (de)
DE2517356A1 (de) In datenverarbeitungsanlagen universell einsetzbarer logischer modul- baustein
DE2524046C2 (de) Elektronische Datenverarbeitungsanlage
DE3049437A1 (de) Matrixanordnung einer vielzahl von verarbeitungselementen fuer parallelprozessoren
DE112015005597T5 (de) Verknüpfungsfähige Parallelausführungs-Schicht einer Ausgabewarteschlange für einen Prozessor
DE2619159A1 (de) Fehlererkennungs- und korrektureinrichtung
DE2359178A1 (de) Speicheranordnung
DE2723467A1 (de) Speichersteuerungsanordnung
DE69734551T2 (de) Verfahren und Gerät zur Erzeugung von Paritätsblöcken
DE60211452T2 (de) DMA-Übertragung von Daten und Prüfinformation zu und von einem Datenspeicherungsgerät
DE69632655T2 (de) Pipeline-Datenverarbeitungsanordnung zur Durchführung einer Mehrzahl von untereinander datenabhängigen Datenprozessen
DE3043653A1 (de) Datenverarbeitungsanlage
DE112020003004T5 (de) Dma-scatter- und gather-operationen für nicht zusammenhängenden speicher
DE19908618A1 (de) Gemeinsam genutzter Hochleistungscachespeicher
DE102020133878A1 (de) Technologien für spaltenbasierte datenlayouts für geclusterte datensysteme
DE2912073A1 (de) Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem
DE2946119C2 (de) Datenverarbeitungseinrichtung mit einer Vielzahl von Datenverarbeitungselementen, denen ein einziger Strom von Steuersignalen zugeführt wird

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8172 Supplementary division/partition in:

Ref country code: DE

Ref document number: 4143536

Format of ref document f/p: P

Q171 Divided out to:

Ref country code: DE

Ref document number: 4143536

8125 Change of the main classification

Ipc: G06F 12/00

8139 Disposal/non-payment of the annual fee