DE69033416T2 - Hauptspeicherkarten mit Einzelbit-Setz- und Rücksetz-Funktion - Google Patents

Hauptspeicherkarten mit Einzelbit-Setz- und Rücksetz-Funktion

Info

Publication number
DE69033416T2
DE69033416T2 DE69033416T DE69033416T DE69033416T2 DE 69033416 T2 DE69033416 T2 DE 69033416T2 DE 69033416 T DE69033416 T DE 69033416T DE 69033416 T DE69033416 T DE 69033416T DE 69033416 T2 DE69033416 T2 DE 69033416T2
Authority
DE
Germany
Prior art keywords
data
word
memory
mask
command
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.)
Expired - Fee Related
Application number
DE69033416T
Other languages
English (en)
Other versions
DE69033416D1 (de
Inventor
Richard Glenn Eikill
Quentin Gust Schmierer
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE69033416D1 publication Critical patent/DE69033416D1/de
Application granted granted Critical
Publication of DE69033416T2 publication Critical patent/DE69033416T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)
  • Storage Device Security (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf Datenverarbeitungssysteme, welche mehrere Prozessoren enthalten, die über eine gemeinsame Schnittstelle mit mehreren Speicherkarten eines Hauptspeichers verbunden sind, und insbesondere auf ein Mittel, um in einem Hauptspeicher gespeicherte Daten mit minimaler Beeinflussung der Schnittstelle zu ändern.
  • In den vergangenen Jahren hat sich überall in der Computerindustrie die Leistung von Datenverarbeitungsgeräten wesentlich erhöht, insbesondere in Bezug auf schnellere Verarbeitung von Datenverarbeitungsabläufen. Datenverarbeitungssysteme verwenden vermehrt mehrere Verarbeitungseinheiten, die eine gemeinsame Schnittstelle benutzen, um Datenübertragungen zwischen den Prozessoren und dem Hauptspeicher, der typischerweise aus mehreren Speicherkarten besteht, auszuführen. Die Verbesserungen in Speichersubsystemen konnten mit den Verbesserungen bei Prozessoren nicht Schritt halten, insbesondere dann, wenn Anordnungen aus mehreren parallelen Prozessoren betrachtet werden. Dementsprechend haben sich die System- oder Netzwerkarchitekturen geändert, um einen Ausgleich für einen Hauptspeicher, der verglichen mit den Verarbeitungseinheiten relativ langsam ist, zu schaffen. Es wurden Cache-Speicher und andere Techniken angewandt, mit dem Versuch, die Prozessoren von den Speicherkarten im Hauptspeicher zu entkoppeln.
  • In Verbindung mit der Änderung von Daten, die im Hauptspeicher liegen, beinhaltet der herkömmliche Arbeitsablauf das Holen von Daten aus den Speicherfeldern in ein internes Register in einem Prozessor, das gewünschte Ändern der Datenbits innerhalb des Prozessors und dann das Zurückschreiben der geänderten Daten in die Speicherfelder. Dieser Ablauf beinhaltet wesentliche Systemverwaltung. Beispielsweise muss die Schnittstelle zum Hauptspeicher zweimal überwacht und belegt werden, einmal für einen Datenholvorgang und einmal für das Zurückspeichern der Daten in den Speicher. Wenn die Schnittstelle von mehreren Prozessoren und mehreren Hauptspeicherkarten gemeinsam benutzt wird, erhöht sich die verbrauchte Wartezeit für einen Zugriff auf die Schnittstelle. Ein Prozessor, der einen Zugriff auf eine bestimmte Speicherkarte erhalten möchte, muss warten, bis die Karte auf ihre Speicherfelder zugreift und die zu ändernden Daten abruft.
  • Es sind Techniken bekannt, um die Daten in einem Speicher effizienter zu verändern. Beispielsweise offenbart die US- Patentschrift Nr. 5 570 222 ein Datenverarbeitungssystem mit einer Datenkorrekturfunktion, das einen dynamischen Speicher mit wahlfreiem Zugriff, eine Veränderungseinheit, eine Bestimmungseinheit und eine Steuereinheit umfasst. Die Veränderungseinheit empfängt Daten vom RAM, und ein ausgewählter Teil der Daten wird innerhalb der Veränderungseinheit basierend auf einer Eingabe von der Bestimmungseinheit geändert.
  • In Verbindung mit Farbgrafikbildschirmen offenbart die US- Patentschrift Nr. 4 016 544 ein Speicherschreibsteuersystem, das einen Pufferspeicher enthält, um rote, grüne und blaue Informationen für jeden einer Vielzahl von Bildpunkten getrennt zu speichern. Jede einzelne Farbeinheit erhält von einer Schreibsteuereinheit, die von einem Prozessor gesteuert wird, eine Farbbestimmungseingabe und eine Maskeneingabe. Wenn das Maskenbit eine logische Eins ist, wird der Inhalt geändert, während eine logische Null im Maskenbit den entsprechenden Inhalt unverändert lässt.
  • Es besteht jedoch das Erfordernis, Verarbeitungseinheiten sowie einen mehrere Verarbeitungseinheiten und einen Hauptspeicher verbindenden Datenbus effizienter zu nutzen.
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, ein Datenverarbeitungssystem bereitzustellen, in dem Daten in einem Hauptspeicher unter wesentlich verringerter Anwendung einer Schnittstelle zwischen dem Hauptspeicher und den mehreren Prozessoren geändert werden.
  • Eine andere Aufgabe der Erfindung besteht darin, einen gewissen Teil der an Datenänderungsabläufen beteiligten logischen Schaltungen von den Prozessoren auf die Speicherkarten des Hauptspeichers zu übertragen.
  • Eine andere Aufgabe besteht darin, die Geschwindigkeit, bei der Datenänderungsfunktionen einschließlich Setzen und Rücksetzen ausgeführt werden, zu erhöhen.
  • Eine wiederum andere Aufgabe besteht darin, ein Datenverarbeitungssystem bereitzustellen, bei dem Setz- und Rücksetzfunktionen an ausgewählten Daten in den Speicherfeldern ausgeführt werden, wobei nur ein einziger Zugriff auf die Felder für diese Funktionen ausreicht.
  • Um diese und andere Aufgaben zu lösen, wird gemäß dem beigefügten Anspruchssatz ein Datenverarbeitungssystem bereitgestellt, das eine Anordnung von Verarbeitungseinheiten enthält, um bitweise codierte Daten zu bearbeiten, einen Speicher mit Feldern, um bitweise codierte Daten als Datenwörter zu speichern, wobei jedes Datenwort eine Vielzahl von Bits enthält, und eine Schnittstelle, die mit der Verarbeitungsanordnung und dem Speicher verbunden ist, um bitweise codierte Daten zwischen der Verarbeitungsanordnung und dem Speicher zu übertragen. Die Verarbeitungsanordnung enthält ein Mittel zur Erzeugung eines Befehls, um ein bestimmtes Datenwort wahlweise zu ändern. Die Verarbeitungsanordnung enthält darüber hinaus Mittel, um Adressdaten zu erzeugen, die einer ausgewählten Stelle in den Datenfeldern, an der das bestimmte Datenwort gespeichert ist, entsprechen.
  • Die Weiterbildung in diesem System umfasst in der Anordnung von Verarbeitungseinheiten ein Maskenerzeugungsmittel, um eine Datenmaske, die dem bestimmten Datenwort entspricht, zu erzeugen und um die Datenmasken über die Schnittstelle zum Speicher zu übertragen. Ein Datenbearbeitungsmittel innerhalb des Speichers ändert wahlweise das bestimmte Datenwort gemäß der Datenmaske, nachdem die Maske und der Befehl empfangen worden sind. Das Datenbearbeitungsmittel enthält: ein Datenzwischenhaltemittel; ein Zwischenspeichermittel, das auf den Befehl und die Adressdaten antwortet, um das bestimmte Wort in den Feldern zu lokalisieren und um das bestimmte Wort von der ausgewählten Stelle an das Datenzwischenhaltemittel zu übertragen; ein Mittel, um die Datenmaske zu empfangen und um die Maske auf das bestimmte Datenwort anzuwenden, um das Datenwort wahlweise zu ändern, wenn das Wort im Datenzwischenhaltemittel enthalten ist; und ein Schreibmittel, um das bestimmte Datenwort an die Felder zu übertragen, nachdem das Wort geändert worden ist.
  • Vorzugsweise enthält die Anordnung von Verarbeitungseinheiten eine Vielzahl von Verarbeitungseinheiten, von denen jede in der Lage ist, bitweise codierte Daten zu bearbeiten und Befehle zu erzeugen. Der Speicher kann eine Vielzahl von Speicherkarten enthalten, wobei jede Karte Datenfelder aufweist, um bitweise codierte Daten zu speichern. Die Schnittstelle enthält vorteilhafterweise einen Datenbus zur Übertragung der Datenmaske und einen Befehlsbus zur Übertragung des Befehls und der Adressinformation. Der Datenbus und der Befehlsbus arbeiten parallel, wobei jeder Bus von allen Verarbeitungseinheiten und allen Speicherkarten gemeinsam benutzt wird.
  • Jede der Speicherkarten kann ihr eigenes internes Register und Speicherfelder aufweisen. Die internen Register bilden zusammen das Datenzwischenhaltemittel.
  • Jede Speicherkarte kann darüber hinaus mit ihrem internen Register verbundene Logikschaltungen enthalten. In Antwort auf einen Setzbefehl werden das zu ändernde Datenwort und die Datenmaske als Eingangssignale an ein logisches ODER-Gatter geliefert, wobei das Ausgangssignal des ODER-Gatters an die Datenfelder auf der Karte zurückgeführt wird. In Antwort auf einen Rücksetzbefehl wird die Maske zuerst invertiert, dann werden die invertierte Maske und das Datenwort als Eingangssignale einem logischen UND-Gatter zugeführt, wobei das Ausgangssignal des UND-Gatters an die Datenfelder zurückgeführt wird.
  • Die Datenworte und Datenmasken weisen vorzugsweise die gleiche vorbestimmtes Anzahl von Bits auf. Dementsprechend besteht eine Eins-zu-Eins-Zuordnung zwischen jedem Datenwort und der zu seiner Veränderung angewandten Maske, wodurch eine schnelle Änderung der Daten in einem einzigen Lese-/Änderungs- /Schreibzyklus ermöglicht wird, was mit relativ einfachen Schaltungen erreicht wird.
  • Dadurch dass die internen Register und die Änderungslogik auf den Speicherkarten angeordnet sind, sind Setz- und Rücksetzvorgänge auf den Speicherkarten sehr einfach ausführbar in dem Sinne, dass diese Vorgänge ohne irgendwelche Unterbrechung von anderen Befehlen an die Speicherkarte abgearbeitet werden. Die Ausführung dieser Vorgänge im wesentlichen innerhalb des Hauptspeichers hält jeden Prozessor frei, während praktisch der gesamten Zeit, die für Setz- und Rücksetzvorgänge in Anspruch genommen wird, andere Aufgaben auszuführen. Die Anzahl von für jeden Vorgang erforderliche Zyklen wird ebenso verringert wie die Zeit, während der die Schnittstelle oder die Busse zwischen den Prozessoren und dem Hauptspeicher belegt sind, wodurch ein besserer Systemdurchsatz erreicht wird. Sobald schließlich eine Speicherkarte den Änderungsvorgang beginnt, bleibt sie bis zur Vollendung der Setz- oder Rücksetzfunktion zuständig, ohne vom Verkehr mit der Schnittstelle, dem Verwaltungsaufwand zur Initialisierung des Felds oder asynchronen Speicherauffrischvorgängen unterbrochen zu werden.
  • Zur weiteren Würdigung der obigen und anderer Aufgaben und Vorteile wird auf die folgende detaillierte Beschreibung der bevorzugten Ausführung und auf die Zeichnungen Bezug genommen, in denen:
  • Fig. 1 eine schematische Ansicht eines Datenverarbeitungssystems ist, in dem eine Anordnung von mehreren Verarbeitungseinheiten über eine gemeinsame Schnittstelle mit einem Hauptspeicher, der mehrere Speicherkarten enthält, verbunden ist;
  • Fig. 2 eine schematische Ansicht einer der Speicherkarten ist, die eine Datenänderungslogik zeigt;
  • Fig. 3 ein Zeitablaufdiagramm eines herkömmlichen Datenänderungsvorgangs ist;
  • Fig. 4 ein Zeitablaufdiagramm ähnlich dem der in der Fig. 3 ist, das eine Datenänderung gemäß der vorliegenden Erfindung darstellt;
  • Fig. 5 eine Darstellung eines Datenworts von acht Bit ist, welche die Setzfunktion darstellt; und
  • Fig. 6 ähnlich der Fig. 5 ist und die Rücksetzfunktion darstellt.
  • Wenn man sich nun den Zeichnungen zuwendet, ist in Fig. 1 ein Datenverarbeitungssystem 16 gezeigt, um bitweise codierte Daten zu speichern und darauf ausgewählte Verarbeitungsvorgänge anzuwenden. Das System enthält zwei Verarbeitungseinheiten, die mit 18 bzw. 20 bezeichnet sind. Eine Überwachungsleitung 22 verknüpft die zwei Prozessoren und wird in Verbindung mit einer Überwachungslogik verwendet, die in beiden Verarbeitungseinheiten angeordnet ist, um im Hinblick auf einen Schnittstellenzugriff jedem der Prozessoren eine Priorität zuzuordnen. Es versteht sich, dass die Anordnung der Verarbeitungseinheiten in diesem Netzwerk aus einer einzigen Verarbeitungseinheit oder mehreren Verarbeitungseinheiten, bei denen mehrere Überwachungsleitungen für eine Punkt-zu-Punkt- Verbindung aller Verarbeitungseinheiten vorgesehen sind, bestehen könnte.
  • Eine Schnittstelle verbindet die Verarbeitungseinheiten mit einem Hauptspeicher, der mehrere Speicherkarten, die beispielsweise mit 24, 26 und 28 bezeichnet sind, enthält. Die Speicherkarte 24 enthält beispielsweise Speicherfelder 30, um bitweise codierte Daten zu speichern, einen Puffer 32, um Daten von der Schnittstelle zu empfangen und um Daten für die Übertragung an eine ausgewählte Verarbeitungseinheit vorübergehend zu speichern. Die Speicherkarte 24 enthält auch ein internes Register 34, das mit den Speicherfeldern 30 verbunden ist. In den Speicherfeldern gespeicherte Daten werden zur vorübergehenden Zwischenspeicherung, während der die Daten gemäß den Anweisungen aus einer der Verarbeitungseinheiten geändert werden können, in ein internes Register 34 geladen.
  • Die Speicherkarten 26 und 28 sind ähnlich der Speicherkarte 24 und enthalten Speicherfelder 36, einen Puffer 38 und ein internes Register 40 bzw. Speicherfelder 42, ein internes Register 44 und einen Puffer 46. Alle diese Komponenten sind untereinander im wesentlichen identisch und arbeiten in der gleichen Weise wie die entsprechenden Komponenten in den anderen Speicherkarten.
  • Die die Prozessoren und Speicherkarten verbindende Schnittstelle enthält einen Datenbus 48 und einen Befehls-/Adressbus 50, von denen jeder mit allen Prozessoren und Speicherkarten verbunden ist und Daten unabhängig von und parallel mit dem anderen Bus überträgt. Der Datenbus 48 überträgt das, was üblicherweise als Arbeitsinformation bezeichnet wird, d. h. diejenige Information, an welcher die Anwender des Systems das meiste Interesse haben. Der Befehls-/Adressbus 50 überträgt Steuerinformation, die auf Befehle zum Holen oder Speichern speziellen Arbeitsdaten Bezug nimmt, und Adressinformation, welche die Stelle der bestimmten Arbeitsdaten in den Speicherfeldern oder die Stelle, an welche diese Daten zu senden sind, kennzeichnet.
  • Befehlsleitungen 52, von denen eine für jeden Prozessor vorgesehen ist, übertragen Befehls- und Adressinformation an den Bus 50, von dem eine der Befehlsleitungen 54 die Informationen an die gewünschte Speicherkarte weitergibt. Befehlsübertragungen sind unidirektional (von einem Prozessor zu einer Speicherkarte), die Pfeile an beiden Enden der Befehlsleitungen 52 zeigen an, dass jede Verarbeitungseinheit während der Übertragung eines Befehls die übrigen Prozessoren darüber informieren kann, dass der Befehls-/Adressbus belegt ist.
  • Datenleitungen 56 zwischen den Prozessoren und dem Bus 48 und Datenleitungen 58 zwischen den Speicherkarten und dem Datenbus führen die Übertragung von Arbeitsinformationen in beide Richtungen aus. Die Schnittstelle enthält darüber hinaus in Fig. 1 nicht dargestellte Datenpfade, um die Verwendung des Datenbusses 48 zu steuern, und kann außerdem einen gemeinsam benutzten Kommunikationsbus zur Übertragung von sich auf die Arbeitsdaten beziehende Statusinformationen enthalten. Zur weiteren Erläuterung der Schnittstelle wird auf das europäische Patent Nr. EP-0 432 076 mit dem Titel "High Performance Shared Main Storage Interface", welches für die International Business Machines Corp. erteilt ist, Bezug genommen.
  • Die internen Register in den Speicherkarten 24, 26 und 28 sind besonders zur Änderung von in den jeweiligen Speicherfeldern gespeicherten Daten geeignet, ohne dass Daten an die Verarbeitungseinheiten übertragen werden. Schaltungen zur Änderung der Daten sind in Fig. 2 schematisch dargestellt, um ein ausge wähltes Datenbit zu ändern. In diesem Zusammenhang ist festzustellen, dass Daten im System 16 in Form von Datenworten von 8 Byte übertragen und geändert werden, was der Kapazität des Datenbusses 48 entspricht. Für ein beliebiges ausgewähltes Datenwort würden folglich die vollständigen Änderungsschaltungen in der Speicherkarte im wesentlichen identische Logik und Multiplexerschaltungen für jedes der verbleibenden Datenbits des Worts enthalten, wobei alle Bits parallel verarbeitet werden.
  • In Fig. 2 stellt der Prozessor 18 eine Datenmaske bereit, die verwendet wird, um gewisse in den Speicherfeldern 30 der Speicherkarte 24 gespeicherte Daten zu ändern. Ein (bei 59) zwischengespeichertes Ausgangssignal der Felder wird als ein Eingangssignal an ein logisches UND-Gatter 60 und als ein Eingangssignal an ein logisches ODER-Gatter 62 bereitgestellt. Das andere Eingangssignal an das ODER-Gatter ist das Ausgangssignal des Puffers 32. Das Pufferausgangssignal wird ebenfalls an einen Inverter 64 bereitgestellt, und das invertierte Signal wird als das andere Eingangssignal an das UND-Gatter 60 bereitgestellt. Ausgangssignale des UND-Gatters und des ODER- Gatters werden an einen Multiplexer 66 bereitgestellt, dessen Ausgangssignal durch einen Zwischenspeicher 65 zwischengespeichert wird und an die Speicherfelder 30 zurückgeführt wird.
  • Folglich enthält jede der Speicherkarten Schaltungen, um Daten von den Datenfeldern abzurufen und in das interne Register zu laden, um die Datenmaske zu empfangen und zur Änderung der Daten anzuwenden, wenn sie sich im internen Register befinden, und um die geänderten Daten an die Datenfelder zurückzuführen. Ein herausragender Vorteil dieser Lösung besteht darin, dass Schaltungen für Setz- und Rücksetzvorgänge überwiegend auf den Speicherkarten und nicht im Prozessor angeordnet sind, um eine wesentliche Verringerung der Anzahl von Taktzyklen, die zur Ausführung dieser Vorgänge erforderlich sind, zu erreichen.
  • Dieser Vorteil wird offensichtlich, wenn die Lösung zur Änderung von Daten nach dem Stand der Technik verglichen wird mit einem Setzen oder Rücksetzen gemäß der vorliegenden Erfindung. Eine herkömmliche prozessorgesteuerte Änderung von Daten ist im Zeitablaufdiagramm von Fig. 3 dargestellt. Ein Holbefehl, der Adressinformation, die der Stelle der angeforderten Daten im Hauptspeicher entspricht, einschließt, wird während des ersten Taktzyklus vom Prozessor über den Befehl-/Adressbus an die Speicherkarte gesandt.
  • Die ausgewählte Speicherkarte beginnt im zweiten Taktzyklus, auf ihre Speicherfelder zuzugreifen. Insbesondere wird ein Zugriff auf die Felder durch zwei Steuerleitungen erreicht, Zeilenadressimpuls (RAS) und Spaltenadressimpuls (CAS). Der Zeilenadressimpuls startet den Datenfeldzugriff, indem er am Anfang des zweiten Taktzyklus aktiv wird, während der Spaltenadressimpuls am Beginn des dritten Taktzyklus aktiv wird. In Verbindung mit Fig. 3 und 4 ist zu beachten, dass zur Übereinstimmung mit den übrigen Leitungen, nämlich für Prozessorbefehle, Prozessordaten und Felddaten, gezeigt ist, dass die Zeilen- und Spaltenadressimpulse auf HIGH übergehen, wenn sie aktiv werden. Dies ist einfach eine zweckdienliche Darstellung. Tatsächlich sind die Zeilen- und Spaltenadressimpulse "minus aktiv" (LOW aktiv) und werden aktiv, wenn das Signal vom logischen HIGH- zum LOW-Pegel umschaltet.
  • Im Zyklus vier werden Daten aus den Feldern in den Speicherpuffer eingelesen. Während des fünften Taktzyklus werden Daten über den Datenbus an den Prozessor übertragen, und die Zeilen- und Spaltenadressimpulse werden inaktiv. Der Prozessor ändert während des Taktzyklus sechs die Daten.
  • Einem Speicherbefehl vom Prozessor während des Zyklus sieben folgt im nächsten Zyklus gemeinsam mit einer Aktivierung des Zeilenadressimpulses eine Rückübertragung der geänderten Daten an die Speicherkarte. Während des Zyklus neun wird der Spaltenadressimpuls aktiv, und die geänderten Daten werden während des Taktzyklus zwölf an die Felder zurückgeführt, wonach die Zeilenadress- und Spaltenadressimpulse wiederum inaktiv werden. Das im Zyklus zwölf den Felddaten zugeordnete "M" bezieht sich auf einen Änderungsschritt, der weder in einem Setzen noch in einem Rücksetzen besteht, sondern vielmehr in einer Anordnung der Daten in einer Form, die besser für eine Speicherung in den Feldern geeignet ist, im Gegensatz zu einer Form, die für eine Übertragung geeignet ist.
  • Fig. 4 ist ein Zeitablaufdiagramm ähnlich dem in Fig. 3, welches eine Datenänderung zeigt, die hauptsächlich auf der Speicherkarte nach einem Befehl von der Verarbeitungseinheit 18 ausgeführt wird, um gewisse Daten an einer ausgewählten Stelle 68 innerhalb des Speicherfelds 30 der Speicherkarte 24 zu ändern. Die Datenbits werden als Teile von Worten mit 8 Byte geändert. Wegen der Einfachheit der Darstellung jedoch werden in den Fig. 5 und 6 nur Datenworte mit 8 Bit in Zusammenhang mit einem Setzvorgang bzw. Rücksetzvorgang gezeigt.
  • Wie in Fig. 4 zu sehen ist, sendet der Prozessor 18 einen Befehl über den Befehls-/Adressbus 50 an die Speicherkarte 24. Der Befehl besteht darin, ein in den Fig. 5 und 6 dargestelltes Datenwort 70 entweder zu "setzen" oder "rückzusetzen". Unabhängig davon, ob der Befehl ein Setz- oder Rücksetz befehl war, liefert die Verarbeitungseinheit eine Datenmaske 72 über den Datenbus 48 an die Speicherkarte 24. Der Zeilenadressimpuls wird während dieses Zyklus aktiv.
  • Fig. 5 und 6 zeigen dieselbe 8-Bit-Maske, d. h. mit logischen "Einsen" an den dritten und siebten Bitstellen und logischen "Nullen" an den übrigen Bitstellen. Folglich werden in Zusammenhang mit einem Setzbefehl die Bits des Datenworts 70 an den dritten und siebten Stellen auf eine logische Eins gesetzt. Für einen Rücksetzbefehl werden diese Bits auf eine logische Null gesetzt. In beiden Fällen bleiben die übrigen Bits im Datenwort unverändert.
  • Zurück zur Fig. 4 wird der Spaltenadressimpuls am Beginn des dritten Zyklus aktiv, und aus den Speicherfeldern 30 werden während des Zyklus vier Daten ausgelesen. Im Gegensatz zur Fig. 3 jedoch werden die Daten nicht in den Puffer 32 eingelesen, sondern vielmehr im internen Register 34 der Speicherkarten zwischengespeichert.
  • Das Datenwort 70 wird während des fünften Taktzyklus geändert. Für den Fall, dass während des zweiten Taktzyklus ein Setzbefehl bereitgestellt wurde, werden das Datenwort und die Maske 72 als Eingangssignale an logische ODER-Gatter, z. B. Gatter 62, angelegt. Das Ausgangssignal der ODER-Gatter ist das geänderte (in diesem Fall gesetzte) Datenwort 74. Die dritten und siebten Bitstellen sind gesetzt worden, d. h. sind logisch Einsen. Dies stellt für die dritte Bitstelle keine Änderung dar, während die siebte Bitstelle, die vorher Null war, eine Eins wird. Die übrigen Bitstellen bleiben zum ursprünglichen Wort 70 gleich.
  • In dem Fall, dass der Befehl im Zyklus zwei ein Rücksetzbefehl ist, wird die Maske 72 invertiert, um eine invertierte Maske 76 zu bilden. Die invertierte Maske und das Datenwort werden dann an acht UND-Gatter, z. B. Gatter 60, angelegt. Das Ausgangssignal der UND-Gatter ist das geänderte (in diesem Fall rückgesetzte) Datenwort 78, in dem Bits an den dritten und siebten Stellen rückgesetzt worden sind, wobei das Bit an der dritten Stelle im Datenwort 70 auf eine logische Null verändert worden ist, während die siebte Bitstelle eine logische Null bleibt. Die anderen Bitstellen bleiben gleich.
  • Der Änderungsvorgang wird während des sechsten Zyklus abgeschlossen, in dem das geänderte Wort vom internen Register 34 in die Speicherfelder 30 zurückgeschrieben wird und speziell zurück zur ausgewählten Stelle 68.
  • Folglich erhöht die vorliegende Erfindung die Geschwindigkeit von Setz- und Rücksetzvorgängen an Daten in den Speicherfeldern wesentlich, indem die Anzahl von erforderlichen Taktzyklen nahezu halbiert wird. Jedoch wird die Leistungsfähigkeit über ein vergleichsweise zu erwartendes Maß hinaus erhöht, da in diesen Beispielen angenommen wird, dass die Prozessoren in jedem Fall keine Zeit benötigen, um den Zugriff auf die Schnittstelle zu konkurrieren. In jeder Anordnung von mehreren Prozessoren, die eine gemeinsame Schnittstelle benutzen, muss der betreffende Prozessor um den Zugriff auf die Schnittstelle zum Hauptspeicher konkurrieren. Der herkömmliche Datenänderungsablauf (Fig. 3) erfordert, dass der Prozessor zweimal einen Zugriff auf die Schnittstelle erhält, einmal, um Daten von der Speicherkarte zu holen, und einmal, um geänderte Daten zurückzuführen. Der Prozessor 18 benötigt einen Zugriff auf die Schnittstelle nur einmal, um den Setz- oder Rücksetzbefehl und die Datenmaske an die Speicherkarte 24 bereitzustellen.
  • Dies führt zu einem weiteren Vorteil, der darin besteht, dass Setz- und Rücksetzvorgänge gemäß der Erfindung nur den halben Umfang an Schnittstellenbelegung erfordern, speziell einen Zyklus, um den Setz- oder Rücksetzbefehl bereitzustellen, und einen Zyklus, um die Datenmaske bereitzustellen. Der herkömmliche Ablauf erfordert vier Taktzyklen für die Schnittstellenbelegung.
  • Noch ein anderer Vorteil entsteht aus der Tatsache, dass die Speicherfelder normalerweise inaktiv sind und eine vorbestimmte Anzahl von Taktzyklen erfordern, um geladen oder bereit zu werden, um Daten aus den Feldern zu lesen oder Daten dorthin zu schreiben. Die erforderliche Anzahl von Zyklen ändert sich natürlich mit dem Typ der Felder und der Zykluszeit, erhöht aber die erforderliche Zeit für einen Vorgang, bei dem ein Zugriff auf die Felder erfolgt. Die herkömmliche Datenänderungsabfolge erfordert zuerst einen Zugriff auf die Speicherfelder, um die Daten für eine Rückgabe an den Prozessor auszulesen und später die geänderten Daten zu schreiben, nachdem die Zeilenadress- und Spaltenadressimpulse inaktiv geworden sind. Im Gegensatz dazu wird das bestimmte Datenwort in der Speicherkarte 24 in einer einzigen Lese-/Änderungs-/Schreibabfolge von drei aufeinander folgenden Taktzyklen geändert, ohne dass erforderlich ist, den Zeilenadressimpuls, der die Aktivierung der Speicherfelder steuert, erneut zu aktivieren.
  • Ein letzter Vorteil, wiederum im Gegensatz zum herkömmlichen Ablauf, besteht darin, dass asynchrone Ereignisse, z. B. ein Wiederauffrischen des Speichers, die Datenänderungsvorgänge in den Speicherkarten des Netzwerks 16 nicht stören. Solche Ereignisse können den herkömmlichen Datenänderungsablauf verzögern, insbesondere wenn sie zwischen den Holbefehls- und Speicherbefehlstaktzyklen auftreten. Folglich verringert ein Informationsverarbeitungsnetzwerk gemäß der vorliegenden Erfindung, in dem die Speicherkarten des Hauptspeichers Setz- und Rücksetzvorgänge in Antwort auf Befehle und Masken von den Verarbeitungseinheiten ausführen, die Zeitdauer und die Schnittstellenbelegung, die für Setz- und Rücksetzvorgänge erforderlich sind, beträchtlich.

Claims (12)

1. Datenverarbeitungssystem, das eine Anordnung von Verarbeitungseinheiten (18, 22, 20) enthält, um bitweise codierte Daten zu bearbeiten, einen Speicher (24, 26, 28) mit Feldern (30, 36, 42), um bitweise codierte Daten als eine Vielzahl von Datenworten zu speichern, wobei jedes Datenwort eine Vielzahl von Bits enthält, und eine Schnittstelle (48, 50), die mit der Anordnung von Verarbeitungseinheiten und dem Speicher verbunden ist, um bitweise codierte Daten zwischen der Anordnung von Verarbeitungseinheiten und dem Speicher zu übertragen; wobei die Anordnung von Verarbeitungseinheiten ein Mittel zur Befehlserzeugung enthält, um ein ausgewähltes Datenwort wahlweise zu ändern und um Adressdaten zu erzeugen, die einer ausgewählten Stelle (68) in den Datenfeldern entsprechen, an der das bestimmte Datenwort gespeichert ist, und ein Maskenerzeugungsmittel, um eine Datenmaske zu erzeugen, die dem bestimmten Datenwort entspricht, und um die Datenmaske über die Schnittstelle an den Speicher zu übertragen; und ein Datenbearbeitungsmittel innerhalb des Speichers, um das bestimmte Datenwort gemäß der Datenmaske wahlweise zu ändern; wobei das System dadurch gekennzeichnet ist, dass das Datenbearbeitungsmittel umfasst:
ein Datenzwischenhaltemittel (34, 40, 44);
ein Zwischenspeichermittel (59), das auf den Befehl und die Adressdaten antwortet, um das bestimmte Wort in den Feldern (30) zu lokalisieren und das bestimmte Wort von der ausgewählten Stelle (68) an das Datenzwischenhaltemittel (34) zu übertragen;
ein Mittel (32, 60, 62, 64, 66), um die Datenmaske zu empfangen und vorübergehend zu speichern und um die Datenmaske auf das bestimmte Datenwort gemäß dem empfangenen Befehl anzuwenden, nachdem die Datenmaske empfangen worden ist, wenn das bestimmte Datenwort im Datenzwischenhaltemittel enthalten ist, wobei alle Bits des Datenworts parallel verarbeitet werden, um das bestimmte Datenwort wahlweise zu ändern, um ein geändertes bestimmtes Datenwort bereitzustellen; und
ein Schreibmittel (65), um das geänderte bestimmte Datenwort an die Felder zu übertragen.
2. Datenverarbeitungssystem nach Anspruch 1, wobei jedes Datenwort die gleiche vorbestimmte Anzahl von Bits aufweist.
3. Datenverarbeitungssystem nach Anspruch 2, wobei das Schreibmittel das geänderte bestimmte Datenwort an die ausgewählte Stelle zurückführt; und wobei die Verarbeitungsanordnung eine Vielzahl von Verarbeitungseinheiten enthält, wobei jede Verarbeitungseinheit ein Mittel enthält, um bitweise codierte Daten zu bearbeiten und um Befehle zu erzeugen, und der Speicher eine Vielzahl von Speicherkarten enthält, wobei jede Speicherkarte Datenfelder aufweist, um bitweise codierte Daten zu speichern.
4. Datenverarbeitungssystem nach Anspruch 3, wobei die Schnittstelle einen Datenbus zu Übertragung der Datenmaske enthält und einen Befehlsbus zur Übertragung des Befehls und der Adressdaten, wobei der Datenbus und der Befehlsbus von allen Verarbeitungseinheiten und allen Speicherkarten gemeinsam benutzt werden; und wobei jede Speicherkarte ein internes Register aufweist und das Datenzwischenhaltemittel aus den internen Registern der Speicherkarten besteht.
5. Datenverarbeitungssystem nach Anspruch 2, wobei die Datenmasken die vorbestimmte Anzahl von Bits aufweisen.
6. Datenverarbeitungssystem nach Anspruch 1 oder 5, wobei der Befehl ein Setzbefehl oder ein Rücksetzbefehl ist.
7. Datenverarbeitungssystem nach Anspruch 6, wobei der Speicher eine Vielzahl von Speicherkarten enthält, wobei jede Speicherkarte Datenfelder aufweist, um bitweise codierte Daten zu speichern, und ein internes Register und das Datenzwischenhaltemittel aus den internen Registern der Speicherkarten besteht; und wobei jede Karte darüber hinaus mit ihrem internen Register verbundene Logikschaltungen enthält, um das bestimmte zu ändernde Datenwort (70) und die Datenmaske (72) als Eingangssignale an ein logisches ODER-Gatter (62) bereitzustellen, um den Setzbefehl auszuführen, und um die Datenmaske zu invertieren und eine invertierte Datenmaske bereitzustellen, und um das ausgewählte zu ändernde Datenwort (70) und die invertierte Datenmaske als Eingangssignale an ein logisches UND-Gatter (60) bereitzustellen.
8. Verfahren zur wahlweisen Änderung von Daten, die in einem Hauptspeichermittel in einem Datenverarbeitungssystem gespeichert sind, das eine Anordnung von Prozessoren (18, 22, 20) enthält, um bitweise codierte Daten zu bearbeiten, einen Speicher (24, 26, 28), der das Hauptspeichermittel enthält, um die bitweise codierten Daten als eine Vielzahl von Datenworten zu speichern, in dem jedes Datenwort eine Vielzahl von Bits enthält, und eine Schnittstelle (48, 50), die mit der Anordnung von Prozessoren und dem Speicher verbunden ist, um die bitweise codierten Daten zwischen der Anordnung von Prozessoren und dem Speicher zu übertragen; wobei das Verfahren die folgenden Schritte enthält:
Verwenden der Anordnung von Prozessoren, um einen Änderungsbefehl zu erzeugen, um bitweise codierte Daten zu ändern, eine Adressinformation, die einer ausgewählten Stelle im Hauptspeichermittel entspricht, um ein vorbestimmtes, an der ausgewählten Stelle gespeichertes Datenwort als ein bestimmtes zu änderndes Datenwort zu bestimmen, und eine Datenmaske, die wenigstens ein Bit im bestimmten zu ändernden Datenwort kennzeichnet;
Übertragen des Änderungsbefehls, der Adressinformation und der Datenmaske über die Schnittstelle an den Speicher; wobei das Verfahren dadurch gekennzeichnet ist, dass es darüber hinaus die folgenden Schritte umfasst:
Lokalisieren des ausgewählten Datenworts (70) und Übertragen des bestimmten Worts aus dem Hauptspeichermittel an ein Datenzwischenhaltemittel (34, 40, 44) im Speicher in Antwort auf den Änderungsbefehl und die Adressdaten; und
Anwenden der Datenmaske (72) auf das im Haltemittel enthaltene bestimmte Datenwort (70), um das bestimmte Datenwort gemäß dem Inhalt der Datenmaske wahlweise zu ändern, um ein geändertes bestimmtes Datenwort (74, 78) bereitzustellen;
Zurückführen des geänderten bestimmten Datenworts an das Hauptspeichermittel.
9. Ablauf nach Anspruch 8, wobei die Schritte des Übertragens des bestimmten Datenworts an das Zwischenhaltemittel, des Anwendens der Datenmaske auf das bestimmte Datenwort und des Zurückführens des geänderten bestimmten Datenworts an das Hauptspeichermittel alle während eines einzigen Lese- /Änderungs-/Schreibzykluses ausgeführt werden.
10. Ablauf nach Anspruch 8 oder 9, wobei der Schritt des Zurückführens des geänderten bestimmten Datenworts an das Hauptspeichermittel ein Übertragen des geänderten bestimmten Datenworts an die ausgewählte Stelle (68) enthält.
11. Ablauf nach irgendeinem der Ansprüche 8 bis 10, wobei der Änderungsbefehl ein Setzbefehl oder ein Rücksetzbefehl ist; und der Schritt des Anwendens der Datenmaske auf das bestimmte Datenwort den Schritt enthält, das bestimmte Datenwort (70) und die Datenmaske (72) als Eingangssignale an ein logisches ODER-Gatter (62) jedesmal dann bereitzustellen, wenn der Befehl ein Setzbefehl ist.
12. Ablauf nach Anspruch 11, wobei: der Schritt des Anwendens der Datenmaske darüber hinaus den Schritt enthält, die Datenmaske zu invertieren und eine invertierte Datenmaske (76) bereitzustellen und die invertierte Datenmaske und das bestimmte Datenwort (70) an ein logisches UND-Gatter (60) jedesmal dann bereitzustellen, wenn der Befehl ein Rücksetzbefehl ist.
DE69033416T 1989-12-13 1990-10-31 Hauptspeicherkarten mit Einzelbit-Setz- und Rücksetz-Funktion Expired - Fee Related DE69033416T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/450,182 US5167029A (en) 1989-12-13 1989-12-13 Data processing system and associated process using memory cards having data modify functions utilizing a data mask and an internal register

Publications (2)

Publication Number Publication Date
DE69033416D1 DE69033416D1 (de) 2000-02-10
DE69033416T2 true DE69033416T2 (de) 2000-07-06

Family

ID=23787110

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69033416T Expired - Fee Related DE69033416T2 (de) 1989-12-13 1990-10-31 Hauptspeicherkarten mit Einzelbit-Setz- und Rücksetz-Funktion

Country Status (10)

Country Link
US (1) US5167029A (de)
EP (1) EP0437160B1 (de)
JP (1) JPH03189843A (de)
KR (1) KR940002903B1 (de)
CN (1) CN1017837B (de)
AU (1) AU636680B2 (de)
BR (1) BR9006026A (de)
CA (1) CA2026741C (de)
DE (1) DE69033416T2 (de)
ES (1) ES2140376T3 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1247640B (it) * 1990-04-26 1994-12-28 St Microelectronics Srl Operazioni booleane tra due qualsiasi bit di due qualsiasi registri
US5434970A (en) * 1991-02-14 1995-07-18 Cray Research, Inc. System for distributed multiprocessor communication
WO1994029871A1 (en) * 1993-06-14 1994-12-22 Rambus, Inc. Method and apparatus for writing to memory components
DE69412504T2 (de) * 1993-10-12 1999-03-25 Samsung Electronics Co. Ltd., Suwon, Kyungki Hardware-unterstützter zählungsänderungsbefehl
US5499376A (en) * 1993-12-06 1996-03-12 Cpu Technology, Inc. High speed mask and logical combination operations for parallel processor units
US5692154A (en) * 1993-12-20 1997-11-25 Compaq Computer Corporation Circuit for masking a dirty status indication provided by a cache dirty memory under certain conditions so that a cache memory controller properly controls a cache tag memory
US6532180B2 (en) 2001-06-20 2003-03-11 Micron Technology, Inc. Write data masking for higher speed DRAMs
US7016999B1 (en) * 2002-02-05 2006-03-21 Adaptec, Inc. Hardware circuit and method for automatically configuring on-the-fly a sub-unit in a SCSI message
US6671212B2 (en) * 2002-02-08 2003-12-30 Ati Technologies Inc. Method and apparatus for data inversion in memory device
US8510569B2 (en) * 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
US8850137B2 (en) 2010-10-11 2014-09-30 Cisco Technology, Inc. Memory subsystem for counter-based and other applications
US11537319B2 (en) * 2019-12-11 2022-12-27 Advanced Micro Devices, Inc. Content addressable memory with sub-field minimum and maximum clamping
CN114579189B (zh) * 2022-05-05 2022-09-09 深圳云豹智能有限公司 单核以及多核访问寄存器数据的方法、处理器和系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS559742B2 (de) * 1974-06-20 1980-03-12
JPS5671154A (en) * 1979-11-15 1981-06-13 Nec Corp Information processing device
US4363093A (en) * 1980-03-10 1982-12-07 International Business Machines Corporation Processor intercommunication system
US4412286A (en) * 1980-09-25 1983-10-25 Dowd Brendan O Tightly coupled multiple instruction multiple data computer system
US4520439A (en) * 1981-01-05 1985-05-28 Sperry Corporation Variable field partial write data merge
JPS5960658A (ja) * 1982-09-30 1984-04-06 Fujitsu Ltd 論理機能を備えた半導体記憶装置
JPS59188764A (ja) * 1983-04-11 1984-10-26 Hitachi Ltd メモリ装置
US4569016A (en) * 1983-06-30 1986-02-04 International Business Machines Corporation Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system
WO1985003486A1 (en) * 1984-02-06 1985-08-15 The Boeing Company Counterbalanced hinge assembly
JPS60189043A (ja) * 1984-03-07 1985-09-26 Fuji Electric Co Ltd プロセツサ
US4663728A (en) * 1984-06-20 1987-05-05 Weatherford James R Read/modify/write circuit for computer memory operation
JPS61104391A (ja) * 1984-10-23 1986-05-22 Fujitsu Ltd 半導体記憶装置
US4712190A (en) * 1985-01-25 1987-12-08 Digital Equipment Corporation Self-timed random access memory chip

Also Published As

Publication number Publication date
DE69033416D1 (de) 2000-02-10
KR940002903B1 (en) 1994-04-07
CN1017837B (zh) 1992-08-12
CN1052562A (zh) 1991-06-26
EP0437160B1 (de) 2000-01-05
BR9006026A (pt) 1991-09-24
JPH03189843A (ja) 1991-08-19
ES2140376T3 (es) 2000-03-01
CA2026741A1 (en) 1991-06-14
EP0437160A2 (de) 1991-07-17
CA2026741C (en) 1994-02-01
EP0437160A3 (en) 1993-01-13
KR910012955A (ko) 1991-08-08
US5167029A (en) 1992-11-24
AU6655390A (en) 1991-06-20
AU636680B2 (en) 1993-05-06

Similar Documents

Publication Publication Date Title
DE3909896C2 (de)
DE3724317C2 (de)
DE69132195T2 (de) System für verteilte Mehrfachrechnerkommunikation
DE69834739T2 (de) Ausgleichen von daten die zwischen verschiedenen leitern fliessen die auf unterschiedlichen frequenzen operieren
DE69906156T2 (de) Mikroprozessorvorrichtung mit programmierbaren wartezuständen
DE69325774T2 (de) Programmierbare Externspeichersteuerungseinrichtung
DE69033416T2 (de) Hauptspeicherkarten mit Einzelbit-Setz- und Rücksetz-Funktion
DE69131917T2 (de) Cache-Speicher mit rekonfigurierbarer Blocklänge und Verfahren dafür
DE68927795T2 (de) Übertragungssystem mit einem gemeinsamen Speicher
WO2005091131A2 (de) Computersystem zur elektronischen datenverarbeitung
DE69119149T2 (de) Struktur zur direkten Speicher-zu-Speicher-Übertragung
DE2813080A1 (de) Einrichtung zur speicheradressierung
DE3123382C2 (de) Verfahren und Einrichtung zum Übertragen von Daten in einem Mehrprozessorsystem
DE68925569T2 (de) Dynamischer Video-RAM-Speicher
DE3688446T2 (de) Mikroprozessorunterstützte Speicher-zu-Speicher-Transfervorrichtung.
DE3501903A1 (de) Im pipelinebetrieb arbeitende datenverarbeitungseinrichtung
DE68924945T2 (de) Pufferspeicheranordnung.
DE69932891T2 (de) Informationsverarbeitungsgerät und -verfahren, und Darstellungsmedium
DE69025782T2 (de) Registerbankschaltung
DE69528824T2 (de) Apparat und verfahren zum erneuern von informationen in einem beschreibbaren mikrokode-kontrollspeicher
DE10105627B4 (de) Mehrfachanschlussspeichereinrichtung, Verfahren und System zum Betrieb einer Mehrfachanschlussspeichereinrichtung
DE3923872A1 (de) Schaltungsanordnung zum steuern des zugriffs auf einen speicher
DE69030368T2 (de) Tandem-Cache-Speicher
DE2110458B2 (de) Speicheranordnung in einem datenverarbeitenden System
DE69521089T2 (de) Vektordatenumgehungsmechanismus für einen Vektorrechner

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee