DE4134192A1 - Integrierter schaltkreis mit verarbeitung im speicher - Google Patents
Integrierter schaltkreis mit verarbeitung im speicherInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/509—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding 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/1016—Error in accessing a memory location, i.e. addressing error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System 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/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures 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/8015—One dimensional arrays, e.g. rings, linear arrays, buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/57—Arithmetic 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/575—Basic 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Quality & Reliability (AREA)
- Multi Processors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Complex Calculations (AREA)
- Memory System (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Detection And Correction Of Errors (AREA)
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₄
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₄
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.
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)
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) |
JPH06215160A (ja) * | 1992-08-25 | 1994-08-05 | Texas Instr Inc <Ti> | データ処理方法および装置 |
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 | 日本電気株式会社 | 演算処理機能付主記憶システム及びその制御方法 |
US6226738B1 (en) | 1997-08-01 | 2001-05-01 | 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 |
US6026478A (en) * | 1997-08-01 | 2000-02-15 | 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 |
US7174415B2 (en) | 2001-06-11 | 2007-02-06 | Zoran Corporation | Specialized 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 |
US7071908B2 (en) * | 2003-05-20 | 2006-07-04 | Kagutech, Ltd. | Digital backplane |
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 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
US10908820B2 (en) * | 2017-09-14 | 2021-02-02 | Samsung Electronics Co., Ltd. | Host-based and client-based command scheduling in 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)
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 |
-
1991
- 1991-07-18 JP JP3204045A patent/JPH04248642A/ja active Pending
- 1991-08-21 GB GB9118071A patent/GB2252185B/en not_active Expired - Fee Related
- 1991-10-16 DE DE4134192A patent/DE4134192A1/de not_active Withdrawn
-
1993
- 1993-06-08 US US08/073,978 patent/US5396641A/en not_active Expired - Lifetime
Non-Patent Citations (1)
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 |
---|---|
JPH04248642A (ja) | 1992-09-04 |
GB2252185A (en) | 1992-07-29 |
GB2252185B (en) | 1995-08-02 |
US5396641A (en) | 1995-03-07 |
GB9118071D0 (en) | 1991-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4134192A1 (de) | Integrierter schaltkreis mit verarbeitung im speicher | |
DE69221045T2 (de) | Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und Prüffunktionen | |
DE69132495T2 (de) | Verteilter Verarbeitungsspeicher | |
DE69129569T2 (de) | Maschine mit sehr langem Befehlswort für leistungsfähige Durchführung von Programmen mit bedingten Verzweigungen | |
DE3486141T2 (de) | Parallel-prozessor. | |
DE3854568T2 (de) | SIMD-Feldrechner. | |
DE3689923T2 (de) | Dreiphasen-Pipeline-Signalprozessor. | |
DE68926036T2 (de) | Speicherkonfiguration zur Verwendung für Schnittstellenbildung zwischen einer Systemsteuereinheit für ein Multiprozessorsystem und dem Hauptspeicher | |
DE68913629T2 (de) | Satzverriegelungsprozessor für vielfachverarbeitungsdatensystem. | |
DE3650651T2 (de) | Fehlertolerantes Datenverarbeitungssystem | |
DE3750143T2 (de) | Vektorprozessor mit Verdichtungs-/Erweiterungsmöglichkeit von Vektordaten. | |
DE3210816C2 (de) | ||
DE69215538T2 (de) | Verfahren zur verbesserung von partiellen streifenschreib-operationen einer speicherplattenanordnung | |
DE2819571C2 (de) | ||
DE69323861T2 (de) | Multiprozessorsystem mit gemeinsamem Speicher | |
DE60215835T2 (de) | Reduzierung von komponenten in einer montgomery multiplikations-recheneinheit | |
DE68907518T2 (de) | Inhaltsadressierte Speicheranordnung. | |
DE2023354C2 (de) | Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher | |
DE69229464T2 (de) | Quasi radix-16 prozessor und verfahren | |
DE3750236T2 (de) | Gerät zur In-line-Abfragesteuerung für Datenprozessorprüfung. | |
DE2517356A1 (de) | In datenverarbeitungsanlagen universell einsetzbarer logischer modul- baustein | |
DE3851554T2 (de) | Steuerungsanordnung für gemeinschaftlichen Speicher. | |
DE2524046C2 (de) | Elektronische Datenverarbeitungsanlage | |
DE3049437A1 (de) | Matrixanordnung einer vielzahl von verarbeitungselementen fuer parallelprozessoren | |
DE68928187T2 (de) | Inhaltadressierte Speicherzellenanordnung |
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 |