DE60224774T2 - Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit - Google Patents

Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit Download PDF

Info

Publication number
DE60224774T2
DE60224774T2 DE60224774T DE60224774T DE60224774T2 DE 60224774 T2 DE60224774 T2 DE 60224774T2 DE 60224774 T DE60224774 T DE 60224774T DE 60224774 T DE60224774 T DE 60224774T DE 60224774 T2 DE60224774 T2 DE 60224774T2
Authority
DE
Germany
Prior art keywords
data
read
write
unit
modification
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 - Lifetime
Application number
DE60224774T
Other languages
English (en)
Other versions
DE60224774D1 (de
Inventor
Moriyasu Banno
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Publication of DE60224774D1 publication Critical patent/DE60224774D1/de
Application granted granted Critical
Publication of DE60224774T2 publication Critical patent/DE60224774T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Advance Control (AREA)
  • Bus Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung betrifft ein System, in dem Lese-, Modifizierungs- und Schreibbefehle installiert sind.
  • Im Genaueren betrifft diese Erfindung ein System, das eine Lese-, Modifizierungs- und Schreibeinheit zum Durchführen von Lese-, Modifizierungs- und Schreiboperationen aufweist zusätzlich zu einer Zentralbearbeitungseinheit (die im Folgenden als CPU abgekürzt ist).
  • Im Weiteren betrifft die vorliegende Erfindung ein System, das eine Lese-, Modifizierungs- und Schreibeinheit und auch eine digitale Signalbearbeitungseinheit (im Folgenden als DSP abgekürzt) aufweist, die nicht lediglich nur auf eine CPU sondern auch auf einen digitalen Signalprozessor, etc. anwendbar ist zum Durchführen einer Reihe von Lese, Modifizierungs- und Schreiboperationen, wie eine CPU.
  • Mikroprozessoren weisen im Allgemeinen eine CPU auf, die eine Operationseinheit und eine Steuereinheit aufweisen, die auf einem Siliziumchip mit LSI-Produktionstechnologie eingerichtet ist. Ein Computersystem weist solch einen Mikroprozessor und damit verbundene Speicher auf. Aktuelle Mikrocomputer weisen auch Speicher auf, die in einem Mikroprozessorchip installiert sind, wobei zwischen dem Mikroprozessor und den Speichern über eine Busschnittstelleneinheit zugegriffen wird (im Folgenden als BIU abgekürzt, englisch: bus interface unit).
  • In 30 ist eine bekannte Mikroprozessorarchitektur mit einer CPU 1, einem Speicher 2 und einer BIU gezeigt, die zwischen diesen eingefügt ist.
  • Die CPU 1 führt einen Buslesezyklus, einen Busschreibzyklus oder einen Dummy-Buszyklus (weder Lesen noch Schreiben) für den Speicher 2 über die BIU 3 aus. Im Detail empfängt die BIU 3 eine Speicheradresse, eine Lese- oder Schreibanforderung und Schreibdaten, zu schreibende Daten (lediglich beim Schreiben) von der CPU 1, während Lesedaten, von dem Speicher 2 gelesene Daten, zu der CPU 1 durchgelassen werden.
  • 30 zeigt einen Direktzugriff auf den Speicher 2 durch die BIU 3. Eine Speichersteuerungseinheit (in Abhängigkeit des Typs des Speichers 2) kann bereitgestellt werden zwischen der BIU und dem Speicher 2 zum Lesen und Schreiben von Operationen zu dem Speicher über die Speichersteuereinheit.
  • Eine Lese-, Modifizierungs- und Schreibinstruktion wird detailliert erklärt. Diese Instruktion ist eine einzelne Instruktion für die CPU zum Ausführen einer Reihe von Operationen auf den Schreibdaten von einem Speicher, Modifizieren einiger oder aller Bits der Lesedaten und dann erneutes Schreiben der Originaldaten mit den modifizierten Daten in den Speicher.
  • Die Lese-, Modifizierungs- und Schreibinstruktion wird beispielsweise verwendet für Bit-Manipulation von 1-Bit-Daten, so wie Bit-Einstellung, Bit-Löschung, Bit-Inversion und logische Bit-Operationen (LOGICAL ORAND, NOR, etc.) und auch für Bit-Feldmanipulation für 2-Bit-Daten oder mehr, so wie arithmetische Operationen, logische Operationen, Verschiebung/Rotation, Einfügung/Ersatz und Löschung/Einstellung.
  • Als nächstes wird die Bit-Manipulation und Bit-Feldmanipulation für einen 8-Bit-Speicher erklärt.
  • In der folgenden Erklärung ist das höchstwertige Bit und das niedrigstwertige Bit als Bit 7 bzw. Bit 0 definiert für Binärzahldaten "10101010", die in dem 8-Bit-Speicher bei einer gegebenen Adresse gespeichert sind.
  • Die Bit-Manipulation wird zuerst für vier Fälle erklärt.
  • Biteinstellung für Bit 2 ersetzt den Wert "0" von Bit 2 in "10101010" mit "1", wodurch "10101110" in den 8-Bit-Speicher geschrieben wird.
  • Bit-Löschung für Bit 7 löscht den Wert "1" von Bit 7 von "10101010", um den Wert "0" für Bit 7 aufzuweisen, wodurch ""00101010" in den 8-Bit-Speicher geschrieben wird.
  • Bit-Invertierung für Bit 2 invertiert den Wert "0" von Bit 2 zu "1" in "10101010", wodurch "10101110" in den 8-Bit-Speicher geschrieben wird.
  • Eine Bit-LOGICAL OR-Operation bzw. eine logische Bit ODER-Operation für Bit 2 wendet ein logisches OR bzw. ODER zwischen den Wert "1" und "0" von Bit 2 "10101010" an, um das Ergebnis "1" aufzuweisen, wodurch "10101110" in den 8-Bit-Speicher geschrieben wird.
  • Als nächstes wird die Bit-Feldmanipulation für sieben Fälle beschrieben.
  • Hinzufügeoperation zu 3-Bit-Daten "010" der Bits 6 bis 4 in "10101010" mit dem Wert "110" gibt den Wert "000" als untere drei Bits der Ergebnisse (Summe) d. h. "010 + 110 = 1000", wodurch "10001010" in den 8-Bit-Speicher geschrieben wird.
  • Subtraktion-(oder Dekrement)Operation für 3-Bit-Daten "010" der Bits 6 bis 4 in "10101010" von einem Wert "1", d. h. "010 – 1 = 001" resultiert in "10011010", was in den 8-Bit-Speicher geschrieben wird.
  • Eine EOR-Operation, ein exklusives logisches OR bzw. ODER, mit dem Wert "110" auf 3-Bit-Daten "010" der Bits 6 bis 4 in "10101010" ergibt den Wert "100", wodurch "11001010" in den 8-Bit-Speicher geschrieben wird.
  • Operatives 1-Bit-Rechtsverschieben der 3-Bit-Daten "010" der Bits 6 bis 4 in "10101010" ergibt den Wert "001", wodurch "10011010" in den 8-Bit-Speicher geschrieben wird.
  • 1-Bit-Rechtsrotation der 4-Bit-Daten "0101" der Bits 6 bis 3 in "10101010" rotiert den Wert "0101" zu dem Wert "1010", wodurch "11010010" in den 8-Bit-Speicher geschrieben wird.
  • Bit-Feldeinfügung des Werts "1101" für 4-Bit-Daten "0101" der Bits 6 bis 3 in "10101010" ersetzt den Wert "1010" mit "1101", wodurch "11101010" in den 8-Bit-Speicher geschrieben wird.
  • Bit-Feldlöschung der 4-Bit-Daten "0101" der Bits 6 bis 3 "10101010" resultiert in "10000010", was in den 8-Bit-Speicher geschrieben wird.
  • Ausführung von Datenlesen von einem Speicher, Datenmodifizierung der ausgelesenen Daten und erneutes Datenschreiben der modifizierten Daten zu dem Speicher mit unterschiedlichen Instruktionen während der Unterbrechung durch eine andere Aufgabe zwischen diesen Instruktion könnte eine Unterbrechung hervorrufen vor Datenmodifizierung oder erneutem Schreiben der Daten der erneut zu schreibenden Daten. Solch eine Unterbrechung könnte nachhteilige Konsequenzen für Systemoperationen hervorrufen, so wie Datensuche vor Datenumschreiben.
  • Um solche nachteilige Konsequenzen zu vermeiden, wird eine einzelne Lese-, Modifizierungs- und Schreibinstruktion zum Ausführen von Lesen der Daten, Datenmodifizierung und Schreiben der Daten benötigt.
  • Die nachteiligen Konsequenzen, die oben diskutiert wurden, sind beispielsweise die Folgenden:
    Unter der Annahme, dass Daten zum Unterscheiden zwischen einem Bearbeitungsmodus und einem Wartemodus in einem Speicher bei bestimmten Adressen für zwei Vorrichtungen A und B gespeichert sind, in denen Daten "10" anzeigen, dass die Vorrichtung A sich im Bearbeitungsmodus befindet, und Daten "11" anzeigen, dass sich die Vorrichtung B in dem Bearbeitungsmodus befindet, und Daten "00" anzeigen, dass sich beide Vorrichtungen A und B in dem Wartemodus befinden.
  • Die Unterscheidungsdaten werden dann von dem Speicher für die Vorrichtung A ausgelesen zum Ausführen einer spezifischen Bearbeitung. Die Daten werden umgeschrieben als "10", wenn diese "00" sind und wiederhergestellt, wodurch die Vorrichtung A die Bearbeitung startet. Wenn im Gegensatz die Daten nicht "00" sind, wartet die Vorrichtung A bis die Daten sich zu "00" verändern. Wenn die Vorrichtung A die Bearbeitung komplettiert, werden die Daten "00" in den Speicher geschrieben.
  • Wie die Vorrichtung A wartet auch die Vorrichtung B bis die Daten sich zu "00" verändern. Die Daten "11" werden dann geschrieben, so dass die Vorrichtung B eine spezifische Bearbeitung starten kann. Die Daten "00" werden auch geschrieben, wenn die Vorrichtung B die Bearbeitung komplettiert.
  • Lese-, Modifizierungs- und Schreibbearbeitung wird daher benötigt für solch ein System, in dem es den Vorrichtungen A und B nicht erlaubt ist, simultan die Bearbeitung zu starten, so dass die Bearbeitung nicht unterbrochen wird.
  • Wenn die Lese-, Modifizierungs- und Schreibbearbeitung unterbrochen wird, während Daten, die von dem Speicher durch die Vorrichtung A ausgelesen werden, "00" waren, tritt Unterbrechung während Daten- "10" Schreiben für die Vorrichtung A auf, um Bearbeitung zu starten. Die Unterbrechung erzwingt, dass die Vorrichtung B die Daten von dem Speicher liest, wodurch die Daten "00" gelesen werden, und daher werden die Daten "11" für die Vorrichtung B geschrieben, um die Bearbeitung anstelle der Vorrichtung A zu starten.
  • Wenn die Unterbrechung fertig ist und die Daten "10" geschrieben sind, startet die Vorrichtung A die Bearbeitung, obwohl die Vorrichtung B sich immer noch im Bearbeitungsmodus befindet.
  • Wie oben diskutiert, könnten die Vorrichtungen A und B Konsequenzen bei Bearbeitung erleiden, gewechselt bzw. geschaltet zu werden zwischen der Vorrichtung aufgrund der Unterbrechung.
  • Die Lese-, Modifizierungs- und Schreibinstruktion enthält Bit-Manipulation, so wie Bit-Einstellung, Bit-Löschung, Bit-Einfügung, logische Bit-Operationen und Bit-Invertierung; Bit-Feldmanipulation, so wie Bit-Feldeinfügung und Bit-Feldersetzung; Verschiebeoperationen, so wie Operationsverschiebung und logische Verschiebung; und Hinzufüge-/Subtrahierungs-Operationen, so wie Erhöhung/Erniedrigung, wie oben diskutiert.
  • Installation der Lese-, Modifizierungs- und Schreibinstruktion in Mikroprozessoren, Mikrocomputern und DSPs, etc. benötigt Bearbeitungszeit über einen Maschinenzyklus für Instruktionsabruf, Instruktionsdekodierung, Lesen des Speichers, Datenmodifizierung und Schreiben in den Speicher.
  • In 26 ist eine Instruktionsausführung in einem ersten CISC-(Computer mit einem komplexen Instruktionssatz, englisch: Complex Instruction Set Computer)Prozessor ohne sich in einer Pipeline befindender Bearbeitung dargestellt.
  • Eine Lese-, Modifizierungs- und Schreibinstruktion (Instruktion 2 in 26) benötigt mindestens eine Instruktionszeit von 5 Maschinenzyklen für die Instruktion Abruf "F", Instruktion Dekodierung "D", Auslesen des Speichers "rd", Datenmodifizierung "mo" und Schreiben in den Speicher "wr".
  • In 27 ist eine Instruktionsausführung in einem zweiten bekannten CISC-Prozessor mit sich in einer Pipeline befindlicher Bearbeitung dargestellt.
  • Einige Instruktionen in einer Lese-, Modifizierungs- und Schreibinstruktion können parallel mit anderen vorangehenden oder nachfolgenden Instruktionen ausgeführt werden, obwohl es 5 Maschinenzyklen Instruktionsausführungszeit benötigt für die Instruktion Abruf "F", Instruktion Dekodierung "D", Lesen des Speichers "rd", Datenmodifizierung "mo" und Schreiben in den Speicher "wr".
  • Im Detail werden die F- und D-Stufen ausgeführt, während die vorangehenden Instruktionen "E" und "W" (INSTRUKTION 1) ausgeführt werden, und die mo- und wr-Stufen werden ausgeführt, während die nachfolgenden Instruktionen "F" und "D" (INSTRUKTION 3) ausgeführt werden. Daher wird die Lese-, Modifizierungs- und Schreibinstruktion ausgeführt, als ob diese für 3 Maschinenzyklen läuft.
  • 28 stellt eine Instruktion Ausführung in einem dritten bekannten RISC-(Computer mit reduziertem Instruktionssatz, englisch: Reduced Instruktion Set Computer)Prozessor mit 5-stufiger Pipeline-Bearbeitung dar.
  • Eine Pipeline weist 5 Stufen von Instruktionen auf Fetch bzw. Abruf "F", Instruktion Dekodierung "D", Berechnungsausführung "E", Speicherzugriff "M" und Registerschreiben "W".
  • Zwei Typen von Bearbeitung werden bei der Speicherzugriffs-"M"Stufe durchgeführt; Lesen des Speichers bei der anfänglichen "M"-Stufe; und Schreiben des Speichers bei der nächsten "M"-Stufe. Modifizierungsbearbeitung wird durchgeführt, wenn die Pipeline-Bearbeitung zurückkehrt zu den Instruktions-Dekodierungs-"D" und Berechnungsausführungs-"E"-Stufen.
  • Die Pipeline-Bearbeitung wird durchgeführt in der Reihenfolge von Instruktion Abruf "F", Instruktion Dekodierung "D", Berechnungsausführung "E", Speicherzugriff "M" mit Lesen des Speichers, Instruktion Dekodierung "D", Berechnungsausführung "E" mit Datenmodifizierung, Speicherzugriff "M" mit Schreiben des Speichers und Schreiben des Registers "W".
  • Während die Pipeline-Bearbeitung zurückkehrt, wird eine Instruktion, die der Lese-, Modifizierungs- und Schreibinstruktion folgt, blockiert bevor die Pipeline-Bearbeitung in eine Instruktions-Dekodierungsstufe eintritt. Die Lese-, Modifizierungs- und Schreibinstruktion, die in 28 dargestellt ist, scheint somit 4 Maschinenzyklen aufzuweisen. Der dritte bekannte Prozessor benötigt 2 Stufen für Datenmodifizierung für Pipelinebearbeitung.
  • 29 stellt Lese-, Modifizierungs- und Schreibbearbeitung für einen vierten bekannten Prozessor dar, der den dritten bekannten Prozessor (28) entspricht, aber einen Speicher mit relativer langsamer Lese- und Schreibbearbeitung aufweist (so wie ein Speicher, der 2 Maschinenzyklen für jedes Lesen und Schreiben benötigt).
  • Die Lese-, Modifizierungs- und Schreibinstruktion, die in 29 dargestellt ist, benötigt 5 Maschinenzyklen, da eine Speicherzugriffs-"M"-Stufe mindestens 2 Maschinenzyklen benötigt.
  • Umso langsamer die Lese-Schreibbearbeitung für einen verwendeten Speicher ist, desto größer ist die Anzahl von Maschinenzyklen, die verwendet werden zum Ausführen der Lese-, Modifizierungs- und Schreibinstruktion, d. h., Maschinenzyklen für die Lese-, Modifizierungs- und Schreibinstruktion = Maschinenzyklen zum Lesen des Speichers + Maschinenzyklen für Datenmodifizierung + Maschinenzyklen für Instruktionsausführung.
  • Wie oben diskutiert sind die Lese-, Modifizierungs- und Schreibinstruktionen in den bekannten ersten bis vierten Prozessoren relativ langsame Instruktionen, die mindestens 3 bis 5 Maschinenzyklen benötigen.
  • Die Lese-, Modifizierungs- und Schreibinstruktion benötigt eine längere Ausführungszeit für Speicher mit langsamer Bearbeitungsgeschwindigkeit.
  • Lese-, Modifizierungs- und Schreibinstruktionen, so wie Bit-Manipulation, ersetzen üblicher Weise 10% bis 15% von Programmen, die in elektrischen Haushaltsgeräten installiert sind, so wie Klimaanlagen und digitale Camcorder und AV-(audio-visuelle)-Ausstattung, so wie CD-Spieler, DVD-Spieler, TVs und VCRs. Instruktionen mit langsamer Ausführungsgeschwindigkeit, die aber häufig verwendet werden, verursachen niedrige Prozessorperformance.
  • Ein Lese-, Modifizierungs-, und Schreibgesteuertes System, das in der nicht untersuchten japanischen Patentveröffentlichung Nr. 11-184761 offenbart ist, weist Lese-, Modifizierungs- und Schreibfunktionen auf. Lese-, Modifizierungs- und Schreibbearbeitung wird simultan oder parallel zu mehreren Speicherbänken ausgeführt. Dies unterscheidet sich von der vorliegenden Erfindung, in der CPU-Instruktionen parallel mit der vorangehenden Lese-, Modifizierungs- und Schreibbearbeitung für einen höheren Durchsatz durchgeführt werden.
  • Das Dokument "Read-modify-write data integrity", IBM Technical Disclosure Bulletin, IBM Corporation New York, US (1985), Volume 27, Nr. 8, Seiten 5019–5020 offenbart ein Datenbearbeitungssystem, das eine zentrale Bearbeitungseinheit (Prozessor), einen Speicher (Array) zum Speichern gegebener Daten und eine Busschnittstelleneinheit (implizit) umfasst. Es offenbart ferner eine Lese-, Modifizierungs- und Schreibeinheit, die Datenintegrität bei Lesemodifizierung-Schreiben gewährleistet. Daten, die aus dem Speicher gelesen werden, werden in einem Lesedatenregister gespeichert, und laufen dann über die ECC-Korrekturlogik zum Korrigieren von jedem einzelnen Bit-Fehler. Danach werden diese Daten mit Daten von dem Schreibdatenregister zusammengeführt, wodurch neue Prüfungs-Bits erzeugt werden. Diese modifizierten Daten werden dann zurückgespeichert in den Speicher. Wenn keine ECC-Fehler oder lediglich einzelne Bit-Fehler auftreten, ist Datenintegrität gewährleistet. Wenn ein doppelter Bit-Fehler in den gelesenen Daten detektiert wird, benachrichtigt ein Steuerungssignal (doppelte Bit-Fehlerdetektierung) den Zusammenführungs-Multiplexer und die alten Daten werden in dem Speicher zurückgespeichert, ohne Zusammenführung mit den Schreibdaten durchzuführen. Dann kann ein Algorithmus ausgeführt werden zum Korrigieren des doppelten Bit-Fehlers.
  • Neue programmimplementierte Ausstattungen sind in der Ausführung bzw. Bearbeitung komplex geworden. Darüber hinaus gibt es einen Bedarf für eine höhere Bearbeitungsgeschwindigkeit und/oder niedrigeren Energieverbrauch. Eine höhere Systemperformance oder eine kleinere Anzahl von Takten pro Instruktion (im Folgenden als CPI abgekürzt) für jede CPU-Instruktion sind stark erwünscht.
  • Pipeline-Bearbeitung wurde vorangebracht für kleinere CPI, um die Bedürfnisse zu befriedigen, sind jedoch blockiert bzw. gehemmt durch Lese-, Modifizierungs- und Schreibinstruktionen, so wie Bit-Manipulation, aufgrund von 3 oder mehr Maschinenzyklen beim CPI.
  • Darüber hinaus beeinflussen Speicher mit langsamer Zugriffszeit die CPI in Lese-, Modifizierungs- und Schreiboperationen. Beispielsweise benötigt ein 2 Maschinenzyklen Zugriffszeitspeicher 5 (= 2 + 2 + 1) Maschinenzyklen in CPI für Lese-, Modifizierungs- und Schreibinstruktionen.
  • Wie oben diskutiert weisen die bekannten Prozessoren lange Ausführungszeit für Lese-, Modifizierungs- und Schreibinstruktionen auf. Programmimplementierte Ausstattung, die viele Lese-, Modifizierungs- und Schreibinstruktionen verwendet, weisen daher längere Ausführungszeit auf, was die Leistungsfähigkeiten ungünstig beeinflusst, speziell von CPU-eingebetteten Systemen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Um die oben diskutierten Probleme zu bewältigen, ist ein Zweck der vorliegenden Erfindung, ein System mit einer kürzeren Ausführungszeit für Lese-, Modifizierungs- und Schreibinstruktionen bereitzustellen.
  • Ein anderer Zweck der vorliegenden Erfindung ist die Bereitstellung eines Systems, das eine Lese-, Modifizierungs- und Schreibinstruktion in einem Maschinenzyklus wie andere Instruktionen ausführen kann.
  • Ein Datenbearbeitungssystem gemäß der vorliegenden Erfindung, wie es in Anspruch 1 definiert ist, enthält: eine zentrale Bearbeitungseinheit zum Dekodieren und Ausführen von gegebenen Instruktionen; einen Speicher zum Speichern gegebener Daten; eine Busschnittstelleneinheit, die zwischen der zentralen Bearbeitungseinheit und dem Speicher bereitgestellt ist, um einen Buslesezyklus zum Lesen von Daten von dem Speicher, einen Busschreibzyklus zum Schreiben von Daten in den Speicher oder einen Dummy-Buszyklus zu starten (der sich von den Lese- und Schreibzyklen unterscheidet); und eine Lese-, Modifizierungs- und Schreibeinheit, die zwischen der zentralen Bearbeitungseinheit und der Busschnittstelleneinheit bereitgestellt ist. Die Lese-, Modifizierungs- und Schreibeinheit weist auf: einen Modifizierungsvoraussetzungs-Puffer zum Speichern von Modifizierungsvoraussetzungen, die zusammengesetzt sind aus Modifizierungsdaten, die von der zentralen, Bearbeitungseinheit ausgegeben werden, und einem Betriebssteuerungssignal; und einen Modifizierungsoperations-Schaltkreis zum Anwenden einer Betriebsbearbeitung auf Lesedaten, die von der Busschnittstelleneinheit ausgegeben werden, mit den Modifizierungsdaten, die von dem Modifizierungsvoraussetzungs-Puffer ausgegeben werden, unter dem Betriebssteuerungssignal, um ein Operationsergebnis zu der Busschnittstelleneinheit als Schreibdaten auszugeben.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Systemblockdiagramm, das eine Lese-, Modifizierungs- und Schreibeinheit gemäß einer ersten Ausführungsform der vorliegenden Erfindung enthält;
  • 2 ist eine Tabelle, die Lese-, Modifizierungs- und Schreibinstruktionen darstellt, die in der ersten Ausführungsform verwendet werden;
  • 3 ist eine andere Tabelle, die Lese-, Modifizierungs- und Schreiboperationen darstellt, die in der ersten Ausführungsform verwendet werden;
  • 4 ist ein Systemblockdiagramm, das eine Lese-, Modifizierungs- und Schreibeinheit gemäß einer zweiten Ausführungsform der vorliegenden Erfindung enthält;
  • 5 ist eine Darstellung, die eine exemplarische Ausführung von Lese-, Modifizierungs- und Schreibinstruktionen in einem Prozessor gemäß der dritten Ausführungsform der vorliegenden Erfindung zeigt;
  • 6 ist eine Darstellung, die eine exemplarische Ausführung von Lese-, Modifizierungs- und Schreibinstruktionen in einem Prozessor gemäß einer vierten Ausführungsform der vorliegenden Erfindung zeigt;
  • 7 zeigt eine Darstellung, die eine exemplarische Ausführung von Lese-, Modifizierungs- und Schreibinstruktionen zeigt, die in Prozessoren zu verbessern sind, gemäß der fünften und sechsten Ausführungsformen der vorliegenden Erfindung;
  • 8 ist eine Darstellung, die eine exemplarische Ausführung der Lese-, Modifizierungs- und Schreiboperationen zeigt, die in dem Prozessor verbessert sind, gemäß der fünften Ausführungsform der vorliegenden Erfindung;
  • 9 ist eine Darstellung, die eine exemplarische Ausführung der Lese-, Modifizierungs- und Schreibinstruktionen zeigt, die in dem Prozessor verbessert sind, gemäß der sechsten Ausführungsform der vorliegenden Erfindung;
  • 10 ist eine Darstellung, die eine exemplarische Ausführung der Lese-, Modifizierungs- und Schreibinstruktionen in einem Prozessor gemäß einer siebten Ausführungsform der vorliegenden Erfindung zeigt;
  • 11 ist ein Systemblockdiagramm, das eine Lese-, Modifizierungs- und Schreibeinheit enthält, die durch achte bis einundzwanzigste Ausführungsformen der vorliegenden Erfindung gemeinsam verwendet werden;
  • 12 ist ein Systemblockdiagramm, das eine Lese-, Modifizierungs- und Schreibeinheit gemäß der achten Ausführungsform der vorliegenden Erfindung enthält;
  • 13 ist ein Systemblockdiagramm, das eine Lese-, Modifizierungs- und Schreibeinheit gemäß der neunten Ausführungsform der vorliegenden Erfindung enthält;
  • 14 ist ein Systemblockdiagramm, das eine Lese-, Modifizierungs- und Schreibeinheit gemäß der zehnten Ausführungsform der vorliegenden Erfindung enthält;
  • 15 ist ein Systemblockdiagramm, das eine Lese-, Modifizierungs- und Schreibeinheit gemäß einer ersten Architektur in der elften Ausführungsform der vorliegenden Erfindung enthält;
  • 16 ist ein Systemblockdiagramm, das eine Lese-, Modifizierungs- und Schreibeinheit gemäß einer zweiten Architektur in der zwölften Ausführungsform der vorliegenden Erfindung enthält;
  • 17 ist ein Systemblockdiagramm, das eine Lese-, Modifizierungs- und Schreibeinheit gemäß der dreizehnten Ausführungsform der vorliegenden Erfindung enthält;
  • 18 ist ein Systemblockdiagramm, das eine Lese-, Modifizierungs- und Schreibeinheit gemäß der vierzehnten Ausführungsform der vorliegenden Erfindung enthält;
  • 19 ist ein Systemblockdiagramm, das eine Lese-, Modifizierungs- und Schreibeinheit gemäß der fünfzehnten Ausführungsform der vorliegenden Erfindung enthält;
  • 20 ist ein Systemblockdiagramm, das eine Lese-, Modifizierungs- und Schreibeinheit gemäß der sechzehnten Ausführungsform der vorliegenden Erfindung enthält;
  • 21 ist ein Systemblockdiagramm, das eine Lese-, Modifizierungs- und Schreibeinheit gemäß der siebzehnten Ausführungsform der vorliegenden Erfindung enthält;
  • 22 ist ein Systemblockdiagramm, das eine Lese-, Modifizierungs- und Schreibeinheit gemäß der achtzehnten Ausführungsform der vorliegenden Erfindung enthält;
  • 23 ist ein Systemblockdiagramm, das eine Lese-, Modifizierungs- und Schreibeinheit gemäß der neunzehnten Ausführungsform der vorliegenden Erfindung enthält;
  • 24 ist ein Systemblockdiagramm, das eine Lese-, Modifizierungs- und Schreibeinheit gemäß der zwanzigsten Ausführungsform der vorliegenden Erfindung enthält;
  • 25 ist ein Systemblockdiagramm, das eine Lese-, Modifizierungs- und Schreibeinheit gemäß der einundzwanzigsten Ausführungsform der vorliegenden Erfindung enthält;
  • 26 ist eine Darstellung, die eine erste bekannte RMW-Bearbeitung in einem CISC-Prozessor mit keiner Pipeline-Instruktionsausführung zeigt;
  • 27 ist eine Darstellung, die eine zweite bekannte RMW-Bearbeitung in einem CISC-Prozessor mit Pipeline-Instruktionsausführung zeigt;
  • 28 ist eine Darstellung, die eine dritte bekannte RMW-Bearbeitung in einem RISC-Prozessor mit Pipeline-Instruktionsausführung zeigt;
  • 29 ist eine Darstellung, die eine vierte bekannte RMW-Bearbeitung in dem Fall von Lese-/Schreibbearbeitung in einen Speicher zeigt, der eine langsame Zugriffszeit aufweist, in einem RISC-Prozessor mit Pipeline-Instruktionsausführung; und
  • 30 ist ein Blockdiagramm eines bekannten Prozessors, der Lese-, Modifizierungs- und Schreibinstruktionen aufweist.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Ausführungsformen der Systeme gemäß der vorliegenden Erfindung werden detailliert mit Bezug auf die beigefügten Zeichnungen offenbart.
  • Zuerst offenbart sind eine Systemarchitektur und deren Operationsprinzip gemäß einer ersten Ausführungsform der vorliegenden Erfindung mit Bezug auf die 1 bis 3. Die Architektur eines Prozessors gemäß einer zweiten Ausführungsform, eine Modifikation der ersten Ausführungsform, wird als nächstes offenbart mit Bezug auf 4. Danach werden die Eigenschaften der vorliegenden Erfindung gemäß weiteren Ausführungsformen erklärt.
  • Nun wird mit Bezug auf 1 die Systemarchitektur gemäß der ersten Ausführungsform der vorliegenden Erfindung offenbart.
  • Wie in 1 gezeigt, enthält das System gemäß der ersten Ausführungsform mindestens eine CPU 1 zum Dekodieren und Ausführen von mehreren Instruktionen; einen Speicher 2 zum Speichern gegebener Daten; und eine Busschnittstelleneinheit (die im Folgenden als BIU abgekürzt wird) 3, die zwischen der CPU 1 und dem Speicher 2 eingefügt ist, zum Starten eines Buslesezyklus, um Daten von dem Speicher zu lesen, wenn eine Adresse von der CPU sich im Adressenraum des Speichers 2 befindet, eines Busschreibzyklus zum Schreiben von Daten in den Speicher 2, wenn eine Adresse von der CPU 1 sich innerhalb des Adressenraums des Speichers befindet, oder eines Dummy-Buszyklus, der sich von den Lese- und Schreibbuszyklen unterscheidet. Die CPU 1, der Speicher 2 und die BIU 3 sind analog zu denen des bekannten Systems, das in 30 gezeigt ist.
  • Eine charakteristische Struktur des Systems in dieser Ausführungsform ist eine Lese-, Modifizierungs- und Schreibeinheit (die im Folgenden als RMWU abgekürzt wird) 10 zum Ausführen einer Speicherlesebearbeitung, einer Datenmodifizierungsbearbeitung und einer Speicherschreibbearbeitung unter einer Lese-, Modifizierungs- und Schreibinstruktion (die gelegentlich als RMW abgekürzt wird).
  • Die detaillierte Architektur der RMWU 10 wird mit Bezug auf 1 offenbart.
  • Die RMWU 10 wird bereitgestellt mit einem Speicheradress-Puffer 11 zum Speichern von Speicheradressen, die durch die CPU 1 bereitgestellt werden, und zum Ausgeben dieser zu der BIU 3; einem Modifizierungsvoraussetzungs-Puffer 12 zum Speichern von Modifizierungsvoraussetzungen, die durch die CPU 1 bereitgestellt werden; einem Modifizierungsvoraussetzungs-Dekoder 13 zum Dekodieren der Modifizierungsvoraussetzungen, um Modifizierungsdaten und ein Betriebssteuerungssignal zu erzeugen; einem Lesedatenspeicherpuffer 14 zum Speichern von Lesedaten (die von dem Speicher 2 ausgelesen werden), die durch die BIU 3 bereitgestellt werden; einem Modifizierungsoperations-Schaltkreis 15 zum Anwenden einer Operationsbearbeitung der Lesedaten von dem Lesedatenspeicherpuffer 14 mit den Modifizierungsdaten unter dem Operationssteuerungssignal zum Ausgeben der Lesedaten oder modifizierten Daten; einem Schreibdatenspeicherpuffer 17 zum Speichern von Schreibdaten, die durch die CPU 1 bereitgestellt werden; einer Auswahleinrichtung bzw. einem Selektor 16 zum Auswählen entweder der Schreibdaten von dem Schreibdatenpuffer 17 oder der Lesedaten oder der modifizierten Daten von dem Modifizierungsoperations-Schaltkreis 15 und Ausgeben der ausgewählten Daten zu der BIU 3 als Schreibdaten; und einer RMWU-Steuerungseinheit 18 zum Empfangen einer Leseanforderung, einer Schreibanforderung oder einer Lese-, Modifizierungs- und Schreibanforderung von der CPU 1 und zum Ausgeben eines Steuerungssignals zum Anfordern des Buslesezyklus, des Schreibbuszyklus oder des Dummy-Buszyklus zu der BIU 3, so dass eine Reihe von Bearbeitungen von Lesen zu Schreiben nicht unterbrochen wird, wenn die Lese-, Modifizierungs- und Schreibanforderung von der CPU 1 gesendet wird, und ferner zum Ausgeben eines Besetzt-Detektierungssignals zu der CPU 1, das anzeigt, ob die RMWU 10 eine andere Leseaufforderung, Schreibaufforderung oder Lese-, Modifizierungs- und Schreibaufforderung von der CPU 1 akzeptieren kann.
  • In 1 (wie unten in 4) ist die Lese-, Modifizierungs- und Schreibanforderung nicht gezeigt als eine Eingabe von der RMWU-Steuerungseinheit 18, da die Modifizierungserfordernisse den Unterschied der Schreibinstruktion und der Lese-, Modifizierungs- und Schreibinstruktion aufweisen. Ferner, wenn die CPU 1 bewirkt, dass lediglich eine Leseanforderung bei der Ausführung einer Leseinstruktion aktiv ist, lediglich eine Schreibanforderung bei der Ausführung einer Schreibinstruktion aktiv ist, und sowohl die Leseanforderung als auch die Schreibanforderung bei der Ausführung der Lese-, Modifizierungs- und Schreibinstruktion aktiv ist, ist es nicht notwendig für die RMWU-Steuerungseinheit 18, die Lese-, Modifizierungs- und Schreibanforderung als eine Eingabe aufzuweisen. Folglich ist in 1 (4) die Lese-, Modifizierungs- und Schreibanforderung nicht als eine Eingabe der RMWU-Steuerungseinheit 18 gezeigt.
  • Als nächstes ist die RMWU 10 für deren Operation offenbart.
  • Der RMWU 10 werden von der CPU 1 eine Speicheradresse, Modifizierungserfordernisse, eine Leseanforderung, eine Schreibanforderung, eine Lese-, Modifizierungs- und Schreibanforderung, Schreibdaten, etc. zugeführt.
  • In Reaktion auf die Modifizierungserfordernisse und die Lese/Schreib/Lese-Modifizierungs-Schreib-Anforderungen, sendet die RMWU 10 die Buslesezyklus-, die Busschreibzyklus- oder die Dummy-Buszyklus-Instruktion zu der BIU zum Lesen-Modifizieren-Schreiben, Schreiben der Daten oder Lesen der Daten bei der Speicheradresse.
  • Im Detail sendet die RMWU 10 eine Instruktion zu der BIU 3 zum Starten des Buslesezyklus in Reaktion auf die Lese- oder die Lese-Modifizierungs-Schreib-Anforderung. Lesedaten werden von dem Speicher 2 gelesen und dann der RMWU 10 über den BIU 3 zugeführt. Die Lesedaten werden zu der CPU 1 direkt gesendet oder werden gesendet nach Modifizierung bei dem Modifizierungsoperations-Schaltkreis 15 der RMWU 10, was von dem Typ einer CPU-Instruktion abhängt, die die CPU 1 anfordert, um auf den Speicher 2 über die RMWU 10 zuzugreifen.
  • Zur Lese-Modifizierungs-Schreib-Bearbeitung instruiert die RMWU 10 die BIU 3 zum Starten des Buslesezyklus. Dann startet die BIU 3 den Buslesezyklus, liest Daten von dem Speicher 2 und sendet die ausgelesenen Daten zu der RMWU 10.
  • Der Modifizierungs-Voraussetzungs-Dekoder 13 der RMWU 10 erzeugt Modifizierungsdaten und ein Operationssteuerungssignal in Übereinstimmung mit den Modifizierungsvoraussetzungen. Der Modifizierungsoperations-Schaltkreis 15 führt eine Operation gemäß den Operationssteuerungssignalen zwischen den Lesedaten und den Modifizierungsdaten aus.
  • Das Operationsergebnis wird zu der BIU 13 über die Auswahleinrichtung 16 gesendet. Die RMWU 10 instruiert die BIU 13, den Buslesezyklus zu starten. Daher führt die RMWU 10 Lese-, Modifizierungs- und Schreibüberarbeitung im Auftrag der CPU durch.
  • Modifizierungsvoraussetzungen bestehen aus zwei Stücken von Information, so wie den Ort eines einzustellenden Bits und ein Biteinstellungsbefehl, wenn die Lese-, Modifizierungs- und Schreibinstruktion eine Biteinstellungsinstruktion ist.
  • Basierend auf dem Ort eines einzustellenden Bits erzeugt der Modifizierungs-Voraussetzungs-Dekoder 13 der RMWU 10 ein Bitmuster von "1" für den Ort eines einzustellenden Bits und "0" für die übrigen Bits. Der Dekoder 13 dekodiert ferner die Biteinstellungsinstruktion, um ein Operationssteuerungssignal zu erzeugen, das eine logische ODER-Operation anzeigt.
  • Der Modifizierungsoperations-Schaltkreis 15 führt ein logisches ODER zwischen den Lesedaten von der BIU und den Bitmustern aus. Das Operationsergebnis wird zu der BIU als Schreibdaten über die Auswahleinrichtung 16 gesendet. Die RMWU 10 instruiert die BIU 3, den Buslesezyklus zum Schreiben der Schreibdaten zu dem Speicher 2 zu starten. Die Speicheradresse für die Schreibdaten ist gewöhnlicher Weise die Adresse, die bei einem vorhergehenden Lesen des Speichers verwendet wird.
  • 2 zeigt eine Tabelle 1, die exemplarische Lese-Modifizierungs- und Schreibinstruktionen, Modifizierungsvoraussetzungen, Bitmuster und Typen von arithmetischen Operationen (im Fall eines 8-Bit-Speichers) auflistet.
  • Die oberen exemplarischen Modifizierungsvoraussetzungen enthalten den Ort eines Bits. Anstelle von diesen kann ein Bitmuster direkt zu der RMWU 10 zugeführt werden, was jedoch voraussetzt, dass die CPU 1 einen Bitmustererzeuger bzw. Bitmustergenerator enthält.
  • Es gibt Prozessoren, in denen Bit-Manipulationsinstruktionen logische Operationsinstruktionen sind, die zwischen einem Speicheroperanden und einem direkten Operanden arbeiten. Für solche Prozessoren bestehen Modifizierungsvoraussetzungen aus dem direkten Operanden und dem Typ der logischen Operation. Ein Bitmuster für solche Prozessoren ist ein direkter Operand selbst, da keine Bitmustergeneratoren bzw. Bitmustererzeuger benötigt werden für die RMWU 10 oder CPU 1.
  • Für die Schreibbearbeitung sendet die RMWU 10 Schreibdaten von der CPU 1 zu der BIU 3 über den Speicherschreibdaten-Puffer 17 und instruiert die BIU 3, den Buslesezyklus zu starten. Die BIU 3 startet dann den Busschreibzyklus, um die Schreibdaten in den Speicher 2 zu schreiben.
  • Für Lesebearbeitung instruiert die RMWU 10 die BIU 3, den Buslesezyklus zu starten. Die BIU 3 startet dann den Buslesezyklus, um Daten von dem Speicher 2 zu lesen. Die ausgelesenen Daten werden ohne Modifizierungen zurückgegeben zu der RMWU 10 und dann zu der CPU 1.
  • Es gibt verschiedene Wege und Arten von Zurückgeben der Auslesedaten bzw. Lesedaten ohne Modifizierungen, die wie folgt sind:
    • (1) die ausgelesenen Daten werden zu der CPU 1 nicht über die RMWU 10 sondern direkt von der BIU 3 zurückgegeben;
    • (2) die ausgelesenen Daten werden zu der CPU 1 nicht über den Modifizierungsoperations-Schaltkreis 15 sondern über den Lesedatenspeicher-Puffer 14 zurückgegeben; und
    • (3) die Modifizierungsdaten und ein Operationssteuerungssignal, das ein Operationsergebnis ausgibt, das identisch mit den Auslesedaten ist, werden erzeugt bei dem Modifizierungs-Voraussetzungs-Dekoder 13, und dann wird das Operationsergebnis zu der CPU 1 zurückgegeben von dem Modifizierungsoperations-Schaltkreis 15.
  • Die Kombination der Modifizierungsdaten und des Operationssteuerungssignals in Option (3) kann aus den Modifizierungsdaten von "0" bei jedem Bit und einem logischen ODER-Operationssteuerungssignal oder Modifizierungsdaten von "1" bei jedem Bit und logischen UND-Operationssteuerungssignal bestehen. Das in 1 gezeigte System verwendet die Option (3).
  • Es gibt Instruktionen, die in der CPU 1 vorinstalliert sind, so wie eine Bit-Testinstruktion zum Modifizieren von Auslesedaten von dem Speicher 2 und Zurückgeben der modifizierten Daten zu der CPU 1 ohne Schreiben der modifizierten Daten in den Speicher 2.
  • In diesem Fall instruiert die RMWU 10 die BIU 3 den Buslesezyklus zu starten. Die BIU 3 startet dann den Buslesezyklus, um Daten von dem Speicher 2 zu lesen und diese zu der RMWU 10 als Auslesedaten zurückzugeben.
  • Der Modifizierungs-Voraussetzungs-Dekoder 13 der RMWU 10 erzeugt Modifizierungsdaten und ein Operationssteuerungssignal aus den Modifizierungsvoraussetzungen. Der Modifizierungsoperations-Schaltkreis 15 wendet eine Operationsbearbeitung auf die Auslesedaten mit den Modifizierungsdaten unter dem Operationssteuerungssignal an, wobei die RMWU 10 das Operationsergebnis zu der CPU 1 zurückgibt.
  • 3 zeigt auch eine Tabelle 2, die exemplarische Lese-, Modifizierungs- und Schreibinstruktionen, Modifizierungsvoraussetzungen, Bitmuster und Typen von arithmetischen Operationen (für 8-Bitspeicher) zeigt. Ein Operationsergebnis, das unter Tabelle 2 in 3 erhalten wird, kann zurückgegeben werden zu der CPU 1 wie es ist. Oder es kann getestet werden, ob alle Bit des Operationsergebnisses "0" sind, und "0" wird zurückgegeben zu der CPU 1, wenn der Test positiv ist, wobei "1" zurückgegeben wird, wenn wenigstens ein Bit "1" ist.
  • 4 zeigt einen Prozessor gemäß einer zweiten Ausführungsform der vorliegenden Erfindung, eine Modifizierung der ersten Ausführungsform.
  • Die Eigenschaft der zweiten Ausführungsform ist, dass Schreibdaten und ein Stück von Information von Modifizierungsvoraussetzungen von einer CPU 1 übertragen werden zu einer RMWU 20 über die gleichen (gemeinsamen) Signalleitungen.
  • Diese Eigenschaft ist geeignet für eine Situation, in der die CPU 1 nicht simultan einen Lese-, Modifizierungs- und Schreibbefehl und einen Schreibbefehl ausgegeben hat, und daher benötigt die RMWU 20 nicht Modifizierungsdaten und Schreibdaten zur gleichen Zeit.
  • Die Modifizierungsdaten und Schreibdaten werden von der CPU 1 zu der RMWU 10 unter Verwendung der gemeinsamen Signalleitungen gesendet. Operationsbefehle in Modifizierungsvoraussetzungen, die von der CPU 1 gesendet werden, weisen einen Schreibbefehl für die Schreibinstruktionen auf. Wenn der Operationsbefehl ein Schreibbefehl ist, bekommt ein Modifizierungsvoraussetzungs-Puffer 12 der RMWU 20 die Daten, die auf den gemeinsamen Signalleitungen als die Schreibdaten gesendet werden; andernfalls bekommt diese die Daten als die Modifizierungsdaten. In dem Fall der Schreibdaten instruiert die RMWU 20 nicht die BIU 3, den Buslesezyklus zu starten, und Eingeben (von einem Lesedatenspeicher-Puffer 14) des Modifizierungsoperations-Schaltkreises 25 wird unterlassen, die Schreibdaten auf dem Modifizierungsvoraussetzungs-Puffer 12 werden (1) direkt zu einem Schreibdatenspeicher-Puffer 17 oder (2) über den Modifizierungsoperations-Schaltkreis 25 ohne jegliche Modifikationen gesendet, und dann werden die Schreibdaten auf dem Schreibdatenspeicher-Puffer 17 zu der BIU 3 gesendet.
  • Die RMWU 20 ist mit einem Speicheradressen-Puffer 11 zum Speichern von Speicheradressen bereitgestellt, die durch die CPU 1 zugeführt werden, und zum Ausgeben dieser zu der BIU 3; einem Modifizierungsvoraussetzungs-Puffer 12 zum Speichern von Modifizierungsvoraussetzungen, die aus dem Operationsbefehl und den Daten bestehen (die Modifizierungsdaten für Lese-, Modifizierungs- und Schreibinstruktionen oder die Schreibdaten für Schreibinstruktionen), die durch die CPU 1 bereitgestellt werden; einem Modifizierungs-Voraussetzungs-Dekoder 13 zum Dekodieren der Modifizierungsvoraussetzungen, um Modifizierungsdaten/Schreibdaten und das Operationssteuerungssignal zu erzeugen; einem Lesedatenspeicher-Puffer 14 zum Speichern der Lesedaten; einem Modifizierungsoperations-Schaltkreis 25 zum Durchführen zwischen den Lesedaten von dem Puffer 14 und den Modifizierungsdaten/Schreibdaten von dem Dekoder 13 unter den Operationssteuerungssignalen von dem Dekoder 13 zum Ausgeben der Lesedaten, der Schreibdaten oder Modifizierungsdaten; der Schreibdatenspeicher-Puffer 17 zum Speichern der Schreibdaten oder modifizierten Daten von dem Operations-Schaltkreis 25 als Schreibdaten oder der Schreibdaten von dem Schaltkreis 25 oder direkt von dem Dekoder 13 und dann Ausgeben der gespeicherten Schreibdaten zu der BIU 3; und einer RMWU-Steuerungseinheit 18 zum Ausgeben einer Leseanforderung oder Schreibanforderung von der CPU 1 zu der BIU 3 auch eines RMWU-Statussignals zu der CPU 1, den Status der RMWU 20 anzeigend.
  • Die Prozessoren in den ersten und zweiten Ausführungsformen, die in den 1 bzw. 4 gezeigt sind, führen beide verschiedene spezifische Operationen gemäß der vorliegenden Erfindung mit unterschiedlichen Architekturen aus.
  • Die spezifischen Operationen gemäß der vorliegenden Erfindung werden detailliert in dritten bis fünften Ausführungsformen offenbart, in denen die erste oder zweite Ausführungsform in Prozessorhardware verwendet wird.
  • Zuerst wird mit Bezug auf 5 Datenbearbeitung mit einem Prozessor einer dritten Ausführungsform gemäß der vorliegenden Erfindung offenbart.
  • 5 stellt Pipeline-Bearbeitung dar von 5-stufigen CPU 1 Instruktionen der Instruktion Abruf "F", Instruktion Dekodierung "D", Berechnungsausführung "E", Speicherzugriff (oder RMWU-Zugriff) "M" und Registerschreiben "W". Jede Stufe benötigt einen Maschinenzyklus. Der Prozessor in der dritten Ausführungsform, der unten offenbart ist, ist ein RISC-Typ. Oder es kann ein CISC-Typ sein.
  • In 5 ist die INSTRUKTION 2 eine Lese-, Modifizierungs- und Schreibinstruktion. Der Speicherzugriff "M" beinhaltet Speicherlesen "rd", Datenmodifizierung "mo" und Speicherschreiben "wr", wenn die RMWU 10 in der ersten Ausführungsform verwendet wird.
  • Die Lese-, Modifizierungs- und Schreibinstruktion wird durch die CPU 1 unter Pipeline-Bearbeitung ausgeführt. Wenn die Bearbeitung die Speicherzugriff "M" Stufe erreicht, empfängt die RMWU 10 eine Speicheradresse und Modifizierungsvoraussetzungen von der CPU 1.
  • Die CPU 1 komplettiert die Speicherzugriffsstufe in einem Maschinenzyklus und bewegt sich auf die nächste Registerschreibstufe zu, während die Instruktion, die der Lese-, Modifizierungs- und Schreibstufe, während die Instruktion, die der Lese-, Modifizierungs- und Schreibinstruktion folgt, bei der Speicherzugriffsstufe auftaucht.
  • Während dieser CPU-Bearbeitung sendet die RMWU 10 eine Anforderung eines Lesebuszyklus zu der BIU 3. Die Anforderung bzw. Anfrage wird bei der BIU 3 bereitgehalten, während die BIU 3 den Bus für die vorangehende Instruktion verwendet. Der Lesebuszyklus startet, wenn der Bus von der vorangehenden Instruktion befreit bzw. entlastet ist. Er kann direkt starten, wenn der Bus frei ist.
  • Die BIU 3 startet, den Speicher 2 bei der Speicheradresse auszulesen, die von der RMWU 10 empfangen wurde. Die BIU 3 sendet die ausgelesenen Daten von dem Speicher 2 zu der RMWU 10. Die BIU 3 suspendiert bzw. unterdrückt die Buszyklusanforderung einer anderen Einheit bis die RMWU 10 das Schreiben der modifizierten Daten in den Speicher 2 komplettiert.
  • Die RMWU 10 modifiziert die ausgelesenen Daten unter den Modifizierungsvoraussetzungen von der CPU 1 und instruiert die BIU 3, einen Speicherschreibbuszyklus mit den modifizierten Daten als Schreibdaten zu starten. Speicherschreiben wird gewöhnlicher Weise durchgeführt bei der Speicheradresse, die bereits beim Speicherlesen verwendet wurde. Die BIU 3 schreibt die Schreibdaten in den Speicher 2 und komplettiert die Lese-, Modifizierungs- und Schreiboperation.
  • Die CPU 1 führt Instruktionen aus, die der Lese-, Modifizierungs- und Schreibinstruktion in der Pipeline-Bearbeitung folgen, während die RMWU 10 und die BIU 3 fortfahren mit der Lese-, Modifizierungs- und Schreiboperation. Die Lese-, Modifizierungs- und Schreibinstruktion wird daher ausgeführt, als ob sie für einen Maschinenzyklus in dieser Pipeline-Bearbeitung läuft. Die vorliegende Erfindung erreicht daher eine Lese-, Modifizierungs- und Schreiboperation mit einer hohen Leistungsfähigkeit.
  • Als nächstes ist mit Bezug auf 6 Datenbearbeitung mit einem Prozessor in der vierten Ausführungsform gemäß der vorliegenden Erfindung offenbart. In 6 ist die Ausführung einer Lese-, Modifizierungs- und Schreibinstruktion zu einem langsamen Speicher dargestellt, der eine Zugriffszeit von 2 Maschinenzyklen benötigt.
  • In 6 ist INSTRUKTION 2 eine Lese-, Modifizierungs- und Schreibinstruktion. Die Instruktionen sind Instruktion Abruf "F", Instruktion Dekodieren "D", Berechnungsausführung "E", Speicherzugriff (oder RMWU-Zugriff) "M" und Registerschreiben "W". Der Speicherzugriff (M) beinhaltet Speicherlesen "rd", Modifizieren "mo" und Speicherschreiben "wr", wenn die RMWU 10 in der ersten Ausführungsform verwendet wird, wie in 5 gezeigt.
  • Ein Buslesezyklus und ein Busschreibzyklus, die zu der BIU 3 von der CPU 1 zu instruieren sind, benötigen jeweils 2 Maschinenzyklen. Nichtsdestotrotz führt die CPU 1 die nachfolgenden Instruktionen eine nach der anderen in der Pipeline-Bearbeitung aus, während die RMWU 10 den Lese- oder Schreibbuszyklus ausführt.
  • Mit anderen Worten führt die CPU 1 die Lese-, Modifizierungs- und Schreibinstruktion in einem Maschinenzyklus bei Pipeline-Bearbeitung für den Speicher 2 einer langsamen Zugriffszeit aus gemäß der vierten Ausführungsform. Diese hohe Leistungsfähigkeit bzw. Performance ist sehr beachtlich verglichen mit bekannten Prozessoren mit solch einem Speicher mit einer langsamen Zugriffszeit.
  • Die RMWU 10 mit einem FIFO (First-In-First-Out), der Speicheradressen und Modifizierungsvoraussetzungen von der CPU 1 speichert, ermöglicht aufeinander folgende Ausführung von Lese-, Modifizierungs- und Schreibinstruktionen (mehrere unterschiedliche Instruktionen können eingefügt sein), ohne die Pipeline-Bearbeitung zu blockieren. Die CPU 1 empfängt FIFO-Belegt/Bereit-Information als RMWU 10 Status, und wenn der FIFO belegt bzw. beschäftigt ist, blockiert die CPU 1 die Pipeline-Bearbeitung der Lese-, Modifizierungs- und Schreibinstruktionen, bis der FIFO bereit wird.
  • Nicht lediglich nur der Lese- und Schreibbuszyklus kann die RMWU 10 einen Schreibbuszyklus der BIU 3 zum Ausführen von Speicherschreibinstruktionen, so wie eine Speicherinstruktion, instruieren.
  • Die vorliegende Erfindung hat eine bekannte Schreib-Puffereinheit (WBU) zum lediglich Ausführen von Speicherschreibinstruktionen verbessert, so dass diese eine Sequenz von Speicherlesen, Modifizieren und Speicherschreiben, Schutzbuszyklen von Unterbrechung ausführen kann und Anpassungen zwischen der Sequenz und Instruktionsaufrufen und/oder Speicher – einem Speicher-Lese-Buszyklus mit der vorangehenden Speicherleseinstruktion durchführen kann. Dies sind auch Eigenschaften der vorliegenden Erfindung.
  • In der vorliegenden Erfindung wird auch eine RMWU 10 vorgeschlagen, die betriebsbereit ist für Funktionen, so wie eine Bit-Test-und-Einstellungs-Instruktion, zum Modifizieren der Speicherdaten (um "1" bei bestimmten Bits einzustellen), während Lesedaten zu der CPU 1 zurückgegeben werden.
  • Beim Empfangen von Lesedaten von der BIU 3 kann die RMWU 10 die Lesedaten zu der CPU 1 wie sie sind zurückgeben oder diese zum Testen vor dem Zurückgeben modifizieren. Wenn beispielsweise Lesedaten "10110010" sind und eine Bitposition zum Testen und Einstellen 6 ist, wird "10110010" wie es ist zurückgegeben, in dem Fall, wo die RMWU 10 Lesedaten zu der CPU 1 wie sie sind zurückgibt. Andererseits, in dem Fall, wo die RMWU 10 die Daten zum Testen modifiziert, führt die RMWU 10 ein logisches AND bzw. UND zwischen den Lesedaten und "0100000" aus (ein sofortiger Wert, bei dem lediglich Bit 6 auf 1 gesetzt ist), um "00000000" oder "0" zurückzugeben, die einen Inhalt aufweisen, von dem ein Ort des Bits 6 0 ist. Die CPU 1 schreibt die Daten, die von der RMWU 10 zurückgegeben wurden, in ein vorbestimmtes Register bei einer Registerschreibstufe, um die Bit-Test- und Einstellungsinstruktion zu komplettieren.
  • Die oben offenbarte RMWU 10 oder 20 in der vorliegenden Erfindung ist daher fähig eine Lese-, Modifizierungs- und Schreibinstruktion in einem Maschinenzyklus durchzuführen. Die vorliegende Erfindung erreicht daher eine hohe Leistungsfähigkeit bei Prozessor eingebetteter Ausstattung, die die RMWU 10 oder 20 beinhaltet.
  • Als nächstes werden mit Bezug auf die 7 bis 10 Prozessoren von fünften bis siebten Ausführungsformen offenbart, die die RMWU 10 oder 20 jeweils enthalten, die Modifizierungen zu der dritten oder vierten Ausführungsform sind.
  • In 7 sind Operationen der Prozessoren in sowohl der fünften als auch der sechsten Ausführungsform dargestellt. Die Prozessoren führen eine Lese-, Modifizierungs- und Schreibinstruktion der drei Operationen (Lesen, Modifizieren und Schreiben) bei einer Speicherzugriffsstufe in 3 Maschinenzyklen aus, während dieser Instruktion folgende Instruktionen vor der Speicherzugriffsstufe blockiert wurden.
  • Die Lese-, Modifizierungs- und Schreibinstruktion in diesen Ausführungsformen benötigt 3 Maschinenzyklen für die Ausführungszeit, was daher fast keine Verbesserungen bei der Ausführungszeit in 7 verglichen mit bekannten Prozessoren darstellt.
  • Nichtsdestotrotz müssen die fünfte und sechste Ausführungsformen nicht immer notwendiger Weise einen Maschinenzyklus für eine Modifizierungsoperation benötigen, wie in den 8 bzw. 9 gezeigt. Diese ist so, da Lese-, Modifizierungs- und Schreiboperationen bei einer Speicherzugriffsstufe in diesen Ausführungsformen durchgeführt werden, wobei ohne Pipeline-Stufenrückgabe andererseits mehr als ein Maschinenzyklus wie der dritte bekannte Prozessor in 20 benötigen könnte.
  • Im Detail wird Modifizierung durchgeführt mit Speicherlesen bei einer Ms-Stufe in der fünften Ausführungsform, die in 8 gezeigt ist, oder es wird mit Speicherlesen bei einer M-Stufe in der sechsten Ausführungsform durchgeführt, die in 9 gezeigt ist.
  • Die fünfte und sechste Ausführungsformen verkürzen daher die Ausführungszeit um einen Maschinenzyklus von 3 auf 2 Maschinenzyklen für die INSTRUKTION 2.
  • Die Modifizierungsoperation mit Speicherlesen bei der Ms-Stufe in dem Prozessor der fünften Ausführungsform benötigt einen Modifizierungsdatenerzeuger (Modifizierungs-Voraussetzungs-Dekoder 13) und einen Modifizierungsoperations-Schaltkreis (15 oder 25) wie die RMWU 10 oder 20 in der ersten oder zweiten Ausführungsform zwischen der CPU 1 und der BIU 3.
  • Unter einer Lese-, Modifizierungs- und Schreibinstruktion werden Lesedaten von der BIU 3 in Übereinstimmung mit Modifizierungsvoraussetzungen von der CPU 1 modifiziert. Lesedaten werden jedoch zu der CPU 1 ohne Modifizierungen unter einer einfachen Leseinstruktion zurückgegeben (d. h. einer Ladeinstruktion).
  • In 8 ist INSTRUKTION 2 eine Lese-, Modifizierungs- und Schreibinstruktion mit Instruktion Abruf "F", Instruktion Dekodieren "D", Berechnungsausführung "E", Blockieren "Ms" (Lesen und Modifizieren werden bei Speicherzugriffsstufe ausgeführt), Speicherzugriff "M" und Registerschreiben "W". Die Instruktionen 3 und 4 weisen Blockieren bei der Instruktions-Dekodierungsstufe "Ds" bzw. Blockieren bei der Ausführungsstufe "Es" auf.
  • Andererseits sind in dem Prozessor der sechsten Ausführungsform, wie in 9 gezeigt, in einem Fall der Schreiboperation ein Modifizierungsdatenerzeuger (Modifizierungs-Voraussetzungs-Dekoder 13) und ein Modifizierungsoperations-Schaltkreis (15 oder 25) bereitgestellt zwischen der CPU 1 und der BIU 3 auf die gleiche Art und Weise wie die RMWU 10 oder 20 in der ersten oder zweiten Ausführungsform. Unter einer Lese-, Modifizierungs- und Schreibinstruktion werden Schreibdaten von der CPU 1 modifiziert in Übereinstimmung mit den Modifizierungsvoraussetzungen auch von der CPU 1. Lesedaten in einem Lesebuszyklus bzw. Buslesezyklus, der einem Schreibbuszyklus vorangeht, werden zu der CPU 1 zurückgegeben, ohne über den oberen Modifizierungs-Schaltkreis in der sechsten Ausführungsform zu laufen.
  • In 9 ist eine Ausführung von Instruktionen in dem Prozessor der sechsten Ausführungsform dargestellt. INSTRUKTION 2 ist die Lese-, Modifizierungs- und Schreibinstruktion mit einer Instruktion Abruf "F", Instruktion Dekodieren "D", Berechnungsausführung "E", Blockieren bei Speicherzugriffsstufe "Ms" (Lesen ausgeführt bei der Speicherzugriffsstufe), Modifizieren "Mm" und Registerschreiben "W". Instruktionen 3 und 4 weisen Blockieren bei der Ausführungsstufe "Es" bzw. Blockieren bei der Instruktions-Dekodierungsstufe "Ds" auf.
  • Im Fall der Lese-, Modifizierungs- und Schreiboperation zu einem Speicher mit einer langsamen Zugriffszeit wird die Lese-, Modifizierungs- und Schreibinstruktion kontinuierlich bei der Speicherzugriffsstufe "M" blockiert. Nichtsdestotrotz verkürzt die sechste Ausführungsform den Maschinenzyklus um Eins verglichen mit den bekannten Prozessoren aufgrund keiner Modifizierungen.
  • Darüber hinaus maskiert der Prozessor der sechsten Ausführungsform mit einer nicht blockierenden Last zum Ausführen von nachfolgenden Instruktionen (nicht zugreifbar auf den Speicher bei Stufe "M") ohne Blockierungen im Lesezyklus einer Wartezeit für die Lese-, Modifizierungs- und Schreibinstruktion im Buslesezyklus für einen Speicher mit einer langsamen Zugriffszeit. Daher erreicht die sechste Ausführungsform eine Ausführung von Instruktionen mit fast der Hälfte der Ausführungszeit wie bei bekannten Prozessoren.
  • In 10 ist die Ausführung von Instruktionen in dem Prozessor der siebten Ausführungsform dargestellt.
  • Obwohl nicht dargestellt ist der Prozessor der siebten Ausführungsform mit einer Modifizierungsschreibeinheit (die im Folgenden als MWU abgekürzt wird) zwischen der CPU 1 und der BIU 3 ausgestattet. Die MWU entspricht der RMWU 10 oder 20 in der ersten oder zweiten Ausführungsform, weist aber keine Lesefunktionen auf.
  • Die siebte Ausführungsform führt Lesen des Speichers und Schreiben zu MWU in 2 Maschinenzyklen bei einer Speicherzugriffsstufe aus, wodurch eine höhere Bearbeitungsgeschwindigkeit als bei bekannten Prozessoren erreicht wird.
  • Für Speicher mit einer langsamen Zugriffszeit wird die Stufe "M" einer Lese-, Modifizierungs- und Schreibinstruktion blockiert bis das Lesen komplettiert ist. Andererseits wird diese nicht blockiert, während Speicheradressen und Modifizierungsvoraussetzungen in den FIFO der MWU geschrieben werden, wenn der FIFO nicht voll ist. Sie wird aber blockiert, wenn der FIFO voll ist.
  • Die siebte Ausführungsform erreicht auch 2 Maschinenzyklen-Instruktionsausführungen für Speicher einer langsamen Zugriffszeit mit der nicht blockierenden Last, die oben beschrieben wurde, zum Maskieren einer Wartezeit, die durch einen Buslesezyklus verursacht wird.
  • Wie oben offenbart wurde, erreichen die erste bis siebte Ausführungsformen eine merklich hohe Systemperformance mit einer verkürzten Ausführungszeit für Lese-, Modifizierungs- und Schreibinstruktionen, die oft im eingebetteten Steuersystemmarkt verwendet werden.
  • Als nächstes sind mit Bezug auf die 11 bis 25 achte bis einundzwanzigste Ausführungsformen gemäß der vorliegenden Erfindung offenbart, die auf den vorangehenden Ausführungsformen basieren.
  • Elemente, die in den 11 bis 25 gezeigt sind, die die gleichen oder ähnliche Elemente sind, die in den 1 bis 10 gezeigt sind, werden durch die gleichen Bezugszeichen gekennzeichnet.
    • (1) Wie in den 11 und 12 gezeigt, enthält ein System, das eine Lese-, Modifizierungs- und Schreibeinheit 10A (101) gemäß der achten Ausführungsform der vorliegenden Erfindung aufweist, eine CPU 1 zum Dekodieren und Ausführen verschiedener Instruktionen; einen Speicher 2 zum Speichern gegebener Daten; und eine BIU, die zwischen der CPU 1 und dem Speicher 2 eingefügt ist, zum Starten eines Buslesezyklus, eines Schreibbuszyklus oder eines Dummy-Buszyklus, der sich von den Lese- und Schreibbuszyklen unterscheidet, zum Lesen von Daten von oder Schreiben von Daten zu dem Speicher 2. Das System 30 ist ferner bereitgestellt, zwischen der CPU 1 und der BIU 3, mit einem Modifizierungsvoraussetzungs-Puffer 12 zum Speichern von Modifizierungsvoraussetzungen, die von der CPU 1 bereitgestellt werden; einen Lesedatenspeicher-Puffer 14 zum Speichern von Lesedaten, die von der BIU 3 ausgegeben werden; einen Modifizierungsoperations-Schaltkreis 15 zum Anwenden einer Operationsbearbeitung auf die Lesedaten von dem Puffer 14 mit den Modifizierungsdaten von dem Puffer 12 unter einem Operationssteuerungssignal auch von dem Puffer 12 zum Ausgeben der resultierenden modifizierten Daten zu der BIU 3 als Schreibdaten.
    • (2) Wie in den 11 und 13 gezeigt, enthält ein System 30, das eine Lese-, Modifizierungs- und Schreibeinheit 10A (102) gemäß der neunten Ausführungsform der vorliegenden Erfindung aufweist, eine CPU 1 zum Dekodieren und Ausführen verschiedener Instruktionen; einen Speicher 2 zum Speichern gegebener Daten; und eine BIU 3, die zwischen der CPU 1 und dem Speicher 2 eingefügt ist, zum Starten eines Buslesezyklus, eines Schreibbuszyklus oder eines Dummy-Buszyklus, der sich von den Lese- und Schreibbuszyklen unterscheidet, zum Lesen von Daten von oder Schreiben von Daten zu dem Speicher 2. Das System 30 ist ferner bereitgestellt, zwischen der CPU 1 und dem BIU 3, mit einem Modifizierungsvoraussetzungs-Puffer 12 zum Speichern von Modifizierungsvoraussetzungen, die durch die CPU 1 bereitgestellt werden; einen Modifizierungsoperations-Schaltkreis 15 zum Anwenden einer Operationsbearbeitung auf die Lesedaten, die von der BIU 3 ausgegeben werden, mit den Modifizierungsdaten von dem Puffer 12 unter einem Operationssteuerungssignal von dem Puffer 12; und einen Schreibdatenspeicher-Puffer 12 zum Speichern von modifizierten Daten von dem Operations-Schaltkreis 15 als Schreibdaten und Ausgeben der Daten zu der BIU 3.
    • (3) Wie in 11 und auch in 14 oder 15 gezeigt, kann ein System 30, das eine Lese-, Modifizierungs- und Schreibeinheit 103A oder 103B basierend auf dem System (1) oder (2) gemäß der zehnten oder elften Ausführungsform der vorliegenden Erfindung umfasst, auch einen Modifizierungs-Voraussetzungs-Dekoder 13 zwischen einem Modifizierungsvoraussetzungs-Puffer 12 zum Speichern von Modifizierungsvoraussetzung aufweisen, die von der CPU 1 ausgegeben wird (in der die Modifizierungsvoraussetzungen erhalten werden durch Kodieren der Modifizierungsdaten und des Operationssteuerungssignals), und dem Modifizierungsoperations-Schaltkreis 15. Der Modifizierungsvoraussetzungs-Dekoder 13 dekodiert die Modifizierungsvoraussetzungen in Modifizierungsdaten und ein Operationssteuerungssignal.
    • (4) Wie in den 11 und 16 gezeigt, kann ein System gemäß der zwölften Ausführungsform der vorliegenden Erfindung, das auf dem System (1) oder (3) basiert, einen Schreibdatenspeicher-Puffer 12 zum Speichern von Schreibdaten von der CPU 1 und eine Datenauswahleinrichtung 16 zum Auswählen entweder der Schreibdaten von dem Puffer 12 oder der modifizierten Daten von dem Modifizierungsoperations-Schaltkreis 15 aufweisen.
    • (5) Wie in den 11 und 17 gezeigt, kann ein System gemäß der dreizehnten Ausführungsform der vorliegenden Erfindung, das auf dem System (1) oder (3) basiert, anstelle des Lesedatenspeicher-Puffers 14 eine Datenauswahleinrichtung 16 zum Auswählen entweder der Schreibdaten von der CPU 1 oder der Lesedaten, die von dem Speicher 2 über die BIU 3 gelesen werden, und einen Datenpuffer 14 zum Speichern der ausgewählten Daten von der Auswahleinrichtung 16 aufweisen und die gespeicherten Daten in dem Datenpuffer 4 zu dem Modifizierungsoperations-Schaltkreis 15 zu führen.
    • (6) Wie in den 11 und 18 gezeigt, kann ein System gemäß der vierzehnten Ausführungsform der vorliegenden Erfindung, das auf dem System (2) oder (3) basiert, eine Datenauswahleinrichtung 16 zum Auswählen entweder der Schreibdaten von der CPU 1 oder der modifizierten Daten von dem Modifizierungsoperations-Schaltkreis 15 zum Ausgeben der ausgewählten Daten zu dem Schreibdatenspeicher-Puffer 17 umfassen.
    • (7) Wie in jeder Kombination der 11 und 13, 11 und 14, 11 und 15, oder 11 und 19 gezeigt, kann ein System gemäß der fünfzehnten Ausführungsform der vorliegenden Erfindung, das auf dem System (2) oder (3) basiert, eine Datenauswahleinrichtung 16 zum Auswählen entweder der Schreibdaten von der CPU 1 oder der Lesedaten, die von dem Speicher 2 über die BIU 3 gelesen werden, umfassen, und zum Ausgeben der ausgewählten Daten zu dem Modifizierungsoperations-Schaltkreis 15.
    • (8) Wie in den 11 und 20 gezeigt, kann ein System gemäß der sechzehnten Ausführungsform der vorliegenden Erfindung, das auf dem System (1), (2) oder (3) basiert, eine Datenauswahleinrichtung zum Auswählen entweder der Schreibdaten von der CPU 1 oder der Modifizierungsdaten von dem Modifizierungsvoraussetzungs-Puffer 12 und zum Ausgeben der ausgewählten Daten zu dem Modifizierungsoperations-Schaltkreis 15 umfassen.
    • (9) Wie in den 11 bis 21 gezeigt, kann ein System gemäß der siebzehnten Ausführungsform der vorliegenden Erfindung, das auf irgendeinem der Systeme (1) bis (8) basiert, eine Funktion zum Ausgeben der modifizierten Daten von dem Modifizierungsinformations-Schaltkreis 15 zu der CPU 1 umfassen.
    • (10) Wie in den 11 bis 22 gezeigt, kann ein System gemäß der achtzehnten Ausführungsform der vorliegenden Erfindung, das auf irgendeinem der Systeme (1) bis (9) basiert, einen Speicheradressen-Puffer 31 zum Speichern der Speicheradressen von der CPU 1 und zum Ausgeben dieser zu der BIU 3 umfassen.
    • (11) Wie in den 11 bis 23 gezeigt, kann ein System gemäß der neunzehnten Ausführungsform der vorliegenden Erfindung, das auf irgendeinem der Systeme (1) bis (10) basiert, eine Steuerungseinheit 32 zum Empfangen der Leseanforderung, der Schreibanforderung oder der Lese-, Modifizierungs- und Schreibanforderung von der CPU 1, und bei Empfangen der Lese-, Modifizierungs- und Schreibanforderung Ausgeben eines Steuerungssignals, das einen Lese-, einen Schreib- oder einen Dummy-Buszyklus zu der BIU 3 befördert, umfassen. Die Steuerungseinheit 32 steuert eine Reihe von Bearbeitungen von einem Buslesezyklus bis zu einem Schreibbuszyklus ohne eine Unterbrechung während einer Lese-, Modifizierungs- und Schreibanforderung.
    • (12) Wie in den 11 bis 24 gezeigt, kann in einem System gemäß der zwanzigsten Ausführungsform der vorliegenden Erfindung, das auf dem System (11) basiert, die Steuerungseinheit 32 einen Detektor 33 zum Detektieren eines Besetzt-Zustandes, in dem die Steuerungseinheit 32 keine neue Lese-, Schreib- und Lese-Modifizierung- und Schreibanforderungen von der CPU 1 akzeptieren kann, und zum Ausgeben eines detektierten Ergebnisses (eines Besetzt-Detektierungssignals) zu der CPU 1, umfassen.
    • (13) Wie in den 11 bis 25 gezeigt, kann ein System gemäß der einundzwanzigsten Ausführungsform der vorliegenden Erfindung, das auf irgendeinem der Systeme (1) bis (12) basiert, eine Funktion zum Ausgeben der Lesedaten von der BIU 3 zu der CPU 1 umfassen.
  • Wie detailliert offenbart wurde, stellt die vorliegende Erfindung Prozessoren mit eingebauten Lese-, Modifizierungs- und Schreibeinheiten bereit zum Ausführen von CPU-Instruktionen, die der Lese-, Modifizierungs- und Schreibbearbeitung folgen aber parallel mit dieser Bearbeitung ausgeführt werden.
  • Daher erreicht die vorliegende Erfindung einen hohen Durchsatz und verkürzt die Ausführungszeit für Lese-, Modifizierungs- und Schreibinstruktionen.
  • Insbesondere, basierend auf der grundlegenden Idee in der vorliegenden Erfindung, ist es möglich, jede Lese-, Modifizierungs- und Schreibinstruktion in einem Maschinenzyklus wie andere Instruktionen auszuführen.

Claims (24)

  1. Ein Datenbearbeitungssystem, umfassend: eine zentrale Bearbeitungseinheit CPU (1) zum Decodieren und Ausführen von gegebenen Instruktionen; einen Speicher (2) zum Speichern gegebener Daten; eine Busschnittstelleneinheit BIU (3), die zwischen der zentralen Bearbeitungseinheit (1) und dem Speicher (2) bereitgestellt ist, um einen Buslesezyklus zum Lesen von Daten von dem Speicher (2), einen Busschreibzyklus zum Schreiben von Daten in den Speicher (2) oder eines Dummy-Buszyklus, der sich von den Lese- und Schreibzyklen unterscheidet, zu starten; und eine Lese-, Modifizierungs- und Schreibeinheit RMW (10; 20), die zwischen der zentralen Bearbeitungseinheit und dem Speicher bereitgestellt ist dadurch gekennzeichnet, dass die RMW-Einheit (10; 20) zwischen der zentralen Bearbeitungseinheit und der BIU (3) bereitgestellt ist, wobei die RMW-Einehit (10; 20) die BIU (3) steuert und daher fähig ist, RMW-Bearbeitung an Stelle der CPU (1) auszuführen; die RMW-Einheit (10; 20) einen Modifizierungsvoraussetzungspuffer (12) enthält zum Speichern von Modifizierungsvoraussetzungen, die zusammengesetzt sind aus Modifizierungsdaten, die von der CPU (1) ausgegeben werden, und einem Betriebssteuerungssignal; und einen Modifizierungsoperationsschaltkreis (15; 25) zum Anwenden einer Betriebsbearbeitung auf Lesedaten, die von der BIU (3) ausgegeben werden, mit den Modifizierungsdaten, die von dem Modifizierungsvoraussetzungspuffer (12) ausgegeben werden, unter dem Betriebssteuerungssignal, um ein Operationsergebnis zu der BIU (3) als Schreibdaten auszugeben; die RMW-Einheit (10; 20) das Operationsteuerungssignal umfasst, das Teil der Modifizierungsvoraussetzungen zusammen mit den Modifizierungsdaten ist, wobei die Modifizierungsvoraussetzungen von der CPU (1) ausgegeben und in dem Modifizierungsvoraussetzungspuffer (12) gespeichert werden; anschließend wird eine Operationsbearbeitung auf Lesedaten angewendet mit Modifizierungsausgabedaten unter dem Operationssteuerungssignal zum Ausgeben eines Operationsergebnis; die RMW-Einheit (10; 20) die BIU (3) steuert und daher fähig ist, RMW-Bearbeitung an Stelle der CPU (1) durchzuführen, und folgende Instruktionen nach der RMW-Instruktion könnten während RMW-Bearbeitung ausgeführt werden.
  2. Das Datenbearbeitungssystem nach Anspruch 1, wobei die Lese-, Modifizierungs- und Schreibeinheit (10; 20) ferner einen Lesedatenspeicherpuffer (14) zum Speichern der Lesedaten umfasst, die von der Busschnittstelleneinheit (3) ausgegeben werden, wobei der Modifizierungsoperationsschaltkreis (15; 25) die Operationsbearbeitung auf die Lesedaten anwendet, die von dem Lesedatenspeicherpuffer (14) mit den Modifizierungsdaten von dem Modifizierungsvoraussetzungspuffer (12) ausgegeben werden.
  3. Das Datenbearbeitungssystem nach Anspruch 2, wobei die zentrale Bearbeitungseinheit (1) Modifizierungsvoraussetzungen ausgibt, die erhalten werden durch Codieren der Modifizierungsdaten und des Operationssteuerungssignals, wobei die Lese-, Modifizierungs- und Schreibeinheit (10; 20) ferner einen Modifizierungsvoraussetzungsdecoder (13) umfasst, der zwischen dem Modifizierungsvoraussetzungspuffer (13) zum Speichern der ausgegebenen Modifizierungsvoraussetzungen und dem Modifizierungsoperationsschaltkreis (15; 25) bereitgestellt ist, um die ausgegebenen Modifizierungsvoraussetzungen in Modifizierungsdaten und ein Operationssteuerungssignal zu decodieren.
  4. Das Datenbearbeitungssystem nach Anspruch 2, wobei die Lese-, Modifizierungs- und Schreibeinheit (10) ferner umfasst: einen Schreibdatenspeicherpuffer (17) zum Speichern von Schreibdaten, die durch die zentrale Bearbeitungseinheit (1) zugeführt werden; und eine Auswahlvorrichtung (16) zum Auswählen der Schreibdaten, die von dem Schreibdatenspeicherpuffer (17) ausgegeben werden, oder der modifizierten Daten, die das Operationsergebnis sind, das von dem Modifizierungsoperationsschaltkreis (15) ausgegeben wird, und zum Ausgeben der ausgewählten Daten zu der Busschnittstelleneinheit (3).
  5. Das Datenbearbeitungssystem nach Anspruch 4, wobei die modifizierten Daten, die von dem Modifizierungsoperationsschaltkreis (15) der Lese-, Modifizierungs- und Schreibeinheit (10) ausgegeben werden, zu der zentralen Bearbeitungseinheit (1) ausgegeben werden.
  6. Das Datenbearbeitungssystem nach Anspruch 2, wobei die Lese-, Modifizierungs- und Schreibeinheit (10; 20) ferner umfasst: eine Datenauswahlvorrichtung (16) zum Auswählen entweder der Schreibdaten, die durch die zentrale Bearbeitungseinheit (1) zugeführt werden, oder der Lesedaten, die von dem Speicher (2) über die Busschnittstelleneinheit (3) gelesen werden; und einen Datenpuffer (14) zum Speichern von Daten, die von der Datenauswahlvorrichtung (16) ausgegeben werden, und Zuführen der gespeicherten Daten zu dem Modifizierungsoperationsschaltkreis (15).
  7. Das Datenbearbeitungssystem nach Anspruch 2, wobei die Lese-, Modifizierungs- und Schreibeinheit (10; 20) ferner eine Datenauswahlvorrichtung (16) umfasst zum Auswählen entweder von Schreibdaten, die durch die zentrale Bearbeitungseinheit (1) zugeführt werden, oder von Modifizierungsdaten, die von dem Modifizierungsvoraussetzungspuffer (13) ausgegeben werden, und zum Ausgeben der ausgewählten Daten zu dem Modifizierungsoperationsschaltkreis (15).
  8. Das Datenbearbeitungssystem nach Anspruch 2, wobei die Lese-, Modifizierungs- und Schreibeinheit (10; 20) ferner einen Speicheradressenpuffer (11) umfasst zum Speichern einer Speicheradresse, die von der zentralen Bearbeitungseinheit (1) ausgegeben wird, und zum Ausgeben der gespeicherten Speicheradresse zu der Busschnittstelleneinheit (3).
  9. Das Datenbearbeitungssystem nach Anspruch 2, wobei die Lese-, Modifizierungs- und Schreibeinheit (10; 20) ferner eine Steuereinheit (18) umfasst zum Empfangen einer Leseanforderung, einer Schreibanforderung oder einer Lese-, Modifizierungs- und Schreibanforderung, die von der zentralen Bearbeitungseinheit (1) ausgegeben werden, und zum Ausgeben eines Steuersignals zum Anfordern des Buslesezyklus, des Busschreibzyklus oder des Dummy-Buszyklus zu der Busschnittstelleneinheit (3) in Reaktion auf die Lese-, Modifizierungs- und Schreibanforderung, um Unterbrechung in einer Serie von Bearbeitung von Lesen zu Schreiben zu vermeiden.
  10. Das Datenbearbeitungssystem nach Anspruch 9, wobei die Steuereinheit (18) einen Detektor zum Detektieren eines Besetzt-Zustandes zu detektieren, in dem die Steuereinheit (18) keine neuen Lese-, Schreib- oder Lese-, Modifizierungs- und Schreibanforderungen von der zentralen Bearbeitungseinheit (1) akzeptieren kann, und zum Ausgeben eines Besetzt-Detektierungssignals, das ein detektiertes Ergebnis trägt.
  11. Das Datenbearbeitungssystem nach Anspruch 10, wobei die Lesedaten, die von der Busschnittstelleneinheit (3) ausgegeben werden, zu der zentralen Bearbeitungseinheit (1) ausgegeben werden.
  12. Das Datenbearbeitungssystem nach Anspruch 1, wobei der Modifizierungsoperationsschaltkreis (15; 25) die Operationsbearbeitung zwischen den Lesedaten, die von dem Speicher (2) über die Busschnittstelleneinheit (3) gelesen werden, und den Modifizierungsdaten, die von dem Modifizierungsvoraussetzungspuffer (12) ausgegeben werden, anwendet unter dem Operationssteuerungssignal, das auch von dem Modifizierungsvoraussetzungspuffer (12) ausgegeben wird, wobei die Lese-, Modifizierungs- und Schreibeinheit (10; 20) ferner einen Schreibdatenspeicherpuffer (17) umfasst zum Speichern von Schreibdaten, die das Operationsergebnis sind, die von dem Modifizierungsoperationsschaltkreis (15; 25) ausgegeben werden, und zum Ausgeben der Schreibdaten zu der Busschnittstelleneinheit (3).
  13. Das Datenbearbeitungssystem nach Anspruch 12, wobei die zentrale Bearbeitungseinheit (1) Modifizierungsvoraussetzungen ausgibt, die erhalten werden durch Codieren der Modifizierungsdaten und des Operationssteuerungssignals, wobei die Lese-, Modifizierungs- und Schreibeinheit ferner einen Modifizierungsvoraussetzungsdecoder (13) umfasst, der zwischen dem Modifizierungsvoraussetzungspuffer (12) zum Speichern der ausgegebenen Modifizierungsvoraussetzungen und dem Modifizierungsoperationsschaltkreis (15) bereitgestellt ist, wobei der Modifizierungsvoraussetzungsdecoder (13) die ausgegebene Modifizierungsvoraussetzung in Modifizierungsdaten und ein Operationssteuerungssignal decodiert.
  14. Das Datenbearbeitungssystem nach Anspruch 13, wobei die Lese-, Modifizierungs- und Schreibeinheit (10; 20) ferner umfasst: einen Schreibdatenspeicherpuffer (17) zum Speichern von Schreibdaten, die von der zentralen Bearbeitungseinheit (1) zugeführt werden; und eine Auswahlvorrichtung (16) zum Auswählen entweder der Schreibdaten, die von dem Schreibdatenspeicherpuffer (17) ausgegeben werden, oder der modifizierten Daten, die das Operationsergebnis sind, die von dem Modifizierungsoperationsschaltkreis (15; 25) ausgegeben werden, wobei die ausgewählten Daten als Schreibdaten zu der Busschnittstelleneinheit (3) ausgegeben werden.
  15. Das Datenbearbeitungssystem nach Anspruch 14, wobei die modifizierten Daten, die von dem Modifizierungsoperationsschaltkreis (15; 25) der Lese-, Modifizierungs- und Schreibeinheit (10; 20) ausgegeben werden, zu der zentralen Bearbeitungseinheit (1) ausgegeben werden.
  16. Das Datenbearbeitungssystem nach Anspruch 13, wobei die Lese-, Modifizierungs- und Schreibeinheit (10; 20) ferner umfasst: eine Datenauswahlvorrichtung (16) zum Auswählen entweder der Schreibdaten, die durch die zentrale Bearbeitungseinheit (1) zugeführt werden, oder der Lesedaten, die von dem Speicher (2) über die Busschnittstelleneinheit (3) gelesen werden; und einen Datenpuffer (14) zum Speichern von Daten, die von der Datenauswahlvorrichtung (16) ausgegeben werden, und Zuführen der gespeicherten Daten zu dem Modifizierungsoperationsschaltkreis (15).
  17. Das Datenbearbeitungssystem nach Anspruch 12, wobei die Lese-, Modifizierungs- und Schreibeinheit (10; 20) ferner eine Datenauswahlvorrichtung (16) umfasst zum Auswählen entweder von Schreibdaten, die durch die zentrale Bearbeitungseinheit (1) zugeführt werden, oder von modifizierten Daten, die von dem Modifizierungsoperationsschaltkreis (15) ausgegeben werden, und zum Ausgeben der ausgewählten Daten zu dem Schreibdatenspeicherpuffer (14).
  18. Das Datenbearbeitungssystem nach Anspruch 12, wobei die Lese-, Modifizierungs- und Schreibeinheit (10; 20) ferner eine Datenauswahlvorrichtung (16) umfasst zum Auswählen entweder von Schreibdaten, die durch die zentrale Bearbeitungseinheit (1) zugeführt werden, oder von Lesedaten, die von dem Speicher (2) über die Busschnittstelleneinheit (3) gelesen werden, und zum Ausgeben der ausgewählten Daten zu dem Modifizierungsoperationsschaltkreis (15).
  19. Das Datenbearbeitungssystem nach Anspruch 12, wobei die Lese-, Modifizierungs- und Schreibeinheit (10; 20) ferner eine Datenauswahlvorrichtung (16) umfasst zum Auswählen entweder von Schreibdaten, die durch die zentrale Bearbeitungseinheit (1) zugeführt werden, oder von Modifizierungsdaten, die von dem Modifizierungsvoraussetzungspuffer (12) ausgegeben werden, und zum Ausgeben der ausgewählten Daten zu dem Modifizierungsoperationsschaltkreis (15).
  20. Das Datenbearbeitungssystem nach Anspruch 12, wobei die Lese-, Modifizierungs- und Schreibeinheit (10; 20) ferner einen Speicheradressenpuffer (11) umfasst zum Speichern einer Speicheradresse, die von der zentralen Bearbeitungseinheit (1) ausgegeben wird, und zum Ausgeben der gespeicherten Speicheradresse zu der Busschnittstelleneinheit (3).
  21. Das Datenbearbeitungssystem nach Anspruch 12, wobei die Lese-, Modifizierungs- und Schreibeinheit (10; 20) ferner eine Steuereinheit (18) umfasst zum Empfangen einer Leseanforderung, einer Schreibanforderung oder einer Lese-, Modifizierungs- und Schreibanforderung, die von der zentralen Bearbeitungseinheit (1) ausgegeben werden, und zum Ausgeben eines Steuersignals zum Anfordern des Buslesezyklus, des Busschreibzyklus oder des Dummy-Buszyklus zu der Busschnittstelleneinheit (3) in Reaktion auf die Lese-, Modifizierungs- und Schreibanforderung, um Unterbrechung in einer Serie von Bearbeitung von Lesen zu Schreiben zu vermeiden.
  22. Das Datenbearbeitungssystem nach Anspruch 21, wobei die Steuereinheit (18) einen Detektor zum Detektieren eines Besetzt-Zustandes zu detektieren, in dem die Steuereinheit (18) keine neuen Lese-, Schreib- oder Lese-, Modifizierungs- und Schreibanforderungen von der zentralen Bearbeitungseinheit (1) akzeptieren kann, und zum Ausgeben eines Besetzt-Detektierungssignals, das ein detektiertes Ergebnis trägt.
  23. Das Datenbearbeitungssystem nach Anspruch 22, wobei die Lesedaten, die von der Busschnittstelleneinheit (3) ausgegeben werden, zu der zentralen Bearbeitungseinheit (1) ausgegeben werden.
  24. Das Datenbearbeitungssystem nach Anspruch 1, wobei die Lese-, Modifizierungs- und Schreibeinheit (10; 20) ferner umfasst: einen Lesedatenspeicherpuffer (14) zum Speichern von Lesedaten, die von der Busschnittstelleneinheit (3) ausgegeben werden; und einen Schreibdatenspeicherpuffer (17) zum Speichern von Schreibdaten, die das Operationsergebnis sind, das von dem Modifizierungsoperationsschaltkreis (15) ausgegeben wird, und zum Ausgeben der gespeicherten Daten zu der Busschnittstelleneinheit (3), wobei der Modifizierungsoperationsschaltkreis (15) die Operationsbearbeitung zwischen den Lesedaten, die von dem Lesedatenspeicherpuffer (14) ausgegeben werden, und den Modifizierungsdaten, die von dem Modifizierungsvoraussetzungspuffer (12) ausgegeben werden, unter dem Operationssteuerungssignal ausführt.
DE60224774T 2001-12-25 2002-12-23 Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit Expired - Lifetime DE60224774T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001391671 2001-12-25
JP2001391671A JP2003196084A (ja) 2001-12-25 2001-12-25 リードモディファイライトユニットを有するシステム

Publications (2)

Publication Number Publication Date
DE60224774D1 DE60224774D1 (de) 2008-03-13
DE60224774T2 true DE60224774T2 (de) 2009-01-15

Family

ID=19188549

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60224774T Expired - Lifetime DE60224774T2 (de) 2001-12-25 2002-12-23 Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit

Country Status (5)

Country Link
US (1) US6959367B2 (de)
EP (1) EP1324190B1 (de)
JP (1) JP2003196084A (de)
KR (1) KR100533296B1 (de)
DE (1) DE60224774T2 (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050262403A1 (en) * 2004-05-21 2005-11-24 Alexandre Palus Apparatus and method for single operation read-modify-write in a bit-accessible memory unit memory
US20060036817A1 (en) * 2004-08-10 2006-02-16 Oza Alpesh B Method and system for supporting memory unaligned writes in a memory controller
US7627723B1 (en) * 2006-09-21 2009-12-01 Nvidia Corporation Atomic memory operators in a parallel processor
US7836262B2 (en) * 2007-06-05 2010-11-16 Apple Inc. Converting victim writeback to a fill
US8239638B2 (en) * 2007-06-05 2012-08-07 Apple Inc. Store handling in a processor
JP2009032323A (ja) * 2007-07-26 2009-02-12 Toshiba Corp ディスク記憶装置
US8135926B1 (en) * 2008-10-21 2012-03-13 Nvidia Corporation Cache-based control of atomic operations in conjunction with an external ALU block
WO2011022114A1 (en) 2009-08-20 2011-02-24 Rambus Inc. Atomic memory device
US8473695B2 (en) * 2011-03-31 2013-06-25 Mosys, Inc. Memory system including variable write command scheduling
US9354823B2 (en) 2012-06-06 2016-05-31 Mosys, Inc. Memory system including variable write burst and broadcast command scheduling
US8850137B2 (en) * 2010-10-11 2014-09-30 Cisco Technology, Inc. Memory subsystem for counter-based and other applications
JP5480793B2 (ja) * 2010-12-10 2014-04-23 株式会社日立製作所 プログラマブルコントローラ
US8688957B2 (en) * 2010-12-21 2014-04-01 Intel Corporation Mechanism for conflict detection using SIMD
KR101975534B1 (ko) * 2012-09-11 2019-05-07 삼성전자주식회사 연산기능을 갖는 반도체 메모리 장치
US9411584B2 (en) 2012-12-29 2016-08-09 Intel Corporation Methods, apparatus, instructions, and logic to provide vector address conflict detection functionality
US9411592B2 (en) 2012-12-29 2016-08-09 Intel Corporation Vector address conflict resolution with vector population count functionality
CN104102584A (zh) * 2014-08-08 2014-10-15 珠海格力电器股份有限公司 空调机组测试方法、测试控制装置和测试系统
JP2017123208A (ja) * 2016-01-06 2017-07-13 ルネサスエレクトロニクス株式会社 半導体記憶装置
US11188239B2 (en) 2019-03-28 2021-11-30 Western Digital Technologies, Inc. Host-trusted module in data storage device
KR20200126155A (ko) 2019-04-29 2020-11-06 에스케이하이닉스 주식회사 명령 머지 동작을 수행하는 반도체 메모리 장치 및 그 동작 방법
US11061820B2 (en) * 2019-08-30 2021-07-13 Microsoft Technology Licensing, Llc Optimizing access to page table entries in processor-based devices
KR20210063724A (ko) * 2019-11-25 2021-06-02 에스케이하이닉스 주식회사 메모리 시스템
US11573891B2 (en) 2019-11-25 2023-02-07 SK Hynix Inc. Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device
KR102456176B1 (ko) 2020-05-21 2022-10-19 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR20210081663A (ko) * 2019-12-24 2021-07-02 삼성전자주식회사 인터커넥트 장치, 인터커넥트 장치의 동작 방법 및 인터커넥트 장치를 포함하는 AI(Artificial Intelligence) 가속기 시스템
US11630605B1 (en) * 2022-08-10 2023-04-18 Recogni Inc. Methods and systems for processing read-modify-write requests

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3038781B2 (ja) 1989-04-21 2000-05-08 日本電気株式会社 メモリアクセス制御回路
JPH0581122A (ja) 1991-09-20 1993-04-02 Pfu Ltd メモリのパーシヤル・ライト制御方式
US5666515A (en) * 1993-02-18 1997-09-09 Unisys Corporation Information processing system having multiple modules and a memory on a bus, where any module can lock an addressable portion of the memory by sending retry signals to other modules that try to read at the locked address
US5572702A (en) * 1994-02-28 1996-11-05 Intel Corporation Method and apparatus for supporting read, write, and invalidation operations to memory which maintain cache consistency
JPH0954694A (ja) 1995-08-16 1997-02-25 Nec Corp パイプラインプロセッサおよびその処理方法
US6745302B1 (en) * 1996-08-20 2004-06-01 Sony Corporation Method and circuit for enabling a clock-synchronized read-modify-write operation on a memory array
US6405276B1 (en) * 1998-12-10 2002-06-11 International Business Machines Corporation Selectively flushing buffered transactions in a bus bridge
US6226017B1 (en) 1999-07-30 2001-05-01 Microsoft Corporation Methods and apparatus for improving read/modify/write operations
JP2001075826A (ja) 1999-09-09 2001-03-23 Hitachi Ltd 並列計算機における高効率セマフォ処理方式
US6795901B1 (en) * 1999-12-17 2004-09-21 Alliant Techsystems Inc. Shared memory interface with conventional access and synchronization support

Also Published As

Publication number Publication date
US6959367B2 (en) 2005-10-25
JP2003196084A (ja) 2003-07-11
KR20030055148A (ko) 2003-07-02
KR100533296B1 (ko) 2005-12-05
EP1324190A3 (de) 2004-08-11
EP1324190B1 (de) 2008-01-23
EP1324190A2 (de) 2003-07-02
US20030120880A1 (en) 2003-06-26
DE60224774D1 (de) 2008-03-13

Similar Documents

Publication Publication Date Title
DE60224774T2 (de) Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit
DE68907518T2 (de) Inhaltsadressierte Speicheranordnung.
DE69027348T2 (de) Speicherblockadressenermittlungsschaltkreis
DE68928213T2 (de) Inhaltadressierte Speicherzellenanordnung
DE69221045T2 (de) Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und Prüffunktionen
DE3687724T2 (de) Digitalprozessorsteuerung.
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE3853759T2 (de) Datenprozessor mit zwei Betriebsmoden.
DE3587277T2 (de) System fuer die umgehungssteuerung beim pipelinebetrieb eines computers.
DE2714805C2 (de)
DE2722099C2 (de)
DE3650532T2 (de) Speicher mit programmierbarem Zugang
DE69030931T2 (de) Mehrfachsequenzprozessorsystem
DE2910839A1 (de) Einrichtung zur ausfuehrung einer speziellen verzweigungsinstruktion
DE69027932T2 (de) Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen
DE68928187T2 (de) Inhaltadressierte Speicherzellenanordnung
DE102007006190A1 (de) Techniken zur Verwendung von Speicher-Attributen
DE3854853T2 (de) Datenprozessor mit erweiterten Operationsfunktionen
DE2551741A1 (de) Datenverarbeitungseinrichtung
DE68918840T2 (de) Fehlererkennung für teilschreiboperationen für speicher.
DE68926701T2 (de) Datenverarbeitungsgerät zur parallelen Dekodierung und parallelen Ausführung von Befehlen mit variabler Wortlänge
DE3338329A1 (de) Computersystem
DE2611975A1 (de) Dv-system mit einer einrichtung zur zuordnung von prozessen zu einem prozessor auf einer prioritaetsbasis
DE3688446T2 (de) Mikroprozessorunterstützte Speicher-zu-Speicher-Transfervorrichtung.
DE68925376T2 (de) In Direktabbildung und in Bankabbildung wirksamer Informationsprozessor und Verfahren zum Schalten der Abbildungsschemas

Legal Events

Date Code Title Description
8364 No opposition during term of opposition