DE69233655T2 - Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren - Google Patents

Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren Download PDF

Info

Publication number
DE69233655T2
DE69233655T2 DE69233655T DE69233655T DE69233655T2 DE 69233655 T2 DE69233655 T2 DE 69233655T2 DE 69233655 T DE69233655 T DE 69233655T DE 69233655 T DE69233655 T DE 69233655T DE 69233655 T2 DE69233655 T2 DE 69233655T2
Authority
DE
Germany
Prior art keywords
memory
port
request
bus
data
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
DE69233655T
Other languages
English (en)
Other versions
DE69233655D1 (de
Inventor
Derek J. Campbell Lentz
Yasuaki Santa Clara Hagiwara
Cheng-Long San Jose Tang
Te-Li Palo Alto Lau
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Publication of DE69233655D1 publication Critical patent/DE69233655D1/de
Application granted granted Critical
Publication of DE69233655T2 publication Critical patent/DE69233655T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf eine Mikroprozessorarchitektur im Allgemeinen und insbesondere auf eine Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedener Mikroprozessoren.
  • Beschreibung des relevanten Standes der Technik
  • Ein Computersystem mit einer Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedener Prozessoren weist typischerweise einen Speicher, einen Speichersystembus mit einem Daten-, einem Adress- und einem Steuersignalbus, einen Eingabe-/Ausgabe-I/O-Bus mit einem Daten-, einem Adress- und einem Steuersignalbus, eine Vielzahl von I/O-Einrichtungen und eine Vielzahl von Mikroprozessoren auf. Die I/O-Einrichtungen können z. B. einen Steuerprozessor mit direktem Speicherzugriff, einen Ethernetchip und verschiedene andere I/O-Einrichtungen aufweisen. Die Mikroprozessoren können z. B. sowohl eine Vielzahl von Prozessoren für allgemeine Anwendungen wie auch für spezielle Anwendungen aufweisen. Die Prozessoren sind über eine Einrichtung des Speichersystembusses an den Speicher und über eine Einrichtung des I/O-Busses an die I/O-Einrichtungen angeschlossen.
  • Um es den Prozessoren zu ermöglichen, ohne gegenseitige Behinderung auf die MAU und die I/O-Einrichtungen zugreifen zu können, ist es erforderlich, einen Mechanismus bereitzustellen, welcher den Prozessoren und den I/O-Einrichtungen eine Priorität zuweist. Das verwendete Prioritätsschema kann ein festes Prioritätsschema oder ein dynamisches Prioritätsschema sein, welches es gestattet, die Prioritäten während des Betriebes zu verändern, wenn sich die Bedingungen des Systems verändert haben, oder eine Kombination beider Schemata. EP-A-0 324 662 beschreibt ein System, bei dem eine Vielzahl von Quellen um den Zugang zu einer Vielzahl von Zielen konkurrieren und die Vielzahl der Quellen dynamisch auf bestimmte Weise und in Entsprechung zu Kriterien verändert werden können, die sich von denen der vorliegenden Erfindung unterscheiden. Es ist also wichtig, bei solch einem Mechanismus eine Einrichtung bereitzustellen, die einen schnellen Zugriff durch alle Prozessoren auf den Speicher und die I/O-Einrichtungen in einer Weise ermöglicht, die einen minimalen Speicher und I/O-Einrichtungsreaktionsszeit bei gleichzeitiger Speicherkohärenz gewährleistet. Z. B. kann eine wiederholte Verwendung des Systembusses für einen Zugriff auf abgewiesene Semaphoren die Bandbreite des Systembusses erheblich reduzieren. Einzelnen Prozessoren kann es nicht gestattet werden, dieselben Daten zu lesen und zu schreiben, solange keine Vorkehrungen getroffen sind, um Probleme mit der Speicherkohärenz zu vermeiden.
  • EP-0 214 718 A2 offenbart einen Digitalcomputer und eine effiziente Technik zum gleichzeitigen Ausführen von Iterationen. Es wird ein Parallelverarbeitungs-Computer bereitgestellt, der in der Lage ist, die intensiven Anwendungen, die üblicherweise mit technischen und wissenschaftlichen Anwendungen verbunden sind, erfolgreich Prozessrechnen zu unterziehen. Es wird eine Technik für Interleaving der Speicherelemente eines Parallelverarbeitungs-Computers beschrieben und speziell eine, die zur Verwendung beim Prozessrechnen intensiver Anwendungen, die Speicherzugriff in feststehenden Schritten involvieren, geeignet ist. Darüber hinaus wird ein Bus-Leiterplattenschalter zum selektiven Verbinden jedes einer Vielzahl von ersten Untersystem-Bussen mit jedem einer Vielzahl von zweiten Untersystem-Bussen offenbart. Der Digitalcomputer umfasst eine Vielzahl von Rechenelementen.
  • Es ist das Ziel der Erfindung, Probleme der Speicherkohärenz zu lösen.
  • Dieses Ziel wird durch den Gegenstand des Anspruchs 1 gelöst.
  • Bevorzugte Ausführungen sind Gegenstand der abhängigen Ansprüche.
  • Zusammenfassung der Erfindung
  • In Anbetracht des Vorhergehenden ist eine Hauptausführung der vorliegenden Erfindung ein Computersystem mit einer Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedener Prozessoren beschrieben, die über einen oder mehrere I/O-Busse an mehrere Speicherfelder und eine Vielzahl von I/O-Einrichtungen angeschlossen sind. Die Speicherfelder sind in Untersysteme mit Schnittstellenschaltkreisen, die als Speicherfeldeinheiten oder MAUs bekannt sind, unterteilt. In jedem der Prozessoren ist eine neue Speichersteuereinheit (MCU) vorhanden. Jede der MCUs weist ein Schaltnetzwerk mit einer Schaltzuteilungseinheit, einen Datenspeicherschnittstellenschaltkreis, einen Befehlsspeicherschnittstellenschaltkreis, einen I/O-Schnittstellenschaltkreis und einen oder mehrere Speicheranschlussschnittstellenschaltkreise auf, die als Anschlüsse bekannt sind, wobei jeder der Anschlußschnittstellenschaltkreise eine Anschlußzuteilungseinheit aufweist.
  • Das Schaltnetzwerk ist eine Einrichtung zur Kommunikation zwischen einer Master- und einer Slaveeinrichtung. Für den Schalter sind ein Datenspeicher, ein Befehlsspeicher oder eine I/O-Steuereinheit (IOU) mögliche Mastereinrichtungen und ein Speicheranschluss oder eine IOU mögliche Slaveeinrichtungen.
  • Die Funktion des Schaltnetzwerkes besteht dann, von den Speichersteuereinheiten (CCU) (Befehlsspeicher, Datenspeicher) und der IOU verschiedene Befehle und Datenanfragen zu empfangen. Nachdem sie diese Anfragen empfangen haben, priorisieren die Schaltzuteilungseinheit in dem Schaltnetzwerk und die Anschlußzuteilungseinheit in dem Anschlußschnittstellenschaltkreis die Anfragen und leiten sie an den geeigneten Speicheranschluss (abhängig von der Befehlsadresse) weiter. Der Anschluss oder, je nach Einzelfall, die Anschlüsse werden daraufhin die notwendigen Taktsignale erzeugen und die notwendigen Daten von der MAU empfangen oder an diese senden. Wenn es sich um eine Schreib(WR)anfrage handelt, wird das Zusammenspiel zwischen dem Anschluss und dem Schalter beendet, wenn der Schalter alle Schreibdaten in den Schreibdaten-FiFO (WDF) von dem Schalter geschrieben hat. Wenn es sich um eine Lese(RD)anfrage handelt, wird das Zusam menspiel zwischen dem Schalter und dem Anschluss nur dann beendet, wenn der Anschluss die Lesedaten durch den Schalter zurück an den anfragenden Master gesendet hat.
  • Das Schaltnetzwerk besteht aus vier Sätzen von Tri-State-Bussen, welche die Verbindung zwischen dem Speicher, der IOU und den Speicheranschlüssen bilden. Die vier Sätze von Tri-State-Bussen weisen den SW_REQ, SW_WD, SW_RD und SW_IDBST auf. Gemäß einem typischen Ausführungsbeispiel der vorliegenden Erfindung weist der SW_REQ-Bus 29 Leitungen auf, die dazu verwendet werden, die Adresse, die ID und ein Teilungssignal von einer Mastereinrichtung an eine Slaveeinrichtung zu senden. Die ID ist ein mit einer Speicheranfrage verbundenes Trennzeichen, so dass die anfragende Einrichtung in der Lage ist, die zurückkehrenden Daten mit der richtigen Speicheradresse zu verbinden. Das Teilungssignal ist ein Signal, welches anzeigt, dass ein Speicherzugriff auf einen geteilten Speicher stattfindet. Wenn die Mastereinrichtung eine Anfrage an einen Slave ausgibt, ist es nicht notwendig, die vollen 32Bits der Adresse an den Schalter zu senden. Dies liegt daran, dass in einer Mehrfachspeicheranschlussstruktur der Schalter die Adresse dekodiert haben würde und wissen würde, ob die Anfrage für einen Speicheranschluss 0, einen Anschluss 1 oder die IOU, etc. bestimmt ist. Weil jeder Anschluss einen vorbestimmten, ihm zugewiesenen Speicherraum besitzt, besteht kein Bedarf, die vollen 32Bits der Adresse an den SW_REQ zu senden.
  • In der Praxis werden andere Anfrageattribute, wie z. B. ein Funktionscode und ein Datenbreitenattribut aufgrund von Zeitzwängen nicht auf dem SW_REQ gesendet. Wenn die Information über den Schalter transportiert würde, würde sie eine Phase später als benötigt an dem Anschluss ankommen und damit den Speicheranfragen mehr Latenzzeit zuführen. Deshalb werden solche Anfrageattribute auf fest zugeordneten Leitungen an den Anschluss übertragen, so dass der Anschluss seine Zustandsmaschine eher starten und dadurch die Speicherlatenzzeit verringern kann.
  • Bezugnehmend auf 8 umfasst der Bus SW_WD 32 Leitungen und wird dazu verwendet, die Schreibdaten von der Mastereinrichtung (Datenspeicher und EINGABE-/AUSGABEEINHEIT) an den FIFO an dem Speicheranschluss zu senden. Es sollte festgestellt werden, dass der Befehlsspeicher nur Daten ausliest und keine Daten schreibt. Dieser Tri-State-Bus ist "doppelt gepumpt", was bedeutet, dass bei jeder Taktphase ein Datenwort übertragen wird, das die benötigten Kabel und damit die Schaltkreiskosten verringert werden. WD00, WD01, WD10 und WD11 sind Datenworte. Weil die Busse doppelt gepumpt sind, wird besonders darauf geachtet, sicherzustellen, dass kein Buskonflikt auftritt, wenn die Busse umkehren und von einem Master auf einen neuen Master umschalten.
  • Bezugnehmend auf 9 umfasst der Bus SW_RD 64 Leitungen und wird dazu verwendet, die Umkehr-Lesedaten von der Slaveeinrichtung (Speicheranschluss und IOUI) an die Mastereinrichtung zurückzusenden. Daten werden nur während einer Phase 1 gesendet. Dieser Bus ist nicht doppelt gepumpt aufgrund von zeitlichen Bedingungen der Speicher, wobei die Speicher fordern, dass die Daten bei fallender Flanke von CLK1 gültig sind. Weil die Daten an dem Anschluss während der Phase 1 nicht verfügbar sind, solange der Takt 1 H-Pegel zeigt, wäre, wenn ein Versuch unternommen würde, den SW_RD-Bus doppelt zu pumpen, der früheste Zeitpunkt, wann der Speicher die Daten bekommen könnte, die positive Flanke von CLK1 und nicht dessen negative Flanke. Weil der Bus SW_RD nicht doppelt gepumpt ist, ist dieser Bus nur während der Phase 2 aktiv (nicht im Tri-Zustand). Es gibt kein Problem mit dem Bustreiberkonflikt, wenn der Bus auf einen anderen Master umschaltet.
  • Der Bus SW_IDBST umfasst vier Leitungen und wird dazu verwendet, die Identifikation (ID) von einer Master- an eine Slaveeinrichtung und die ID und das Speicherblockstartsignal von einer Slave- an eine Mastereinrichtung zu senden.
  • In einem aktuellen Ausführungsbeispiel der vorliegenden Erfindung gibt es nur einen ID-FIFO-Speicher bei jeder Slaveeinrichtung. Weil Daten von einer Slaveenrichtung immer ordnungsgemäß zurückkehren, besteht keine Notwendigkeit dafür, die ID hinunter an den Anschluss zu senden. Die ID könnte in separaten FIFO-Speichern gespeichert werden, mit einem FIFO-Speicher für jeden Anschluss an der Schnittstelle zwischen der Schalt- und der Mastereinrichtung. Dies erfordert ein Anwachsen des Schaltkreisbereiches über das aktuelle Ausführungsbeispiel hinaus, weil jede Schnittstelle dann n FIFO-Speicher haben muss, wenn n Anschlüsse vorhanden sind, allerdings können die Tri-State-Leitungen um zwei reduziert werden.
  • Die Anschlußschnittstelle ist eine Schnittstelle zwischen dem Schaltnetzwerk und dem externen Speicher (MAU). Sie umfasst eine Anschlußzuteilungseinheit und Einrichtungen zum Speichern von Anfragen, die Eingriffe und unterbrochene Leseanfragen verursachen. Sie beinhaltet ebenfalls einen Erkundungsadressgenerator. Sie weist außerdem Schaltkreise auf, die als Signalgeneratoren fungieren, um gute Taktsignale für die Steuerung der Speichermodule zu erzeugen.
  • Es gibt mehrere Algorithmen, die in einer Vorrichtung innerhalb des Schaltnetzwerkes gemäß der vorliegenden Erfindung implementiert sind, wie z. B. einen Test- und Einstellüberbrückungsschaltkreis mit einem inhaltsadressierbaren Speicher (CAM), einen Zeilenübereinstimmungsvergleichsschaltkreis und einen dynamischen Schalt/Anschlußzuteilungsschaltkreis.
  • Die Architektur implementiert Semaphoren, welche dazu verwendet werden, Software in Multiprozessorsystemen mit einem "Test- und Entstellbefehl", wie unten beschrieben, zu synchronisieren. Semaphoren sind nicht in der Architektur gespeichert. Der Speicher holt die Semaphore von der MCU, wann immer die CPU einen Test- und Einstellbefehl ausführt.
  • Der Test- und Einstellüberbrückungsschaltkreis beinhaltet einen einfachen Algorithmus, welcher einen Verlust an Speicherbandbreite aufgrund einer Spinverriegelung, wie z. B. wiederholten Anfragen für einen Zugriff auf den MAU-Systembus, für eine Semaphore verhindert. Wenn ein Testbefehl auf einer Semaphore, die einen Speicherbereich, eine Einrichtung oder ähnliches verriegelt, ausgeführt wird, speichert der CAM die Adresse der Semaphore. Dieser Eintrag in den CAM wird gelöscht, wenn irgendein Prozessor ein Schreiben in einen kleinen Speicherbereich, welcher die Semaphore beinhaltet, ausführt. Wenn die nachgefragte Semaphore noch in dem CAM vorhanden ist, wurde die Semaphore nicht von einem anderen Prozessor freigegeben und deshalb besteht keine Veranlassung, tatsächlich wegen der Semaphore auf den Speicher zuzugreifen. Statt dessen wird ein Block logischer 1' en ($FFFFs) (Semaphore gestört) an den anfragenden Speicher zurückgesendet, wodurch angezeigt wird, dass die Semaphore noch verriegelt ist und nicht tatsächlich auf die Semaphore zugegriffen wird, wodurch Speicherbandbreite eingespart wird.
  • Ein Schreiben von irgend etwas anderem als nur 1'en in eine Semaphore löscht die Semaphore. Die Slave-CPU muss dann den geteilten Speicherbus überprüfen, um zu sehen, ob irgendeine CPU (inklusive sie selbst) in die entsprechende Semaphore schreibt. Wenn irgendeine CPU in eine Semaphore schreibt, welche einem Eintrag in dem CAM entspricht, wird dieser Eintrag in dem CAM gelöscht. Wenn dann Speicher als nächstes versucht, auf die Semaphore zuzugreifen, wird er den Eintrag in dem CAM nicht finden und dann tatsächlich die Semaphore von einem Hauptspeicher holen und sie als gesperrt kennzeichnen, z. B. mit nur Einsen.
  • Die Funktion des Zeilenübereinstimmungsvergleichsschaltkreises besteht darin, festzustellen, ob eine vorliegende Anfrage dieselbe Zeilenadresse wie die vorherige Anfrage besitzt. Wenn dies der Fall ist, braucht der Anschluss weder den RAS zurückzubeanspruchen, noch eine RAS Vorladezeitstrafe auf sich zu nehmen. Daher kann die Speicherlatenzzeit verringert und die verwendbare Bandbreite vergrößert werden. Zeilenübereinstimmung wird hauptsächlich für dynamische RAMs verwendet, aber sie kann auch für statische RAMs oder ROMs verwendet werden, so dass die MAU nicht in den höheren Bits einer neuen Adresse gespeichert werden muss. Daher wird, wenn eine Anfrage für einen Zugriff auf den Speicher vorliegt, die Adresse an den Schaltnetzwerkadressbus SW_REQ gesendet, die Zeilenadresse dekodiert und in einem MUX-Zwischenspeicher gespeichert. Wenn diese Adresse als die Zeilenadresse einer vorhergehenden Anfrage betrachtet wird, während ein Speicher oder eine IOU eine neue Anfrage ausgibt, wird die mit der neuen Anfrage verknüpfte Adresse dekodiert und ihre Zeilenadresse mit der vorherigen Zeilenadresse verglichen. Liegt eine Übereinstimmung vor, tritt ein Zeilenübereinstimmungstreffer auf und der Übereinstimmungsanfrage wird eine Priorität zugeordnet, wie nachfolgend erklärt wird.
  • In dem dynamischen Schalt/Anschlußzuteilungsschaltkreis werden zwei verschiedene Zuteilungen durchgeführt. Eine betrifft die Zuteilungen der Ressourcen der Speicheranschlüsse, wie z. B. Anschluss 0...Anschluss N und die andere ist eine Zuteilung der Ressourcen des Adress- und Schreibdatenbusses SW_REQ und SW_WD des Schaltnetzwerkes.
  • Die Erfinung, die Gegenstand des vorliegenden Patentes ist, ist in dem Systemanspruch 1 und dem Verfahrensanspruch 3 definiert. Bei der speziellen Ausführung, die beschrieben wird, können zahlreiche Einrichtungen gleichzeitig Daten von dem Hauptspeicher nachfragen. Es gibt den Datenspeicher, den Befehlsspeicher und die IOU. Ein Prioritätsschema ist etabliert, wobei jeder Master mit einer bestimmten Priorität ausgestattet ist, so dass die Anfragen von "wichtigeren" oder "dringlicheren" Einrichtungen sobald wie möglich bedient werden. Wie auch immer, ein striktes festes Zuteilungsschema wird aufgrund der Möglichkeit des Aushungerns der Einrichtungen mit geringer Priorität nicht verwendet. Statt dessen wird ein dynamisches Zuteilungsschema verwendet, welches den verschiedenen Einrichtungen während des Betriebs verschiedene Prioritäten zuordnet. Dieses dynamische Schema wird von den folgenden Faktoren beeinflußt:
    • 1. Der intrinsischen Priorität der Einrichtungen.
    • 2. Hat eine nachgefragte Adresse eine Zeilenübereinstimmung mit einer vorher bedienten Anfrage?
    • 3. Wurde der Einrichtung eine Bedienung zu häufig verweigert?
    • 4. Wurde der Master zu häufig bedient?
  • Jede Anfrage einer Einrichtung hat eine intrinsische Priorität. Die IOU hat die höchste Priorität, gefolgt jeweils von dem Daten- und dem Befehlsspeicher. Wie auch immer, eine Eingriffsanfrage (ITV) von dem Datenspeicher hat jedoch, wie unten be schrieben, die höchste Priorität von allen, weil es erforderlich ist, dass dem Slave-Bearbeitungselement (PE) aktualisierte Daten so schnell wie möglich zur Verfügung stehen.
  • Die intrinsische Priorität der verschiedenen Einrichtungen ist durch mehrere Faktoren veränderbar. Die Häufigkeit, mit der einer Einrichtung mit geringer Priorität eine Bedienung verweigert wird, wird überwacht und wenn diese Häufigkeit eine vorgegebene Anzahl erreicht, wird der Einrichtung mit der geringen Priorität eine höhere Priorität zugeteilt. Im Gegensatz dazu wird die Häufigkeit, mit der einer Einrichtung eine Priorität zuerteilt wird, ebenfalls überwacht, so dass, wenn die Einrichtung ein "Busschwein" ist, ihm die Priorität verweigert werden kann, um einer Einrichtung mit geringerer Priorität zu gestatten, einen Zugriff auf den Bus zu erlangen. Ein dritter Faktor, der zum Verändern der intrinsischen Prorität einer Anfrage verwendet wird, ist eine Zeilenübereinstimmung. Zeilenübereinstimmung ist hauptsächlich für den Befehlsspeicher wichtig. Wenn eine Einrichtung eine Speicherstelle nachfragt, die dieselbe Zeilenadresse wie eine zuvor bediente Anfrage besitzt, wird die Priorität der anfragenden Einrichtung erhöht. Dies wird gemacht, um zu vermeiden, dass ein RAS verneint und erneut bestätigt werden muss. Jedes mal, wenn eine Anfrage aufgrund einer Zeilenübereinstimmung bedient wird, wird ein programmierbarer Zähler erniedrigt. Wenn der Zähler z. B. 0 erreicht, wird das Zeilenübereinstimmungsprioritätsbit gelöscht, um einem neuen Master zu gestatten, einen Zugriff auf den Bus zu erhalten. Der Zähler wird wieder mit einem programmierbaren Wert geladen, wenn sich der neue Master des Anschlusses von dem alten Master unterscheidet oder wenn es sich bei einer Anfrage nicht um eine Anfrage mit einer Zeilenübereinstimmung handelt.
  • Einer Schreibanfrage für einen Speicheranschluss wird nur dann stattgegeben, wenn der Schreibdatenbus (SW_WD) des Schaltnetzwerkes verfügbar ist. Wenn er nicht verfügbar ist, wird eine andere Anfrage selektiert. Nur für eine Eingriffsanfrage (ITV) von dem Datenspeicher besteht eine Ausnahme. Wenn eine solche Anfrage vorliegt und der SW_WD-Bus nicht verfügbar ist, wird keine Anfrage selektiert. Statt dessen wartet das System darauf, dass der SW_WD-Bus frei wird und dann wird der Eingriffsanfrage stattgegeben.
  • Für das Schaltnetzwerk werden zwei softwareselektierbare Zuteilungsschemata verwendet. Es sind dies die folgenden:
    • 1. Die Slavepriorität, bei der die Priorität auf dem Slave oder der anfragenden Einrichtung (nämlich dem Speicher oder dem IOU-Anschluss) basiert.
    • 2. Die Masterpriorität, welche auf dem Master oder der anfragenden Einrichtung (nämlich der IOU, dem Datenspeicher und dem Befehlsspeicher) basiert.
  • Bei dem Slaveprioritätsschema wird die Priorität immer zuerst an die Speicheranschlüsse gegeben, z. B. an die Anschlüsse 0, 1, 2..., dann an die IOU und dann zurück an den Anschluss ∅; ein Schema, das allgemein als Rotationsschema bekannt ist. Das Masterprioritätsschema ist ein Schema mit fester Priorität, bei dem die Priorität jeweils an die IOU und dann an den Datenspeicher und den Befehlsspeicher gegeben wird. Alternativ dazu kann einer Eingriffsanfrage die höchste Priorität in dem Masterprioritätsschema in der Schaltzuteilung gegeben werden. Auch kann dem Befehlsspeicher die höchste Priorität zugeteilt werden, wenn der Vorabbefehlspuffer bald leer wird.
  • Die oben erwähnten und andere Merkmale und Vorteile der vorliegenden Erfindung werden durch die folgende detaillierte Beschreibung der beigefügten Zeichnungen klar werden, wobei:
  • 1 ein Blockschaltbild einer Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedener Mikroprozessoren gemäß der vorliegenden Erfindung zeigt;
  • 2 ein Blockschaltbild einer Speichersteuereinheit gemäß der vorliegenden Erfindung zeigt;
  • 3 ein Blockschaltbild eines Schaltnetzwerkes, welches die Verbindungen zwischen einer Datenspeicherschnittstelle und einer Anschlußschnittstelle gemäß der vorliegenden Erfindung darstellt, zeigt;
  • 4 ein Blockschaltbild von einem Test- und Einstellüberbrückungsschaltkreis gemäß der vorliegenden Erfindung ist;
  • 5 ein Blockschaltbild eines Schaltkreises ist, der für die Erzeugung von Eingriffssignalen und für Zuteilungen an den MAU-Bus gemäß der vorliegenden Erfindung verwendet wird;
  • 6 ein Blockschaltbild eines Zeilenüberwachungsvergleichsschaltkreises gemäß der vorliegenden Erfindung ist; und
  • 7 ein Schaubild eines dynamischen Zuteilungsschemas gemäß der vorliegenden Erfindung ist.
  • 8 ist ein Schaubild, welches den Zeitverlauf einer Schreibanfrage darstellt; und
  • 9 ist ein Schaubild, welches den Zeitverlauf einer Leseanfrage darstellt.
  • Unter Bezugnahme auf 1 wird eine Mikroprozessorarchitektur bereitgestellt, die allgemein als 1 bezeichnet wird. In der Architektur 1 gibt es eine Vielzahl von Mikroprozessoren 2, 3, 4...N für allgemeine Verwendungen, einen Prozessor 5 für einen speziellen Zweck, einen Zuteiler 6 und eine Speicher/Speicherfeldeinheit (MAU) 7. Die Mikroprozessoren 2-N können eine Vielzahl von identischen Prozessoren oder eine Vielzahl von verschiedenen Prozessoren aufweisen. Der Prozessor 5 für eine spezielle Anwendung kann z. B. einen Grafikkontroller aufweisen. Alle Prozessoren 2-5 sind über einen oder mehrere Speicheranschlüsse PORT0...PORTN, durch jeweils eine Einrichtung mit einer Vielzahl von bidirektionalen Signalbussen 13-17 an einen MAU-Systembus 25 angekoppelt, welcher einen MAU-Datenbus 8, einen Zeilen/Spaltenadressbus 9, einen Multiprozessorsteuerbus 10, einen MAU-Steuerbus 11 und einen Buszuteilungssteuersignalbus 12 aufweist. Der Bus 12 wird beispielsweise dafür verwendet, eine Zuteilung für einen Zugriff nachzufragen oder zu gestatten oder anzuzeigen, dass der Systemdatenbus 8 belegt ist. Der Zuteiler 6 ist über eine Einrichtung einer bidirektionalen Signalleitung 18 an den Bus 12 angeschlossen. Die MAU 7 ist über die Einrichtungen der unidirektionalen Signalleitungen 19 und 20 an den Zeilen/Spaltenadress- und Speichersteuerbus 9 und 11 angeschlossen, welche dazu dienen, Signale von den Bussen an die MAU zu übertragen und die MAU ist über die Einrichtung des bidirektionalen Datenbusses 21 an den MAU-Datenbus 8 angeschlossen. Die Datenbusse 8 und 21 sind typischerweise 64-Bit Busse; wie auch immer, sie können unter Softwaresteuerung auch als 32-Bit Busse betrieben werden. Der Bus kann auf andere Breiten, wie z. B. 128 Bit, skaliert werden.
  • Jeder der Prozessoren 2-N weist typischerweise eine Eingabe-/Ausgabe-IOU-Schnittstelle 53 auf, welche nachfolgend unter Bezugnahme auf 2 weiter beschrieben wird und welche über die Einrichtung eines 32-Bit I/O-Busses 33 oder eines optionalen 32 Bit I/O-Busses 34 und einer Vielzahl von bidirektionalen 32 Bit Signalbussen 35-42 an eine Vielzahl von peripheren I/O-Einrichtungen, wie einem Direktzugriffsspeicher-(DMA) Prozessor 30, einer ETHERNET-Schnittstelle 31 und anderen I/O-Einrichtungen, angeschlossen ist. Der optionale I/O-Bus 34 kann von einem oder mehreren Prozessoren dazu verwendet werden, auf eine I/O-Einrichtung 43 für spezielle Anwendungen zuzugreifen.
  • Gemäß 2 weist jeder der Prozessoren 2-N eine Speichersteuereinheit (MCU), allgemein als 50 bezeichnet, auf, welche an eine Speichersteuereinheit (CCU) 49 mit einem Daten(D)speicher 51 und einem Befehls(I)speicher 52 und an einen I/O-Anschluss 53, auf den nachfolgend manchmal einfach als IOU Bezug genommen wird, und der an den I/O-Bus 33 oder 34 angeschaltet ist, angeschlossen ist.
  • Die MCU 50 ist ein Schaltkreis, wobei Daten und Befehle über den MAU-Systembus 25 zwischen der CCU 49, wie z. B. beiden, dem Datenspeicher 51 und dem Befehlsspeicher 52 (nur lesen), der 53 und der MAU 7 übertragen (gelesen oder geschrieben) werden. Die MCU 50 gewährleistet, wie weiter unten beschrieben wird, eine Speicherkohärenz. Speicherkohärenz wird dadurch erreicht, dass die MCU in jeder Slave-CPU alle Transaktionen einer Master-CPU auf dem MAU-Adressbus 9 überwacht, z.B. erkundet, um festzustellen, ob der Speicher in der Slave-CPU neue, durch die Master-CPU bereitgestellte Daten nachfragen oder neue Daten an die Master-CPU senden muss. Die MCU 50 ist für eine Verwendung mit sechs Speicheranschlüssen erweiterbar und kann maximal eine 4-Wege-Speicherverschachtelung auf dem MAU-Datenbus 8 unterstützen. Sie ist in der Lage, die Verwendung eines externen 64- oder 32 Bit Datenbusses 8 zu unterstützen und sie verwendet einen modifizierten Hemming Code, um einen Datenbitfehler zu korrigieren und um zwei oder mehr Datenbitfehler zu entdecken.
  • In der Architektur der Ausführung der vorliegenden Erfindung ist die Größe eines Speicherunterblocks, z. B. einer Speicherleitung, eine Funktion der Speicherbusgröße. Z. B., wenn die Busgröße 32 Bit beträgt, beträgt die Größe des Unterblocks typischerweise 16 Bytes. Wenn die Busgröße 64 Bit beträgt, ist die Größe des Unterblocks typischerweise 32 Byte. Wenn die Busgröße 128 Bit beträgt, ist die Größe des Unterblocks 64 Byte. Wie angedeutet, ist die MCU 50 so konstuiert, dass sie eine 1-, 2- oder 4-Wege-Verschachtelung, z. B. die Anzahl der pro Zyklus transferierten Bytes, unterstützen kann.
  • In der MCU 50 gibt es eine oder mehrere Anschlußschnittstellen, die als Anschluss P0 ... PN bezeichnet werden, ein Schaltnetzwerk 54, eine Datenspeicherschnittstelle 55, eine Befehlsspeicherschnittstelle 56 und eine I/O-Schnittstelle 57. Wie weiter unten im Hinblick auf 3 beschrieben wird, weist jede Anschlußschnittstelle P0-PN eine Anschlußzuteilungseinheit, die jeweils als PAU0...PAUN bezeichnet werden, auf. Das Schaltnetzwerk 54 umfasst eine Schaltzuteilungseinheit 58.
  • Wenn die MCU 50 zwei oder mehr Anschlußschnittstellen aufweist, wird jede der Anschlußstellen P0-PN an einen getrennten MAU-Systembus angeschlossen, welcher identisch ist zu dem oben im Hinblick auf die 1 beschriebenen Bus 25 ist. In 2 sind zwei solcher Busse gezeigt, die als 250 und 25N bezeichnet sind. Der Bus 25N umfasst die Busse 8N , 9N , 10N , 11N und 12N , welche jeweils über die Busse 13N , 14N , 15N , 16N , und 17N an den Anschluss PN angeschlossen sind. Die Busse 8N -17N sind identisch zu den oben im Hinblick auf 1 beschriebenen Bussen 8-17. Ähnlich wird jede der Anschlußstellen über eine Einrichtung aus einer Vielzahl von getrennten identischen Bussen mit Schreib(WR)datenbussen 60, 60N , Lese(RD)datenbussen 61, 61N und Adressbussen 62, 62N an das Schaltnetzwerk 54 und über eine Einrichtung aus einer Vielzahl von Steuerbussen 70, 71, 80, 81, 90 und 91 und 70N , 71N , 80N , 81N , 90N , und 91N an den Speicher und an die I/O-Schnittstellen 55, 56, 57 angeschlossen, wobei die Tiefstellung N die Busse zwischen den Schnittstellen PN und dem Speicher und den I/O-Schnittstellen identifiziert.
  • Das Schaltnetzwerk 54 und die Datenspeicherschnittstelle 55 sind über eine Einrichtung bestehend aus einem WR-Datenbus 72, einem RD-Datenbus 73 und einem Adressbus 74 miteinander verbunden. Das Schaltnetzwerk 54 und die Befehlsspeicherschnittstelle 56 sind über einen Lesedatenbus 82 und einen Adressbus 83 miteinander verbunden. Es sollte festgestellt werden, dass der Befehlsspeicher 52 keine Schreib(WR)anfragen ausgibt. Das Schaltnetzwerk 54 und die I/O-Schnittstelle 57 sind über eine Einrichtung aus einer Vielzahl von bidirektionalen Signalbussen, welche einen RD-Datenbus 92, einen WR-Datenbus 93 und einen Adressbus 94 umfasst, miteinander verbunden.
  • Die Datenspeicherschnittstelle 55 und die CCU 49, wie z. B. der Datenspeicher 51, sind über eine Einrichtung aus einer Vielzahl von unidirektionalen Signalbussen, welche einen WR-Datenbus 100, einen RD-Datenbus 101, einen Adressbus 102 und ein Paar von Steuersignalbussen 103 und 104 umfasst, miteinander verbunden. Die Befehlsspeicherschnittstelle 56 und die CCU 49, wie z.B. der Befehlsspeicher 52, sind über eine Einrichtung aus einer Vielzahl von unidirektionalen Signalbussen, welche einen RD-Datenbus 110, einen Adressbus 111 und ein Paar von Steuersignalbussen 112 und 113 aufweist, miteinander verbunden. Die I/O-Schnittstelle 57 und die IOU 53 sind über eine Einrichtung aus einer Vielzahl von unidirektionalen Signalbussen, welche einen Lese/Schreib-I/O-Masterdatenbus 120, einen Lese/Schreib-I/O-Slavedatenbus 121, ein Paar von Steuersignalleitungen 123 und 124 und ein Paar von Adressbussen 125 und 126 aufweist, miteinander verbunden. Die Bezeichnungen I/O-Master und I/O-Slave werden dazu verwendet, Datenübertragungen auf bezeichneten Signalleitungen zu identifizieren, wenn die I/O jeweils entweder als ein Master oder als ein Slave arbeitet, wie nachfolgend weiter beschrieben werden wird.
  • Bezugnehmend auf 3 ist dort ein Blockschaltbild des Hauptdatenpfades des Schaltnetzwerkes 54 bereitgestellt, welches die Zusammenschaltungen zwischen der Datenspeicherschnittstelle 55 und der Anschlußschnittstelle P0 darstellt. Ähnliche Zusammenschaltungen sind für die Anschlußschnittstellen P1-PN und die Befehlsspeicher- und I/O-Schnittstellen 55, 57 vorgesehen, außer dass die Befehlsspeicherschnittstelle 56 keine Schreibdatenanfragen ausgibt. Wie in 3 gezeigt, ist dort weiterhin in jeder der Anschlußschnittstellen P0-PN ein Identifikations(ID)-FIFO-Speicher 130, welcher dazu verwendet wird, die ID einer Leseanfrage zu speichern, ein Schreibdaten (WD)-FIFO-Speicher 131, welcher dazu verwendet wird, die Schreibdaten zeitweise zu speichern, bis ein Zugriff auf die MAU verfügbar ist und ein Lesedaten(RD)-FIFO-Speicher 132 vorgesehen, welcher dazu verwendet wird, die Lesedaten zeitweise zu speichern, bis das Netzwerk 54 verfügbar ist.
  • In dem Schaltnetzwerk 54 wird eine Vielzahl von Signalbussen 140-143, jeweils auch als Anfrage/Adressbus SW_REQ [28:0], Schreibdatenbus SW_WD [31:0], Lesedatenbus SW_RD [63:0] und als Identifikations/Speicherstartsignalbus SW_IDBST [3:0] bezeichnet, sowie die Schaltzuteilungseinheit 58 bereitgestellt. Die Schaltzuteilungseinheit 58 dient zum Handhaben von Mehrfachanschluss I/O-Anfragen.
  • Die Speicher- und Anschlußschnittstellen sind direkt durch einige Steuersignalbusse und indirekt durch andere Schaltnetzwerkbusse miteinander verbunden. Z. B. ist die AnschlußZuteilungseinheit PAU in jeder der Anschlußschnittstellen P0-PN durch ein Paar Steuersignalbusse mit einer Zuteilungssteuerleitung 70a und einer Anfragesteuerleitung 71a an die Schaltzuteilungseinheit 58 in dem Schaltnetzwerk 54 angeschlossen. Die Schaltzuteilungseinheit 58 ist über eine Zuteilungssteuersignalleitung 71b an die Datenspeicherschnittstelle 55 angeschlossen. Die Leitungen 70a und 70b sowie die Leitungen 71a und 71b sind Signalleitungen in den Bussen 70 und 71 gemäß 2. Ein Gatter 75 und Register 76 und 78 sind ebenfalls vorgesehen, um jeweils Anfragen zu speichern, welche Eingriffe verursachen und um unterbrochene Leseanfragen zu speichern. Entsprechende Steuerbusse sind zwischen dem anderen Anschluss, dem Speicher und den I/O-Schnittstellen vorhanden.
  • Die Funktion des Schaltnetzwerkes 54 besteht darin, verschiedene Befehle und Datenanfragen von den Speichersteuereinheiten (CCU), wie z. B. dem Befehlsspeicher 51, dem Datenspeicher 52 und der IOU 53 zu empfangen. Als Antwort auf die empfangenen Anfragen priorisiert die Schaltzuteilungseinheit 58 in dem Schaltnetzwerk 54, welches nur eine Anfrage zur gleichen Zeit bedient, die Anfragen und leitet sie in Abhängigkeit der der Anfrage beigefügten Adresse an die geeignete Anschlußschnittstelle P0-PN oder die I/O-Schnittstelle weiter. Die Anschluss- und I/O-Schnittstellen werden typischerweise durch die höherwertigen Bits in der der Anfrage zugeordneten Adresse ausgewählt. Jede Anschlußschnittstelle besitzt ein Register 77 zum Speichern der MAU-Adressen. Die Anschlußschnittstelle wird dann die notwendigen Taktsignale erzeugen und die notwendigen Daten an die/von der MAU transferieren. Wenn es sich um eine Schreibanfrage handelt, wird das Zusammenspiel zwischen der Anschlußschnittstelle und dem Schaltnetzwerk 54 beendet, wenn der Schalter alle Schreibdaten in den WDF (Schreibdaten-FIFO-Speicher) 131 geschoben hat. Wenn es sich um eine Leseanfrage handelt, wird die Zusammenarbeit zwischen dem Schaltnetzwerk 54 und der Anschlußschnittstelle nur dann beendet, wenn die Anschlußschnittstelle die Lesedaten zurück an das Schaltnetzwerk 54 gesendet hat.
  • Wie weiter unten beschrieben werden wird, ist das Schaltnetzwerk 54 zum Kommunizieren zwischen einer Master- und einer Slaveeinrichtung vorgesehen. In diesem Zusammenhang sind die möglichen Mastereinrichtungen:
    • 1. Datenspeicher
    • 2. Befehlsspeicher
    • 3. IOU und mögliche Slaveeinrichtungen sind:
    • 1. Speicheranschluss
    • 2. IOU.
  • Das Schaltnetzwerk 54 ist dafür verantwortlich, die notwendigen Eingriffsanfragen für eine Ausführung an die geeignete Anschlußschnittstelle zu senden.
  • Wie oben beschrieben wurde, weist das Schaltnetzwerk 54 vier Sätze von Tri-State-Bussen auf, die die Verbindung zwischen den Speicher-, den I/O- und den Speicheranschlussschnittstellen herstellen. Die vier Sätze von Tri-State-Bussen sind SW_REQ, SW_WD, SW_RD und SW_IDBST. Der als SW_REQ [28:0] bezeichnete Bus wird dazu verwendet, die Adresse in der Slaveeinrichtung und das Speicherteilungssignal sowie die ID von der Mastereinrichtung an die Slaveeinrichtung zu senden. Wie oben angedeutet, kann der Master der Datenspeicher, der Befehlsspeicher oder eine IOU sein, während die Slaveeinrichtung ein Speicheranschluss oder eine IOU sein kann. Wenn die Mastereinrichtung eine Anfrage an einen Slave ausgibt, ist es nicht notwendig, alle 32 Bit der Adresse an den Schaltbus SW_REQ zu senden. Dies liegt daran, dass bei der mehrfachen Speicheranschlussstruktur gemäß der vorliegenden Erfindung jeder Anschluss über einen ihm zugeordneten vordefinierten Speicherplatz verfügt.
  • Andere Anfrageattribute wie der Funktionscode (FC) und die Datenbreite (WD) werden aufgrund von Zeitbeschränkungen nicht an den SW_REQ-Bus gesendet. Die über das Schaltnetzwerk 54 getragenen Informationen erreichen die Anschlußschnittstelle eine Taktphase später als in dem Fall, wenn die Information über vor bestimmte Leitungen getragen worden wäre. Daher müssen die frühen Anfrageattribute eine Phase eher an die Anschlußschnittstelle gesendet werden, so dass die Anschlußschnittstelle ihre Zustandsmaschine früher starten kann und dadurch die Speicherlatenzzeit verringert wird. Dies wird durch eine separate Signalleitung 79, wie in 3 gezeigt, gewährleistet. Die Leitung 79 ist eine von den Leitungen in dem Steuersignalbus 70 gemäß 2.
  • Der SW_WD [31:0] Bus wird dazu verwendet, Schreibdaten von einer Mastereinrichtung (Datenspeicher und IOU) an den Schreibdaten-FIFO-Speicher 131 in der Speicheranschlussschnittstelle zu senden. Dieser Tri-State-Bus ist doppelt gepumpt, was bedeutet, dass in jeder Phase 32 Datenbits transferiert werden. Weil die Busse doppelt gepumpt sind, muss bei dem Entwurf des Schaltkreises besonders darauf geachtet werden, sicherzustellen, dass kein Buskonflikt auftritt, wenn die Busse umkehren und von einem Master auf einen neuen Master umschalten. Wie zu begrüßen sein wird, verringert das Doppelpumpen die Anzahl der erforderlichen Bitleitungen, wodurch kostspielige Leitungsausstattungen bei minimalen Leistungseinbußen minimiert werden.
  • Bezugnehmend auf 9 wird der SW_RD [63:0] Bus dazu verwendet, Umkehrlesedaten von der Slaveeinrichtung (Speicheranschluss oder IOU) an die Mastereinrichtung zurückzusenden. Die Daten werden nur während der Phase 1 des Taktes (wenn CLK1 H-Pegel hat) gesendet. Dieser Bus ist aufgrund von Zeitbeschränkungen des Speichers nicht doppelt gepumpt. Der Speicher erfordert, dass die Daten an der fallenden Flanke von CLK1 gültig sind. Weil die Daten während der Phase 1 von der Anschlußschnittstelle empfangen werden, wenn der SW_RD Bus doppelt gepumpt war, wäre der früheste Zeitpunkt, wann der Speicher die Daten erhalten würde, die positive Flanke von CLK1, nicht aber die negative Flanke von CLK1. Weil der SW_RD Bus nicht doppelt gepumpt ist, ist dieser Bus nur während CLK1 aktiv (nicht im Tri-Zustand) und es gibt kein Problem mit einem Buspufferkonflikt, wo zwei Bustreiber die gleichen Leitungen zur gleichen Zeit ansteuern.
  • Der SW_IDBST [3:0] wird dazu verwendet, den Identifikations(ID)Code und einen Speicherstartcode von der Slaveeinrichtung über den Bus 88 zurück an die Mastereinrichtung zu führen. Weil die Daten von einer Slaveeinrichtung immer ordnungsgemäß zurückkehren, gibt es im allgemeinen grundsätzlich keine Notwendigkeit dafür, die ID hinunter an den Anschluss zu senden. Die ID kann in getrennten FIFO-Speichern gespeichert werden, mit einem FIFO-Speicher für jeden Anschluss in der Schnittstelle.
  • Wieder bezugnehmend auf den Lese-FIFO-Speicher 132, werden Daten nur dann in diesen FIFO-Speicher hineingegeben, wenn der Schaltlesebus SW_RD nicht verfügbar ist. Wenn der Bus SW_RD aktuell von einigen anderen Anschlüssen belegt wird, werden die ankommenden Lesedaten zeitweilig in den Lese-FIFO-Speicher 132 geschoben und wenn der SW_RD-Bus freigegeben ist, werden die Daten von dem FIFO abgehoben und durch das Schaltnetzwerk 54 an den anfragenden Speicher oder die anfragende IOU transferiert.
  • Der Transfer von Daten zwischen der Datenspeicherschnittstelle 55, der Befehlsspeicherschnittstelle 56, der I/O-Schnittstelle 57 und den Anschlußschnittstellen P0-PN wird nun unter Verwendung des Datentransfers an/von der Datenspeicherschnittstelle 55 als Beispiel beschrieben.
  • Wenn einer von dem Datenspeicher, dem Befehlsspeicher oder den IOUs auf einen Anschluss zugreifen möchte, prüft er, ob der Anschluss frei ist, indem er, wie in 3 gezeigt, eine Anfrage über die Anfragesignalleitung 70b an die Anschlußzuteilungseinheit PAU∅ sendet. Wenn der Anschluss frei ist, informiert die Anschlußschnittstelle die Schaltzuteilungseinheit 58 über die Anfragesteuerleitung 71a, dass eine Anfrage vorliegt. Wenn das Schaltnetzwerk 54 frei ist, informiert die Schaltzuteilungseinheit 58 den Anschluss über die Zuordnungssteuerleitung 70a und den Master, z. B. die Datenspeicherschnittstelle 55, dass die Anfrage auf der Steuerleitung 71b zugeteilt worden ist.
  • Wenn es sich bei der Anfrage um eine Schreibanfrage handelt, prüft der Datenspeicherschnittstellenschaltkreis 55 die Buszuordnungssteuereinheit 172, um festzustellen, ob die MCU 50 dem MAU-Bus 25 zugeteilt ist. Wenn die MCU dem Bus 25 nicht zugeteilt ist, wird eine Anfrage nach dem Bus gestellt. Wenn der Bus zugeteilt worden ist, stellt die Anschlußzuteilungseinheit 171 eine Anfrage nach den Schaltbussen 140, 141. Nachdem ein Zugriff auf die Schaltbusse 140, 141 gewährt wurde, legt der Datenspeicherschnittstellenschaltkreis 55 die geeignete Adresse auf den Schaltbus SW_REQ 140 und legt zur gleichen Zeit die Schreibdaten auf den Schreibdatenbus SW_WD 141 und speichert sie in dem Schreibdaten-FIFO-Speicher (WDF) 131. Sobald die Daten in dem WDF sind, schreibt die MCU die Daten nachfolgend in die MAU. Der Zweck für die Absicherung, dass der Bus zugeteilt ist, bevor die Schreibdaten an den Anschluss gesendet werden, liegt darin, dass die MCU den WDF dann nicht überprüfen muss, wenn eine Erkundungsanfrage von einem externen Prozessor vorliegt. Eine Überprüfung nach modifizierten Daten verbleibt deshalb nur für den Speicher.
  • Wenn die Anfrage eine Leseanfrage ist, und der Anschluss sowie das Schaltnetzwerk, wie oben beschrieben, als verfügbar festgestellt werden, empfängt die Anschlußschnittstelle die Adresse von der anfragenden Einheit über den SW_REQ-Bus und teilt sie, unter Verwendung des Zuteilers, dem MAU-Bus 9 zu. Der MAU-Zuteiler informiert den Anschluss, dass der MAU-Bus ihr zugeteilt wurde, bevor der Bus tatsächlich benutzt werden kann. Die Anfrage wird dann durch den Schalter an den Anschluss übertragen. Wenn der MAU-Adressbus 9 frei ist, wird die Adresse auf den MAU-Adressbus gelegt. Der Anschluss weiß bereits vor der Zeit, wann Daten empfangen werden. Es fragt den Schaltumkehrdatenbus an, so dass dieser verfügbar ist, wenn die Daten zurückkehren, sofern er nicht belegt ist. Wenn der Bus frei ist, legt der Anschluss die Lesedaten auf den Bus, die dann von der Datenspeicher-, der Befehlsspeicher- oder der I/O-Schnittstelle aufgenommen und an ihre zugeordnete Anfrageeinheit gegeben werden.
  • Wenn der Daten/Befehlsspeicher 51, 52 eine Anfrage nach einer I/O-Adresse stellt, übermitteln die Daten/Befehlsspeicherschnittstellen 55, 56 die Anfrage über den An fragebus SW_REQ an die I/O-Schnittstelleneinheit 57. Wenn die I/O-Schnittstelleneinheit 57 verfügbare Einträge in ihrer Schlange zum Speichern der Anfragen aufweist, wird sie die Anfrage über die Steuersignalleitung 90 an die Schaltzuteilungseinheit 58 übermitteln. Noch einmal, wenn das Schaltnetzwerk 54 frei ist, informiert die Schaltzuteilungseinheit 58 die Daten/Befehlsspeicherschnittstelle 55, 56, so dass sie die Adresse auf den Adreßbus SW_REQ setzen kann und, wenn es sich um eine Schreibanfrage handelt (nur Datenspeicher), die Schreibdaten für einen Transfer an die IOU auf den Schreibdatenbus SW_WD legen kann. Ähnlich, wenn die Anfrage von der Daten/Befehlsspeicherschnittstelle 55, 56 eine Leseanfrage ist, werden die Lesedaten von der I/O-Schnittstelle 57 über den Schaltnetzwerk-54-lesedatenbus SW_RD übertragen und den Daten/Befehlsspeicherschnittstellen 55, 56 für einen Transfer an den Daten/Befehlsspeicher 51, 52 zugeführt.
  • Bezugnehmend auf 4 werden dort weiterhin gemäß der vorliegenden Erfindung in den Anschlußschnittstellen und Speichern Test- und Einstell-(TS)überbrückungsschaltkreise, allgemein jeweils als 160 und 168 bezeichnet, bereitgestellt, zum Überwachen, z. B. Erkunden von Semaphorenadressen auf dem MAU-Adressbus 9. Wie noch gesehen werden wird, verringern die Schaltkreise 160, 168 die von einer Spinverriegelung für eine Semaphore verbrauchten Speicherbandbreite.
  • In den Test- und Einstellschaltkreisen 160, 168 wird ein Erkundungsadressgenerator 161, ein TS inhaltsadressierbarer Speicher (CAM)162, ein Flip-Flop 163 sowie Multiplexer 164 und 165 bereitgestellt.
  • Eine Semaphore ist eine Fahne oder ein Zeichen, dass an einer adressiebaren Stelle im Speicher gespeichert ist, um einen Zugriff auf bestimmte Regionen des Speichers oder andere adressierbare Ressourcen zu steuern. Wenn eine CPU auf eine Region eines Speichers zugreift, der eine Semaphore zugeordnet ist, und z. B. nicht wünscht, dass auf diese Speicherregion von irgendeiner anderen CPU zugegriffen wird, plaziert die zugreifende CPU lauter 1'en in die Semaphore. Wenn dann eine CPU versucht, auf die Region zuzugreifen, prüft sie zunächst die Semaphore. Wenn sie feststellt, dass die Semaphore nur 1'en aufweist, wird der zweiten CPU ein Zugriff verweigert. Bis dahin würde die zweite CPU wiederholt Anfragen nach einem Zugriff ausgegeben haben und ihr könnte der Zugriff wiederholt verweigert worden sein, was in einer sog. "Spinverriegelung für eine Semaphore" resultiert. Das Problem mit einer Spinverriegelung für eine Semaphore liegt darin, dass sie einen übermäßig großen Betrag von Speicherbandbreite verwendet, weit für jede Anfrage nach einem Zugriff die anfragende CPU einen Lese- und Schreibvorgang ausführen muss.
  • Die Test- und Einstellüberbrückungsschaltkreise 160, 168 gemäß 4 bilden eine Implementierung eines einfachen Algorithmusses, der einen Verbrauch von Speicherbandbreite aufgrund von Spinverriegelung für eine Semaphore verringert.
  • Während des Betriebes, wenn eine CPU, oder genauer, ein Prozeß in einem Prozessor als erster eine Anfrage nach einem Zugriff auf eine mit einer Semaphore verbundenen Speicherregion durch Ausgeben eines Lade- und Einstellbefehls, z. B. eines vorgegebenen, mit einer Anfrage nach einem Zugriff auf eine Semaphore verbundenen Befehls, stellt, greift die CPU als erstes auf die Semaphore zu und speichert die Adresse der Semaphore in den CAM 162. Mehrere Lade- und Einstellbefehle können in mehreren Einträgen in dem CAM 162 resultieren. Wenn die Semaphore lauter 1'ein ($FFFFs) enthält, werden die 1'en umgekehrt, was bedeutet, dass ein Zugriff verweigert wird. Wenn ein anderer Prozeß dann wieder nach der Semaphore fragt, überprüft er deren CAM. Wenn sich die Adresse der nachgefragten Semaphore noch in dem CAM befindet, weiß die CPU, dass die Semaphore noch nicht von einem anderen Prozessor/Prozeß freigegeben wurde und deshalb besteht kein Bedarf für eine Spinverriegelung der Semaphore. Statt dessen empfängt die MCU lauter 1'en (Semaphore ist gesperrt) und die Semaphore wird von dem Speicher nicht nachgefragt; daher wird keine Speicherbandbreite unnötig verwendet. Auf der anderen Seite, wenn sich die Semaphorenadresse nicht in dem CAM befindet, bedeutet dies, dass die Semaphore zuvor nicht nachgefragt wurde oder dass sie freigegeben wurde.
  • Der MAU-Bus stellt keine Byteadressen bereit. Das CAM muss gelöscht werden, wenn die Semaphore freigegeben wird. Das CAM wird gelöscht, wenn ein Schreibbefehl in irgendeinen Teil des kleinsten erfaßbaren Speicherblocks, der die Semaphoren einschließt, durch irgendeinen Prozessor an dem MAU-Bus ausgeführt wird. Die aktuelle Blockgröße beträgt 4 oder 8 Bytes. Auf diese Weise wird der CAM niemals die Adresse einer gelöschten Semaphore halten, obwohl der CAM gelöscht sein kann, wenn die Semaphore nicht durch einen Schreibbefehl für eine andere Stelle in dem Speicherblock gelöscht wurde. Die Semaphore wird gelöscht, wenn irgendein Prozessor etwas anderes als lauter 1'en in sie hinein schreibt.
  • Wenn durch einen Test- und Einstellbefehl auf eine Semaphore zugegriffen wird, nachdem ein Schreiben in den Speicherblock, der die Semaphore enthält, aufgetreten ist, wird wieder auf den Speicher zugegriffen. Wenn die Semaphore gelöscht wurde, wird der gelöschte Wert an die CPU zurückgeführt und der CAM wird wieder mit der Adresse besetzt. Auch wenn die Semaphore nicht gelöscht oder wieder verriegelt wurde, wird der CAM auch mit der Semaphorenadresse geladen, aber der verriegelte Wert wird an die CPU zurückgeführt.
  • Während des Betriebs des Schaltkreises 160 gemäß 4, erkundet der Schaltkreis 160 den MAU-Adressbus 9 und verwendet die darauf entdeckten Adressignale, um in dem Adressgenerator 161 eine entsprechende Erkundungsadresse zu erzeugen, die dann über die Leitung 169 an den CAM 162 gesendet wird und mit dessen Inhalten vergleichen wird. Wenn ein Treffer vorliegt, d. h. eine Übereinstimmung mit einer der Eintragungen in dem CAM 162, wird der Eintrag in dem CAM 162 gelöscht. Wenn z. B. von einem Datenspeicher eine Lade- und Einstellanfrage an die MCU gerichtet wird, vergleicht der Datenspeicherschnittstellenschaltkreis die Adresse mit den Eintragungen in dem CAM. Wenn ein Treffer in dem CAM 162 vorliegt, wird die ID in dem Register 163 in der Speicherschnittstelle zwischengespeichert und diese ID sowie alle 1'en ($ FFFF) werden durch die Einrichtungen der Multiplexer 164 und 165 an die Speicherschnittstelle zurückgeführt.
  • Das Erkunden von den Adressen und die darauf basierende Erzeugung einer Erkundungsadresse in dem Erkundungsadressengenerator 161 für einen Vergleich in dem CAM 162 schließt sich ohne Krankheitseffekt an, obwohl die auf dem MAU Adreßbus 9 erscheinenden Adressen zu nichtgeteilten Speicherbereichen gehören. Der Erkundungsadressgenerator 161 erzeugt typischerweise unter Verwendung der MAU Steuersignale RAS, CAS und der BKST START MAU Steuersignale auf dem Steuersignalbus 11 eine Speicherblockadresse (höherwertigere Bits) aus den 11 Bits der MAU Zeilen- und Spaltenadressen, die auf dem MAU Adreßbus 9 erscheinen.
  • Bezugnehmend auf 5 wird dort in Übereinstimmung mit einem anderen Aspekt der vorliegenden Erfindung ein Schaltkreis, allgemein als 170 bezeichnet, zum Bereitstellen einer Speicherkohärenz bereitgestellt. Speicherkohärenz ist notwendig, um sicherzustellen, dass in einer Multiprozessorumgebung der Master und die Slaveeinrichtungen, z. B. die CPU's, alle die aktuellsten Daten zur Verfügung haben.
  • Außerhalb des Chips, der den Schaltkreis 170 umfasst, ist der Zuteiler 6, der Speicher 7 und der MAU Adreßbus 9, der MAU Steuerbus 11 und der Multiprozessorsteuerbus 10 bereitgestellt. In dem Schaltkreis 170 gibt es eine Anschlußzuteilungseinheitschnittstelle 171, eine Buszuteilungssteuereinheit 172, eine Multiprozessorsteuerung 173 und den Erkundungsadressgenerator 161 gemäß 4. Die Datenspeicherschnittstelle 57 ist über die Einrichtungen eines Paares von Steuersignalbussen 174 und 157 sowie eines Erkundungsadressbusses 176 an die Multiprozessorsteuerung 173 angeschlossen. Die Befehlsspeicherschnittstelle 56 ist über die Einrichtungen eines Paares von Steuersignalbussen 177 und 178 sowie den Erkundungsadressbus 176 an die Multiprozessorsteuerung 173 angeschlossen. Der Erkundungsadressgenerator 161 ist über die Einrichtung eines Steuersignalbusses 179 an die Multiprozessorsteuerung 173 angeschlossen. Die Multiprozessorsteuerung 173 ist weiterhin über die Einrichtung eines Steuersignalbusses 180 an den Multiprozessorsteuerbus 10 und über einen Steuersignalbus 181 an die Buszuteilungssteuerungseinheit 172 angeschlossen. Die Anschlußzuteilungseinheitschnittstelle 171 ist über einen Steuersignalbus 182 an die Buszuteilungssteuer einheit 172 angeschlossen. Die Buszuteilungssteuereinheit 172 ist über einen Buszuteilungssteuerbus 183 an den Zuteiler 6 angeschlossen. Der Erkundungsadressengenerator 161 ist über die Adress- und Steuerbusse 14 und 16 ebenfalls jeweils an den MAU Adreßbus 9 und den MAU Steuerbus 11 angeschlossen.
  • Eine Anfrage von einem Speicher wird ein Attribut mit sich tragen, welches anzeigt, ob es für einen geteilten Speicher gemacht ist. Wenn es für einen geteilten Speicher gemacht ist, sendet die Anschlußschnittstelle ein Teilungssignal SHARED_REQ an den Multiprozessorsteuersignal-(MCS)bus 10 aus. Wenn andere CPUs das Teilungssignal auf dem MCS Bus 10 entdecken, beginnen sie, den MAU ADDR Bus 9 zu inspizieren, um die Erkundungsadresse zu bekommen.
  • Erkunden, wie oben kurz beschrieben, ist das Speicherkohärenzprotokoll, wobei die Steuerung an jeden Speicher an einem geteilten Speicherbus verteilt ist, und wobei alle Speichersteuerungen (CCUs) den Bus abhören oder erkunden, um festzustellen, ob sie eine Kopie des geteilten Speicherblocks haben oder nicht. Erkunden ist deshalb der Prozeß, wobei eine Slave MCU alle Transaktionen auf dem Bus überwacht, um ihn auf von dem Master MCU ausgegebene Lese/Schreibanfragen hin zu überprüfen. Die Hauptaufgabe der Slaves MCU besteht darin, den Bus zu erkunden, um festzustellen, ob er irgendwelche neuen Daten, z. B. zuvor empfangene ungültige Daten empfangen muss, oder ob er die neuesten Daten, z. B. als Auswirkung eines Eingriffs, an den Master MCU senden muss.
  • Wie unten weiter beschrieben wird, ist der Multiprozessorsteuerschaltkreis 173 gemäß 5 vorgesehen, um eine Ungültigkeit, einen Eingriff und Erkundungstreffersignale von dem Speicher und anderen Prozessoren zu bearbeiten und um Erkundungstreffersignale (SNP_HIT) und Eingriffssignale (ITV_REQ) auf dem Multiprozessorsteuersignalbus 180 zu erzeugen, wenn Erkundungstreffer und Eingriff/Ungültigkeit angezeigt werden, wie unten weiter beschrieben wird.
  • Die Buszuteilungssteuereinheit 172 gemäß 5 entscheidet für den MAU Bus bei jeder normalen Lese- oder Schreiboperation. Sie wickelt darüber hinaus die Zutei lung für den MAU Bus auch im Falle eines Ereignisse von Eingriff/Ungültigkeit ab und verbindet ihn direkt mit den Buszuteilungssteuersignalanschlüssen, welche direkt zu dem externen Buszuteiler 6 führen.
  • Die Betriebe des Eingriffs und der Ungültigkeit, die die oben beschriebene Speicherkohärenz bewirken, werden nun im Hinblick auf Leseanfragen, Schreibanfragen und Leseanfragen mit der Absicht zur Veränderung geschrieben, welche von einer masterzentralen Verarbeitungseinheit (MSTR CPU) ausgegeben werden.
  • Wenn die MSTR CPU eine Leseanfrage ausgibt, legt sie eine Adresse auf den Speicherfeldeinheit-(MAU)adreßbus 9. Die Slave (SLV) CPU's erkunden die Adressen auf dem MAU Bus 9. Wenn eine SLV CPU Daten von der adressierten Speicherstelle in ihrem Speicher hat, welche modifiziert worden sind, gibt die Slavespeichersteuereinheit (SLV CCU) ein Eingriffssignal (ITV) an den Multiprozessorsteuerbus 10 aus, welches anzeigt, dass sie frische, d.h. modifizierte Daten besitzt. Der MSTR gibt, nachdem er das ITV Signal entdeckt hat, den Bus auf und die SLV CCU schreibt die frischen Daten in den Hauptspeicher, z. B. die MAU 7. Wenn die durch den Master MSTR nachgefragten Daten nicht von der MSTR Speichersteuereinheit (CCU) empfangen werden, verwirft die MSTR MCU die nachgefragten Daten und bekräftigt erneut ihre Anfrage nach Daten von der MAU. Nachdem die nachgefragten Daten an die MSTR CCU übermittelt wurden, weist die MSTR MCU die MSTR CCU (oder die IOU Steuerung, wenn eine IOU der MSTR ist) an, die Daten zu verwerfen. Die MSTR MCU gibt dann erneut ihre Leseanfrage aus, nachdem der Slave den Hauptspeicher aktualisiert hat. Zwischenzeitlich hält der Anschlußschnittstellenschaltkreis die Leseanfrage des Masters zurück, während der Slave die modifizierten Daten zurück in den Speicher schreibt. Danach wird die Leseanfrage ausgeführt.
  • Wenn der MSTR eine Schreibanfrage ausgibt, plaziert er eine Adresse auf dem Speicherfeldeinheit-(MAU)adreßbus 9 und wenn eine Slave CCU eine Kopie der ursprünglichen Daten von dieser Adresse in ihrem Speicher hat, wird die Slave CCU die entsprechenden Daten in ihrem Speicher ungültig machen, z. B. verwerten.
  • Wenn der MSTR eine Leseanfrage mit der Absicht zur Veränderung ausgibt, plaziert er eine Adresse auf dem Speicherteldeinheit-(MAU)adreßbus 9 und wenn eine Slave MCU die von dem Master (MSTR) auf dem Adreßbus plazierte Adresse hat, wird eine von zwei möglichen Aktionen stattfinden:
    • 1. Wenn die SLV CCU die Daten, die den von dem MSTR adressierten Daten entsprechen, modifiziert hat, wird der SLV ein ITV Signal ausgeben, und der MSTR wird den Bus in Ansprache darauf aufgeben, und der SLV CCU gestatten, die modifizierten Daten in den Speicher zu schreiben. Diese Operation entspricht der oben beschriebenen Eingriffsoperation.
    • 2. Wenn der SLV unveränderte Daten besitzt, die den von dem MSTR adressierten Daten entsprechen, wird der SLV seine Daten ungültig machen, z. B. verwerfen. Diese Operation entspricht der oben beschriebenen Ungültigkeitsoperation.
  • Bezugnehmend auf 6 wird dort gemäß einem anderen Aspekt der vorliegenden Erfindung ein Schaltkreis, der im allgemeinen als 190 bezeichnet wird, bereitgestellt, der für einen Zeilenübereinstimmungsvergleich verwendet wird, um die Latenzzeit eines Speichers zu verringern. In dem Schaltkreis 190 gibt es einen Vergleicher 191, einen Signalspeicher 192 und ein Multiplexerpaar 193 und 194.
  • Die Aufgabe des Zeilenübereinstimmungsvergleichers besteht darin, festzustellen, ob die aktuelle Anfrage dieselbe Zeilenadresse wie eine vorhergehende Anfrage aufweist. Wenn sie dies tut, braucht der Anschluss nicht die Zeitstrafe für die Entkräftigung der RAS auf sich zu nehmen. Zeilenübereinstimmung wird hauptsächlich bei DRAMs verwendet, aber es kann auch für SRAM oder für ROMs verwendet werden, so dass die MAU nicht in den oberen, z. B. Zeilenbits der neuen Adresse gespeichert werden muss, weil ROM- und SRAM-Zugriffe die Adressen an die MAU in hohen und niedrigen Adressegmenten weiter leiten, in ähnlicher Weise wie dies DRAMs passiert.
  • Während des Betriebs des Zeilenübereinstimmungsschaltkreises gemäß 6 wird die Zeilenadresse inklusive der entsprechenden Feldauswahlbits der Adresse in dem Speicher 192 durch die Einrichtung des Multiplexers MOX 193 gespeichert. Jedesmal, wenn eine neue Adresse auf dem Schaltnetzwerkadressbus SW_REQ erscheint, wird die Adresse durch den neuen Anfragemultiplexer MUX 194 geleitet und in dem Vergleicher 191 mit der vorhergehenden Anfrage verglichen. Wenn eine Zeilenübereinstimmung vorliegt, wird an dem Ausgang des Vergleichers 191 ein Signal erzeugt und über die Einrichtung der Signalleitung 195, die ein Teil des Busses 70 ist, an die Anschlußschnittstelle übertragen. Die Zeilenübereinstimmung wird die Anschlußschnittstelle von einer Entkräftigung der RAS bewahren, wodurch RAS Zykluszeit eingespart wird.
  • Der Multiplexer MUX 193 wird dazu verwendet, die Zeilenadresse aus der Schaltanfrageadresse zu extrahieren. Die Umsetzung der Zeilenadresse in die Schaltadresse ist eine Funktion der DRAM Konfiguration (z. B. 1Mx1 oder 4Mx1 DRAMs) und der MAU Datenbusbreite (z. B. 32 oder 64 Bits).
  • Gemäß den 1 und 5 ist der externe Buszuteiler 6 eine Einheit, die vornehmlich aus einem programmierbaren Logikfeld (PLA) und einem Speicherelement besteht. Er akzeptiert Anfragen nach dem MAU Bus von verschiedenen CPUs, entscheidet aufgrund eines softwareselektierbaren dynamischen oder festen Prioritätsschemas, welcher der CPUs der Bus zuerteilt werden soll, und gibt die Erteilung an die geeignete CPU aus. Das Speicherelement ist vorgesehen, um zu Speichern, welcher CPU der Bus zuletzt zuerteilt wurde, so dass entweder die dynamische oder flexible Priorität so wie die feste oder Rotationspriorität implementiert werden kann.
  • Unter Bezugnahme auf 7 wird nun die dynamische Schalt- und Anschlußzuteilung beschrieben, wie sie in einer Muitiprozessorumgebung gemäß der vorliegenden Erfindung verwendet wird.
  • Wie oben beschrieben, gibt es drei Master und zwei Ressourcen, die einer MCU dienen. Die drei Master sind der Datenspeicher, der Befehlsspeicher und die IOU.
  • Die beiden Ressourcen, z. B. Slaves, sind die Speicheranschlüsse und die IOU. Wie festgestellt wird, kann die IOU beides sein, sowohl ein Master wie auch eine Ressource/Slave.
  • Gemäß der vorliegenden Erfindung werden zwei verschiedene Zuteilungen vorgenommen. Die eine betrifft die Zuteilung der Ressourcen der Speicheranschlüsse (Anschluss 0 bis Anschluss 5) und die andere betrifft die Zuteilung der Ressourcen der Schaltnetzwerkbusse SW_REQ und SW_WD.
  • Mehrere Geräte können gleichzeitig eine Anfrage nach Daten aus dem Hauptspeicher stellen. Dies sind der Daten- und der Befehlsspeicher sowie die IOU. Ein Prioritätsschema, wonach jeder Master mit einer gewissen Priorität ausgestattet ist, wird verwendet, so dass Anfragen von "wichtigeren" oder "eiligeren" Einrichtungen so bald wie möglich bedient werden. Wie auch immer, ein absolut festes Zuteilungsschema wird aufgrund der Möglichkeit des Aushungerns von Einrichtungen mit geringer Priorität nicht bevorzugt. Statt dessen wird ein dynamisches Zuteilungsschemaimplementiert, welches verschiedenen Einrichtungen während des Betriebes verschiedene Prioritäten zuordnet. Dieses dynamische Zuteilungsschema wird durch die folgenden Faktoren beeinflußt:
    • 1. Die intrinsische Priorität der Einrichtung.
    • 2. Es gibt jetzt eine Zeilenübereinstimmung zwischen einer nachgefragten Adresse und der Adresse einer zuvor bedienten Anfrage.
    • 3. Einer Einrichtung wurde eine Bedienung zu häufig verweigert.
    • 4. Der Master wurde zu häufig bedient.
  • Wie in 7 dargestellt, wird das Prioritätsschema für Anfragen an den Speicheranschluss wie folgt verwendet.
  • Jeder Anfrage von einer Einrichtung hat eine intrinsische Priorität. Die IOU kann eine hohe oder normale Priorität beanspruchen, gefolgt von dem Datenspeicher und dann von dem Befehlsspeicher. Wie auch immer, eine Eingriffsanfrage (ITV) von einem Datenspeicher hat jedoch die höchste Priorität von allen.
  • Eingabe-/Ausgabe-Anfragen mit besonders hoher Priorität können erzeugt werden. Diese Priorität ist für eine Verwendung bei Echtzeit-Eingabe-/Ausgabeperipheriegeräten gedacht, welche auf Speicher mit geringer Speicherlatenzzeit zugreifen müssen. Diese Anfragen können sich über alle anderen Anfragen außer über Eingriffszyklen und Zeilenübereinstimmung hinwegsetzen, wie in 7 gezeigt.
  • Die intrinsische Priorität der verschiedenen Einrichtungen wird durch mehrere Faktoren, wie verweigerte Bedienung, zu viele Ein- und Ausgaben, sowie eine Zeilenübereinstimmung verändert. Jedesmal wenn einer Einrichtung die Bedienung verweigert wird, wird ein Zählerstand erniedrigt. Wenn der Zähler 0 erreicht hat, wird die Priorität der Einrichtung auf einen Prioritätspegel, der VERWEIGERTE PRIORITÄT genannt wird, erhöht. Diese Zähler können mit irgendeinem programmierbaren Wert bis zu einem Maximalwert von 15 geladen werden. Wenn der Zähler einmal 0 erreicht hat, wird ein VERWEIGERUNGSBIT gesetzt, welches endgültig dann gelöscht wird, wenn die abgewiesene Einrichtung bedient wird. Dieses Verfahren der Erhöhung der Priorität einer Einrichtung, der eine Bedienung verweigert wurde, verhindert ein Aushungern. Es soll festgestellt werden, dass eine Priorität aufgrund einer verweigerten Bedienung nicht an die IOU vorgegeben wird, weil der Pegel der intrinsischen Priorität der IOU selber schon hoch ist.
  • Weil die IOU intrinsisch bereits eine Einrichtung mit hoher Priorität ist, ist es auch erforderlich, einen Zähler zu haben, der sie davor bewahrt, ein Anschlußschwein zu sein. Jedesmal wenn der IOU die Benutzung des Anschlusses zuerteilt wird, wird ein Zähler dekrementiert. Wenn der Zähler einmal 0 erreicht hat, wird die IOU so behandelt, als habe sie den Bus zu häufig benutzt, und der Prioritätspegel der IOU wird verringert. Das Absenken des Prioritätspegels der IOU bezieht sich nur auf Anfragen mit normaler Priorität und nicht auf Eingabe-/Ausgabe-Anfragen mit hoher Priorität. Wenn einer IOU die Benutzung eines Anschlusses für einen Anfragezyklus nicht zu erteilt wird, wird das Schweineprioritätsbit gelöscht.
  • Ein anderer Faktor, der die intrinsische Priorität der Anfrage verändert, ist die Zeilenübereinstimmung. Zeilenübereinstimmung wird hauptsächlich für den Befehlsspeicher wichtig. Wenn eine Einrichtung eine Speicherstelle nachfragt, die dieselbe Zeilenadresse wie eine zuvor bediente Anfrage besitzt, wird die Prorität der anfragenden Einrichtung erhöht. Dies wird so gemacht, dass die RAS nicht neu bekräftigt zu werden braucht.
  • Wie auch immer, es gibt eine Grenze, wodurch Zeilenübereinstimmung erhalten bleiben kann. Wieder einmal wird ein Zähler mit einem programmierbaren maximalen Wert verwendet. Jedesmal, wenn eine Anfrage aufgrund einer Zeilenübereinstimmungspriorität bedient wird, wird der Zähler dekrementiert. Wenn der Zähler 0 erreicht hat, wird das Zeilenübereinstimmungsprioritätsbit gelöscht. Der Zähler wird dann wieder mit einem programmierbaren Wert vorgeladen, wenn ein neuer Master des Anschlusses benannt ist oder wenn keine Anfrage nach einer Zeilenübereinstimmung vorliegt. Die oben beschriebenen Zähler sind in der Schaltzuteilungseinheit 58 angeordnet.
  • Eine Schreibanfrage nach einem Speicheranschluss wird nur dann zuerteilt, wenn der Schreibdatenbus des Schalters SW_WD verfügbar ist. Wenn er nicht verfügbar ist, wird eine andere Anfrage ausgewählt. Die einzige Ausnahme besteht für das Eingriffssignal ITV. Wenn der SW_WD nicht verfügbar ist, wird keine Anfrage selektiert. Stattdessen wartet der Prozessor, bis der SW_WD frei ist und übermittelt dann die Anfrage an den Schaltzuteiler.
  • Das Zuteilungsschema für das Schaltnetzwerk 54 unterscheidet sich geringfügig von dem, welches für die Zuteilung eines Anschlusses verwendet wird. Die Schaltzuteilungseinheit 58 gemäß 3 benutzt zwei verschiedene, durch Software selektierbare Zuteilungsschemata, wenn sie eine Zuteilung für einen Anschluss vornimmt:
    • 1. Slavepriorität bei der die Priorität auf dem Slave oder auf der anfragenden Einrichtung (nämlich dem Speicher -oder IOU-Anschluss) beruht, und
    • 2. Masterpriorität, wobei die Priorität auf dem Master oder der anfragenden Einrichtung (nämlich der IOU, dem Daten- und Befehlsspeicher) beruht.
  • Bei dem Slaveprioritätsschema wird die Priortät immer den Speicheranschlüssen in einem Rotationsverfahren, z. B. zuerst den Speicheranschlüssen 0, 1, 2... und dann der IOU zuerteilt. Im Gegensatz dazu, wird bei dem Masterprioritätsschema die Priorität zunächst an die IOU und dann an den Daten- und Befehlsspeicher gegeben. Selbstverständlich kann es unter bestimmten Umständen notwendig oder vorteilhaft sein, die höchste Priorität bei der Masterpriorität an eine ITV Anfrage zu vergeben und es kann ebenfalls notwendig oder besser sein, dem Befehlsspeicher eine hohe Priorität zuzuweisen, wenn der Vorabbefehlspuffer bald leer wird. In jedem Fall ist eine Software verfügbar, um das verwendete Prioritätsschema so einzustellen, dass es mit den verschiedenen Betriebsbedingungen in Einklang steht.
  • Die dynamische Speicherauffrischung basiert ebenfalls auf einem Prioritätsschema. Ein an eine Zustandsmaschine angeschlossener Zähler wird dazu verwendet, darüber zu informieren, wie viel Zyklen zwischen den Auffrischungen verstrichen sind, z. B. die Häufigkeit, mit der eine Auffrischung nachgefragt wird und verweigert wurde, weil der MAU Bus belegt war. Wenn der Zähler einen vorgegebenen Wert erreicht, z.B. überschreitet, erzeugt er ein Signal für den Anschluss, welches dem Anschluss mitteilt, dass er eine Auffrischung benötigt. Wenn der Anschluss damit beschäftigt ist, Anfragen von dem Daten- oder dem Befehlsspeicher oder der IOU zu bedienen, wird er die Auffrischungsanfrage nicht bedienen, bis er zuvor eine bestimmte Anzahl dieser Anfragen abgewiesen hat. Mit anderen Worten, eine Priorität für die Bedienung von Auffrischungsanfragen wird dann vergeben, wenn die Auffrischungsanfragen eine vorgegebene Anzahl von malen abgewiesen wurden. Wenn der Anschluss bereit ist, die Auffrischungsanfrage zu bedienen, informiert er die Buszuteilungssteuerungseinheit, um eine Zuteilung für den MAU Bus zu starten.
  • Eine Zeile wird vorzugsweise alle 15 μsec aufgefrischt und muss innerhalb einer vorgegebenen Periode, z. B. wenigstens alle 30 μsec aufgefrischt werden.
  • Wenn die RAS (bestätigt) nach unten geht und die CAS nicht bestätigt wird, wissen alle CPUs, dass eine Auffrischung stattgefunden hat. Weil alle CPUs darüber informiert sind, wann die Auffrischungen auftreten, kann irgendeine oder mehrere von ihnen eine Auffrischung beantragen, falls erforderlich.
  • Die Beschreibung oben beschreibt ein Multiprozessorsystem, das eine Vielzahl von Mikroprozessoren und eine Speicherfeldeinheit (MAU) umfasst. Jeder der Mikroprozessoren umfasst Master-Vorrichtungen und Slave-Vorrichtungen, wobei die Slave-Vorrichtungen einen Speicheranschluss oder mehrere Speicheranschlüssen, die an die Speicherfeldeinheit angeschlossen sind, und eine Speichersteuereinheit zum Steuern des Zugriffs auf die Speicherfeldeinheit über einen Speicheranschluss oder mehrere Speicheranschlüsse enthalten. Die MCU umfasst ein Schaltnetzwerk, das an einen Speicheranschluss oder mehrere Speicheranschlüsse angeschlossen ist, um die Daten zwischen den Master-Vorrichtungen und dem einen Speicheranschluss oder den mehreren Speicheranschlüssen zu übertragen, Schaltzuteilungseinrichtungen zum Zuteilen des Schaltnetzwerkes und Anschlusszuteilungseinrichtungen zum Zuteilen des einen Speicheranschlusses oder der mehreren der Speicheranschlüsse.
  • Der eine Speicheranschluss oder die mehreren Speicheranschlüsse können ein Einzelspeicheranschluss sein. Die MCU kann des Weiteren einen Speicheranschluss-Schnittstellenschaltkreis, eine Einrichtung zum Anschließen des Speicheranschluss-Schnittstellenschaltkreises zwischen die Speicheranschlüsse und das Schaltnetzwerk, eine Einrichtung zum Übertragen einer Anforderung zum Übertragen von Daten über den Speicheranschluss durch das Schaltnetzwerk und den Anschluss-Schnittstellenschaltkreis zu der Anschlusszuteilungseinrichtung und eine Einrichtung zum Übertragen eines Anschluss-Verfügbarkeitssignals von der Anschlusszuteilungseinrichtung zu der Schaltzuteilungseinrichtung, wann der Anschluss-Schnittstellenschaltkreis zum Bearbeiten der Anforderung frei ist, umfassen.
  • Die MCU kann des Weiteren einen Speicheranschluss-Schnittstellenschaltkreis und eine Einrichtung zum Anschließen des Speicheranschluss-Schnittstellenschaitkreises zwischen die Speicheranschlüsse und das Schaltnetzwerk umfassen.
  • Die Beschreibung oben offenbart ein Verfahren zum Übertragen von Daten in einer Mehrprozessorarchitektur, das in der Lage ist, mehrere Prozessoren zu unterstützen. Dieses Verfahren stellt eine dynamische Priorität für IOU.D-Cache- und I-Cache-Anforderungen als eine Funktion der intrinsischen Priorität, die jeder Vorrichtung zugewiesen ist, und einer Vielzahl von Faktoren, einschließlich des Vorhandenseins einer Zeilenübereinstimmung zwischen einer Anforderungsadresse und einer vorhergehenden Anforderung, der Anzahl von Malen, die einer Vorrichtung der Dienst verweigert wurde, und die Anzahl von Malen, die ein Dienst ohne Unterbrechung zugelassen wurde, bereit. Das Verfahren verfolgt des Weiteren die Anzahl von Malen, die jeder dieser Faktoren auftritt. Das Verfahren ändert des Weiteren die Priorität der Vorrichtungen als eine Funktion der intrinsischen Priorität und der Anzahl.

Claims (7)

  1. Mehrprozessorsystem (1), das umfasst: eine Vielzahl von Mikroprozessoren (2, 3, 4, 5, N); und eine Speicherfeldeinheit (MAU) (7); wobei jeder der Mikroprozessoren (2, 3, 4, 5, N) Master-Vorrichtungen und Slave-Vorrichtungen umfasst und die Slave-Vorrichtungen einen oder mehrere Speicheranschlüsse enthalten, die an die MAU (7) angeschlossen sind, und eine Speichersteuereinheit (MCU) (50) umfasst, die den Zugriff auf die MAU (7) über den einen oder die mehreren Speicheranschlüsse steuert, wobei: die MCU (50) umfasst: ein Schaltnetzwerk (54), das an den einen oder die mehreren Speicheranschlüsse angeschlossen ist, um Daten zwischen den Master-Vorrichtungen und dem einen oder den mehreren Speicheranschlüssen zu übertragen; eine Schaltzuteilungseinrichtung (58) zum Zuteilen an das Schaltnetzwerk (54); und eine Anschlusszuteilungseinrichtung (PAU O, PAU N) zum Zuteilen an den einen oder die mehreren Speicheranschlüsse.
  2. System nach Anspruch 1, wobei die Vielzahl von Mikroprozessoren zusätzlich eine Vielzahl von Datenquellen (30, 31, 32) enthält und die MCU des Weiteren umfasst: eine Einrichtung zum Übertragen einer Anforderung zum Übertragen von Daten zwischen einer der Datenquellen und der MAU (7) über einen der Speicheranschlüsse zu der Anschlusszuteilungseinrichtung; eine Einrichtung zum Übertragen eines Anschluss-Verfügbarkeitssignals von einem verfügbaren Anschluss zu der Schaltzuteilungseinrichtung (58), wenn der verfügbare Anschluss zum Bearbeiten der Anforderung verfügbar ist; und eine Einrichtung, die auf das Anschluss-Verfügbarkeitssignal anspricht und ein Schalt-Verfügbarkeitssignal von der Schaltzuteilungseinrichtung (58) zu der Anschlusszuteilungseinrichtung (PAU O, PAU N) überträgt, wenn das Schaltnetzwerk (54) zum Bearbeiten der Anforderung frei ist.
  3. System nach Anspruch 1, wobei der eine oder die mehreren Speicheranschlüsse ein einzelner Speicheranschluss ist/sind und wobei die MCU (50) des Weiteren umfasst: einen Speicheranschluss-Schnittstellenschaltkreis; eine Einrichtung zum Anschließen des Speicheranschluss-Schnittstellenschaltkreises zwischen die Speicheranschlüsse und das Schaltnetzwerk (54); eine Einrichtung (70b) zum Übertragen einer Anforderung zum Übertragen von Daten über den Speicheranschluss durch das Schaltnetzwerk und den Anschluss-Schnittstellenschaltkreis (55) zu der Anschlusszuteilungseinrichtung; eine Einrichtung (71a) zum Übertragen eines Anschluss-Verfügbarkeitssignals von der Anschlusszuteilungseinrichtung (PAU O) zu der Schaltzuteilungseinrichtung (58), wenn der Anschluss-Schnittstellenschaltkreis zum Bearbeiten der Anforderung frei ist; und eine Einrichtung (70a), die auf das Anschluss-Verfügbarkeitssignal anspricht und ein Schaltverfügbarkeitssignal für die Schaitzuteilungseinrichtung zu der Quelle der Anforderung und zu der Anschlusszuteilungseinrichtung (PAU O) überträgt, wenn das Schaltnetzwerk zum Bearbeiten der Anforderung frei ist.
  4. System nach einem der Ansprüche 1 bis 3, wobei der eine oder die mehreren Speicheranschlüsse ein einzelner Speicheranschluss ist und wobei die MCU (50) des Weiteren umfasst: einen Speicheranschluss-Schnittstellenschaltkreis (55, 56); und eine Einrichtung zum Anschließen des Speicheranschluss-Schnittstellenschaltkreises (55, 56) zwischen die Speicheranschlüsse und das Schaltnetzwerk (54).
  5. Mehrprozessorsystem nach Anspruch 4, wobei die Schaltzuteilungseinrichtung (58) eine Einrichtung zum Bereitstellen eines der folgenden Zuteilungsschemata enthält: a) eine Slave-Priorität, bei der Priorität auf einer Slave-Vorrichtung basiert und Priorität in einem Round-Robin-Verfahren stets zuerst Speicheranschlüssen und dann einer Eingabe/Ausgabe-Einheit (IOU) (53) zugewiesen wird; und b) Master-Priorität, bei der Priorität auf einer Master-Vorrichtung basiert und Priorität der IOU (53) und dann dem Cache (49, 51, 53) zugewiesen wird.
  6. Mehrprozessorsystem nach Anspruch 5, wobei die höchste Priorität einer Eingriffsanforderung zugewiesen wird.
  7. Mehrprozessorsystem nach Anspruch 4, wobei die Mikroprozessoren jeweils zusätzlich einen Cache (49, 51, 52) und die IOU (53) enthalten und jede MCU des Weiteren umfasst: eine Einrichtung zum Übertragen einer Anforderung zum Übertragen von Daten zwischen dem Cache oder der IOU (53) und dem Speicheranschluss zu der Anschlusszuteilungseinrichtung (PAU O, PAU N); eine Einrichtung (71a) zum Übertragen eines Anschluss-Verfügbarkeitssignals von der Anschlusszuteilungseinrichtung (PAU O) zu der Schaltzuteilungseinrichtung (58), wenn der Speicheranschluss-Schnittstellenschaltkreis zum Bearbeiten der Anforderung frei ist; und eine Einrichtung (70a), die auf das Anschluss-Verfügbarkeitssignal anspricht und ein Schaltverfügbarkeitssignal von der Schaltzuteilungseinrichtung (58) zu der Anschlusszuteilungseinrichtung (PAU O) überträgt, wenn das Schaltnetzwerk zum Bearbeiten der Anforderung frei ist.
DE69233655T 1991-07-08 1992-07-07 Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren Expired - Lifetime DE69233655T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US726893 1991-07-08
US07/726,893 US5440752A (en) 1991-07-08 1991-07-08 Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU

Publications (2)

Publication Number Publication Date
DE69233655D1 DE69233655D1 (de) 2006-10-19
DE69233655T2 true DE69233655T2 (de) 2006-12-21

Family

ID=24920467

Family Applications (3)

Application Number Title Priority Date Filing Date
DE69233655T Expired - Lifetime DE69233655T2 (de) 1991-07-08 1992-07-07 Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren
DE69701078T Expired - Lifetime DE69701078T2 (de) 1991-07-08 1992-07-07 Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedener Prozessoren
DE69228521T Expired - Lifetime DE69228521T2 (de) 1991-07-08 1992-07-07 Mikroprozessorarchitektur mit der möglichkeit zur unterstützung mehrerer verschiedener prozessoren

Family Applications After (2)

Application Number Title Priority Date Filing Date
DE69701078T Expired - Lifetime DE69701078T2 (de) 1991-07-08 1992-07-07 Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedener Prozessoren
DE69228521T Expired - Lifetime DE69228521T2 (de) 1991-07-08 1992-07-07 Mikroprozessorarchitektur mit der möglichkeit zur unterstützung mehrerer verschiedener prozessoren

Country Status (8)

Country Link
US (9) US5440752A (de)
EP (3) EP0886225B1 (de)
JP (7) JP3557617B2 (de)
KR (1) KR100248902B1 (de)
AT (3) ATE177221T1 (de)
DE (3) DE69233655T2 (de)
HK (2) HK1012742A1 (de)
WO (1) WO1993001553A1 (de)

Families Citing this family (307)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69233493T2 (de) 1991-07-08 2005-07-28 Seiko Epson Corp. RISC-Prozessor mit erweiterbarer Architektur
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5440752A (en) * 1991-07-08 1995-08-08 Seiko Epson Corporation Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU
JPH07504773A (ja) * 1992-03-18 1995-05-25 セイコーエプソン株式会社 マルチ幅のメモリ・サブシステムをサポートするためのシステム並びに方法
WO1993020505A2 (en) 1992-03-31 1993-10-14 Seiko Epson Corporation Superscalar risc instruction scheduling
EP0638183B1 (de) * 1992-05-01 1997-03-05 Seiko Epson Corporation Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor.
JPH06161873A (ja) * 1992-11-27 1994-06-10 Fujitsu Ltd 主記憶に対する複数のアクセスポイントのハングアップ処理方式
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
EP1107111A3 (de) 1992-12-31 2002-02-06 Seiko Epson Corporation System und Verfahren zur Änderung der Namen von Registern
DE69323861T2 (de) * 1993-01-25 1999-10-07 Bull Hn Information Syst Multiprozessorsystem mit gemeinsamem Speicher
US6115547A (en) 1993-03-29 2000-09-05 Trilogy Development Group, Inc. Flash configuration cache
JP3619532B2 (ja) * 1993-11-08 2005-02-09 株式会社ルネサステクノロジ 半導体集積回路装置
GB2286265B (en) * 1994-01-26 1998-02-18 Advanced Risc Mach Ltd selectable processing registers
US5918242A (en) * 1994-03-14 1999-06-29 International Business Machines Corporation General-purpose customizable memory controller
US5748917A (en) * 1994-03-18 1998-05-05 Apple Computer, Inc. Line data architecture and bus interface circuits and methods for dual-edge clocking of data to bus-linked limited capacity devices
JPH086889A (ja) * 1994-06-20 1996-01-12 Fujitsu Ltd 入出力制御装置
US5832303A (en) * 1994-08-22 1998-11-03 Hitachi, Ltd. Large scale interconnecting switch using communication controller groups with multiple input-to-one output signal lines and adaptable crossbar unit using plurality of selectors
US5560016A (en) * 1994-10-06 1996-09-24 Dell Usa, L.P. System and method for dynamic bus access prioritization and arbitration based on changing bus master request frequency
US5623670A (en) * 1995-02-17 1997-04-22 Lucent Technologies Inc. Method and apparatus for crash safe enforcement of mutually exclusive access to shared resources in a multitasking computer system
US5867704A (en) * 1995-02-24 1999-02-02 Matsushita Electric Industrial Co., Ltd. Multiprocessor system shaving processor based idle state detection and method of executing tasks in such a multiprocessor system
JP3115820B2 (ja) * 1995-05-17 2000-12-11 松下電器産業株式会社 インターフェース装置、及びこれを用いたコンピュータ装置
US5754803A (en) 1996-06-27 1998-05-19 Interdigital Technology Corporation Parallel packetized intermodule arbitrated high speed control and data bus
US5799195A (en) * 1995-07-24 1998-08-25 Dell Usa, L.P. Structure and method for detecting occurrence of external events using semaphores
AU6452396A (en) * 1995-07-27 1997-02-26 Intel Corporation Protocol for arbitrating access to a shared memory area using historical state information
US6317803B1 (en) 1996-03-29 2001-11-13 Intel Corporation High-throughput interconnect having pipelined and non-pipelined bus transaction modes
US5911051A (en) * 1996-03-29 1999-06-08 Intel Corporation High-throughput interconnect allowing bus transactions based on partial access requests
US5905999A (en) * 1996-04-29 1999-05-18 International Business Machines Corporation Cache sub-array arbitration
US5745913A (en) * 1996-08-05 1998-04-28 Exponential Technology, Inc. Multi-processor DRAM controller that prioritizes row-miss requests to stale banks
US5845096A (en) * 1996-08-26 1998-12-01 Vlsi Technology, Inc. Adaptive arbitration mechanism for a shared multi-master bus
US6338109B1 (en) * 1996-08-30 2002-01-08 Cypress Semiconductor Corp. Microcontroller development system and applications thereof for development of a universal serial bus microcontroller
US5862355A (en) * 1996-09-12 1999-01-19 Telxon Corporation Method and apparatus for overriding bus prioritization scheme
US6385678B2 (en) * 1996-09-19 2002-05-07 Trimedia Technologies, Inc. Method and apparatus for bus arbitration with weighted bandwidth allocation
US6092229A (en) * 1996-10-09 2000-07-18 Lsi Logic Corporation Single chip systems using general purpose processors
US5974480A (en) * 1996-10-18 1999-10-26 Samsung Electronics Co., Ltd. DMA controller which receives size data for each DMA channel
US6513057B1 (en) 1996-10-28 2003-01-28 Unisys Corporation Heterogeneous symmetric multi-processing system
US6141351A (en) * 1996-12-20 2000-10-31 International Business Machines Corporation Radio frequency bus for broadband microprocessor communications
US5978379A (en) * 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
US5931924A (en) * 1997-04-14 1999-08-03 International Business Machines Corporation Method and system for controlling access to a shared resource that each requestor is concurrently assigned at least two pseudo-random priority weights
US5935234A (en) * 1997-04-14 1999-08-10 International Business Machines Corporation Method and system for controlling access to a shared resource in a data processing system utilizing pseudo-random priorities
US6052383A (en) * 1997-05-29 2000-04-18 3Com Corporation LAN to ATM backbone switch module
US5884051A (en) * 1997-06-13 1999-03-16 International Business Machines Corporation System, methods and computer program products for flexibly controlling bus access based on fixed and dynamic priorities
US6658447B2 (en) * 1997-07-08 2003-12-02 Intel Corporation Priority based simultaneous multi-threading
US6185646B1 (en) * 1997-12-03 2001-02-06 International Business Machines Corporation Method and apparatus for transferring data on a synchronous multi-drop
FR2778258A1 (fr) * 1998-04-29 1999-11-05 Texas Instruments France Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces
JPH11345165A (ja) * 1997-12-05 1999-12-14 Texas Instr Inc <Ti> アクセス待ち時間を減少するため優先度とバースト制御を使用するトラフィック・コントローラ
US6088751A (en) * 1998-02-12 2000-07-11 Vlsi Technology, Inc. Highly configurable bus priority arbitration system
US6789150B1 (en) * 1998-02-16 2004-09-07 Infineon Technologies A.G. Integrated circuit having arbitrated switching between busses
US6178486B1 (en) 1998-02-19 2001-01-23 Quantum Corporation Time allocation shared memory arbitration for disk drive controller
JPH11250005A (ja) * 1998-03-05 1999-09-17 Nec Corp バス制御方法、バス制御装置及びバス制御プログラムを記憶した記憶媒体
US6377581B1 (en) * 1998-05-14 2002-04-23 Vlsi Technology, Inc. Optimized CPU-memory high bandwidth multibus structure simultaneously supporting design reusable blocks
US6286083B1 (en) * 1998-07-08 2001-09-04 Compaq Computer Corporation Computer system with adaptive memory arbitration scheme
US6223239B1 (en) * 1998-08-12 2001-04-24 Compaq Computer Corporation Dual purpose apparatus, method and system for accelerated graphics port or system area network interface
US6249845B1 (en) 1998-08-19 2001-06-19 International Business Machines Corporation Method for supporting cache control instructions within a coherency granule
US6330632B1 (en) 1998-09-30 2001-12-11 Hewlett-Packard Company System for arbitrating access from multiple requestors to multiple shared resources over a shared communications link and giving preference for accessing idle shared resources
US6434649B1 (en) * 1998-10-14 2002-08-13 Hitachi, Ltd. Data streamer
US6728839B1 (en) * 1998-10-28 2004-04-27 Cisco Technology, Inc. Attribute based memory pre-fetching technique
US6233645B1 (en) 1998-11-02 2001-05-15 Compaq Computer Corporation Dynamically disabling speculative prefetch when high priority demand fetch opportunity use is high
US7430171B2 (en) 1998-11-19 2008-09-30 Broadcom Corporation Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost
US6389494B1 (en) 1998-12-30 2002-05-14 Emc Corporation System for interfacing a data storage system to a host utilizing a plurality of busses for carrying end-user data and a separate bus for carrying interface state data
US7117275B1 (en) 1999-01-04 2006-10-03 Emc Corporation Data storage system having separate data transfer section and message network
US7073020B1 (en) 1999-01-04 2006-07-04 Emc Corporation Method for message transfer in computer storage system
US6425060B1 (en) * 1999-01-05 2002-07-23 International Business Machines Corporation Circuit arrangement and method with state-based transaction scheduling
US6411218B1 (en) * 1999-01-22 2002-06-25 Koninklijke Philips Electronics N.V. Priority-encoding device selection using variable arbitrary rankings
DE19904084B4 (de) 1999-02-02 2008-12-11 Force Computers Gmbh Computer
US6639915B1 (en) * 1999-04-07 2003-10-28 Utstarcom, Inc. Method and apparatus for transmission of voice data in a network structure
US6427193B1 (en) 1999-05-18 2002-07-30 Advanced Micro Devices, Inc. Deadlock avoidance using exponential backoff
US6473837B1 (en) 1999-05-18 2002-10-29 Advanced Micro Devices, Inc. Snoop resynchronization mechanism to preserve read ordering
US6415360B1 (en) 1999-05-18 2002-07-02 Advanced Micro Devices, Inc. Minimizing self-modifying code checks for uncacheable memory types
US6266744B1 (en) 1999-05-18 2001-07-24 Advanced Micro Devices, Inc. Store to load forwarding using a dependency link file
US6393536B1 (en) 1999-05-18 2002-05-21 Advanced Micro Devices, Inc. Load/store unit employing last-in-buffer indication for rapid load-hit-store
US6473832B1 (en) 1999-05-18 2002-10-29 Advanced Micro Devices, Inc. Load/store unit having pre-cache and post-cache queues for low latency load memory operations
US7031302B1 (en) * 1999-05-21 2006-04-18 Broadcom Corporation High-speed stats gathering in a network switch
US6779036B1 (en) 1999-07-08 2004-08-17 International Business Machines Corporation Method and apparatus for achieving correct order among bus memory transactions in a physically distributed SMP system
US6467012B1 (en) 1999-07-08 2002-10-15 International Business Machines Corporation Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors
US6442597B1 (en) 1999-07-08 2002-08-27 International Business Machines Corporation Providing global coherence in SMP systems using response combination block coupled to address switch connecting node controllers to memory
US6718422B1 (en) 1999-07-29 2004-04-06 International Business Machines Corporation Enhanced bus arbiter utilizing variable priority and fairness
US6629220B1 (en) * 1999-08-20 2003-09-30 Intel Corporation Method and apparatus for dynamic arbitration between a first queue and a second queue based on a high priority transaction type
US6591348B1 (en) 1999-09-09 2003-07-08 International Business Machines Corporation Method and system for resolution of transaction collisions to achieve global coherence in a distributed symmetric multiprocessor system
US6725307B1 (en) 1999-09-23 2004-04-20 International Business Machines Corporation Method and system for controlling data transfers with physical separation of data functionality from address and control functionality in a distributed multi-bus multiprocessor system
US6587930B1 (en) * 1999-09-23 2003-07-01 International Business Machines Corporation Method and system for implementing remstat protocol under inclusion and non-inclusion of L1 data in L2 cache to prevent read-read deadlock
JP3843667B2 (ja) * 1999-10-15 2006-11-08 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US6611796B1 (en) * 1999-10-20 2003-08-26 Texas Instruments Incorporated Method and apparatus for combining memory blocks for in circuit emulation
FR2800551B1 (fr) * 1999-11-03 2002-01-04 St Microelectronics Sa Decodeur mpeg utilisant une memoire partagee
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US6457085B1 (en) 1999-11-04 2002-09-24 International Business Machines Corporation Method and system for data bus latency reduction using transfer size prediction for split bus designs
US6542949B1 (en) 1999-11-08 2003-04-01 International Business Machines Corporation Method and apparatus for increased performance of a parked data bus in the non-parked direction
US6684279B1 (en) 1999-11-08 2004-01-27 International Business Machines Corporation Method, apparatus, and computer program product for controlling data transfer
US6535941B1 (en) 1999-11-08 2003-03-18 International Business Machines Corporation Method and apparatus for avoiding data bus grant starvation in a non-fair, prioritized arbiter for a split bus system with independent address and data bus grants
US6523076B1 (en) 1999-11-08 2003-02-18 International Business Machines Corporation Method and apparatus for synchronizing multiple bus arbiters on separate chips to give simultaneous grants for the purpose of breaking livelocks
US7529799B2 (en) 1999-11-08 2009-05-05 International Business Machines Corporation Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system
US6516379B1 (en) 1999-11-08 2003-02-04 International Business Machines Corporation Method and apparatus for transaction pacing to reduce destructive interference between successive transactions in a distributed symmetric multiprocessor system
US6529990B1 (en) 1999-11-08 2003-03-04 International Business Machines Corporation Method and apparatus to eliminate failed snoops of transactions caused by bus timing conflicts in a distributed symmetric multiprocessor system
US6606676B1 (en) 1999-11-08 2003-08-12 International Business Machines Corporation Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system
US6662280B1 (en) 1999-11-10 2003-12-09 Advanced Micro Devices, Inc. Store buffer which forwards data based on index and optional way match
US7793076B1 (en) 1999-12-17 2010-09-07 Intel Corporation Digital signals processor having a plurality of independent dedicated processors
US6769046B2 (en) * 2000-02-14 2004-07-27 Palmchip Corporation System-resource router
US6892237B1 (en) 2000-03-28 2005-05-10 Cisco Technology, Inc. Method and apparatus for high-speed parsing of network messages
US6584513B1 (en) 2000-03-31 2003-06-24 Emc Corporation Direct memory access (DMA) transmitter
US7010575B1 (en) 2000-03-31 2006-03-07 Emc Corporation Data storage system having separate data transfer section and message network having bus arbitration
US6993621B1 (en) 2000-03-31 2006-01-31 Emc Corporation Data storage system having separate data transfer section and message network with plural directors on a common printed circuit board and redundant switching networks
US7003601B1 (en) 2000-03-31 2006-02-21 Emc Corporation Data storage system having separate data transfer section and message network with plural directions on a common printed circuit board
US7007194B1 (en) 2000-06-29 2006-02-28 Emc Corporation Data storage system having point-to-point configuration
US6584531B1 (en) * 2000-04-27 2003-06-24 Lsi Logic Corporation Arbitration circuit with plural arbitration processors using memory bank history
US6651130B1 (en) 2000-04-28 2003-11-18 Emc Corporation Data storage system having separate data transfer section and message network with bus arbitration
US6779071B1 (en) 2000-04-28 2004-08-17 Emc Corporation Data storage system having separate data transfer section and message network with status register
US6505269B1 (en) 2000-05-16 2003-01-07 Cisco Technology, Inc. Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system
US6725334B2 (en) * 2000-06-09 2004-04-20 Hewlett-Packard Development Company, L.P. Method and system for exclusive two-level caching in a chip-multiprocessor
US6668308B2 (en) * 2000-06-10 2003-12-23 Hewlett-Packard Development Company, L.P. Scalable architecture based on single-chip multiprocessing
JP2001356961A (ja) * 2000-06-13 2001-12-26 Nec Corp 調停装置
US7103041B1 (en) * 2000-06-30 2006-09-05 Marconi Intellectual Property (Ringfence), Inc. Optimization of number of transceivers used in a switch
GB2364867B (en) * 2000-07-17 2003-12-10 Advanced Risc Mach Ltd A data processing apparatus and slave interface mechanism for controlling access to a slave logic unit by a plurality of master logic units
US6804193B1 (en) * 2000-07-28 2004-10-12 Marconi Intellectual Property (Ringfence) Inc. Protected Ethernet backplane communication
KR100487542B1 (ko) * 2000-07-29 2005-05-03 엘지전자 주식회사 글로벌 버스의 버스 사용권 예약 중재방법
KR100644597B1 (ko) * 2000-08-05 2006-11-10 삼성전자주식회사 버스 시스템 및 그 커맨드 전달방법
US6594736B1 (en) * 2000-08-15 2003-07-15 Src Computers, Inc. System and method for semaphore and atomic operation management in a multiprocessor
CN100440183C (zh) 2000-09-06 2008-12-03 Nxp股份有限公司 处理器间通信系统
US6591385B1 (en) * 2000-09-11 2003-07-08 Agilent Technologies, Inc. Method and apparatus for inserting programmable latency between address and data information in a memory tester
US6901468B1 (en) * 2000-09-27 2005-05-31 Emc Corporation Data storage system having separate data transfer section and message network having bus arbitration
US20020062415A1 (en) * 2000-09-29 2002-05-23 Zarlink Semiconductor N.V. Inc. Slotted memory access method
US7752400B1 (en) * 2000-12-14 2010-07-06 F5 Networks, Inc. Arbitration and crossbar device and method
US7124224B2 (en) * 2000-12-22 2006-10-17 Intel Corporation Method and apparatus for shared resource management in a multiprocessing system
US7225320B2 (en) * 2000-12-28 2007-05-29 Koninklijke Philips Electronics N.V. Control architecture for a high-throughput multi-processor channel decoding system
US6492881B2 (en) * 2001-01-31 2002-12-10 Compaq Information Technologies Group, L.P. Single to differential logic level interface for computer systems
US6845504B2 (en) * 2001-02-08 2005-01-18 International Business Machines Corporation Method and system for managing lock contention in a computer system
US6742160B2 (en) * 2001-02-14 2004-05-25 Intel Corporation Checkerboard parity techniques for a multi-pumped bus
US20020133652A1 (en) * 2001-03-19 2002-09-19 Tai Quan Apparatus for avoiding starvation in hierarchical computer systems that prioritize transactions
US6889343B2 (en) 2001-03-19 2005-05-03 Sun Microsystems, Inc. Method and apparatus for verifying consistency between a first address repeater and a second address repeater
US6826643B2 (en) 2001-03-19 2004-11-30 Sun Microsystems, Inc. Method of synchronizing arbiters within a hierarchical computer system
US6877055B2 (en) 2001-03-19 2005-04-05 Sun Microsystems, Inc. Method and apparatus for efficiently broadcasting transactions between a first address repeater and a second address repeater
US7249242B2 (en) 2002-10-28 2007-07-24 Nvidia Corporation Input pipeline registers for a node in an adaptive computing engine
US7752419B1 (en) * 2001-03-22 2010-07-06 Qst Holdings, Llc Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US7653710B2 (en) 2002-06-25 2010-01-26 Qst Holdings, Llc. Hardware task manager
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US7962716B2 (en) 2001-03-22 2011-06-14 Qst Holdings, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US6836839B2 (en) 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US6577678B2 (en) 2001-05-08 2003-06-10 Quicksilver Technology Method and system for reconfigurable channel coding
CN1592900A (zh) * 2001-07-05 2005-03-09 皇家菲利浦电子有限公司 处理器集群
GB2379523B (en) * 2001-09-05 2003-11-19 3Com Corp Shared memory system including hardware memory protection
US7237016B1 (en) * 2001-09-07 2007-06-26 Palau Acquisition Corporation (Delaware) Method and system to manage resource requests utilizing link-list queues within an arbiter associated with an interconnect device
US7043569B1 (en) * 2001-09-07 2006-05-09 Chou Norman C Method and system for configuring an interconnect device
US20030088722A1 (en) * 2001-11-02 2003-05-08 David Price System and method for managing priorities in a PCI bus system
US7046635B2 (en) 2001-11-28 2006-05-16 Quicksilver Technology, Inc. System for authorizing functionality in adaptable hardware devices
US8412915B2 (en) 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
US6848015B2 (en) * 2001-11-30 2005-01-25 Hewlett-Packard Development Company, L.P. Arbitration technique based on processor task priority
US6986021B2 (en) 2001-11-30 2006-01-10 Quick Silver Technology, Inc. Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US7215701B2 (en) 2001-12-12 2007-05-08 Sharad Sambhwani Low I/O bandwidth method and system for implementing detection and identification of scrambling codes
US7403981B2 (en) 2002-01-04 2008-07-22 Quicksilver Technology, Inc. Apparatus and method for adaptive multimedia reception and transmission in communication environments
US6845417B2 (en) * 2002-01-09 2005-01-18 Hewlett-Packard Development Company, L.P. Ensuring fairness in a multiprocessor environment using historical abuse recognition in spinlock acquisition
US6807608B2 (en) * 2002-02-15 2004-10-19 International Business Machines Corporation Multiprocessor environment supporting variable-sized coherency transactions
US7849172B2 (en) * 2002-03-01 2010-12-07 Broadcom Corporation Method of analyzing non-preemptive DRAM transactions in real-time unified memory architectures
US7080177B2 (en) * 2002-03-01 2006-07-18 Broadcom Corporation System and method for arbitrating clients in a hierarchical real-time DRAM system
US7328414B1 (en) 2003-05-13 2008-02-05 Qst Holdings, Llc Method and system for creating and programming an adaptive computing engine
US7660984B1 (en) 2003-05-13 2010-02-09 Quicksilver Technology Method and system for achieving individualized protected space in an operating system
US6779092B2 (en) * 2002-05-15 2004-08-17 Hewlett-Packard Development Company, L.P. Reordering requests for access to subdivided resource
EP1376373B1 (de) * 2002-06-20 2006-05-31 Infineon Technologies AG Anordnung von zwei Geräten, verbunden durch einen Kreuzvermittlungsschalter
US8108656B2 (en) 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
US20040059879A1 (en) * 2002-09-23 2004-03-25 Rogers Paul L. Access priority protocol for computer system
JP4181839B2 (ja) * 2002-09-30 2008-11-19 キヤノン株式会社 システムコントローラ
US20040068607A1 (en) * 2002-10-07 2004-04-08 Narad Charles E. Locking memory locations
US7937591B1 (en) 2002-10-25 2011-05-03 Qst Holdings, Llc Method and system for providing a device which can be adapted on an ongoing basis
GB2395306B (en) * 2002-11-15 2006-02-15 Imagination Tech Ltd A configurable processor architecture
US8276135B2 (en) 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
US6985984B2 (en) * 2002-11-07 2006-01-10 Sun Microsystems, Inc. Multiprocessing systems employing hierarchical back-off locks
US7225301B2 (en) 2002-11-22 2007-05-29 Quicksilver Technologies External memory controller node
US7028147B2 (en) * 2002-12-13 2006-04-11 Sun Microsystems, Inc. System and method for efficiently and reliably performing write cache mirroring
US7302616B2 (en) * 2003-04-03 2007-11-27 International Business Machines Corporation Method and apparatus for performing bus tracing with scalable bandwidth in a data processing system having a distributed memory
US7213169B2 (en) * 2003-04-03 2007-05-01 International Business Machines Corporation Method and apparatus for performing imprecise bus tracing in a data processing system having a distributed memory
US7149829B2 (en) * 2003-04-18 2006-12-12 Sonics, Inc. Various methods and apparatuses for arbitration among blocks of functionality
CN100433623C (zh) * 2003-06-11 2008-11-12 硅斯托尔公司 串行高级技术附件(sata)交换机
US7526587B2 (en) * 2004-02-09 2009-04-28 Lsi Corporation Dual port serial advanced technology attachment (SATA) disk drive
US7539797B2 (en) * 2003-06-11 2009-05-26 Lsi Corporation Route aware Serial Advanced Technology Attachment (SATA) Switch
US7523235B2 (en) * 2003-06-11 2009-04-21 Lsi Corporation Serial Advanced Technology Attachment (SATA) switch
US6906961B2 (en) * 2003-06-24 2005-06-14 Micron Technology, Inc. Erase block data splitting
US7321964B2 (en) * 2003-07-08 2008-01-22 Advanced Micro Devices, Inc. Store-to-load forwarding buffer using indexed lookup
US7296105B2 (en) * 2003-10-03 2007-11-13 Sonics, Inc. Method and apparatus for configuring an interconnect to implement arbitration
US7665069B2 (en) * 2003-10-31 2010-02-16 Sonics, Inc. Method and apparatus for establishing a quality of service model
US8504992B2 (en) * 2003-10-31 2013-08-06 Sonics, Inc. Method and apparatus for establishing a quality of service model
US9087036B1 (en) 2004-08-12 2015-07-21 Sonics, Inc. Methods and apparatuses for time annotated transaction level modeling
US7103735B2 (en) * 2003-11-26 2006-09-05 Intel Corporation Methods and apparatus to process cache allocation requests based on priority
US7206922B1 (en) * 2003-12-30 2007-04-17 Cisco Systems, Inc. Instruction memory hierarchy for an embedded processor
US7783802B1 (en) 2004-02-09 2010-08-24 Lsi Corporation Serial advanced technology attachment (SATA) switch that toggles with power control to hard disk drive while avolding interruption to system
US7986630B1 (en) 2004-02-09 2011-07-26 Lsi Corporation High performance architecture for fiber channel targets and target bridges
JP4441286B2 (ja) * 2004-02-10 2010-03-31 株式会社日立製作所 ストレージシステム
KR100604835B1 (ko) * 2004-02-24 2006-07-26 삼성전자주식회사 프로토콜 변환중재회로, 이를 구비하는 시스템과 신호변환중재방법
US7191366B2 (en) * 2004-02-26 2007-03-13 International Business Machines Corporation Method and intelligent slave device transfer control unit for implementing seamless error resumption in a shared memory bus structure
EP1722010B1 (de) * 2004-03-05 2012-04-25 Kitz Corporation Verfahren zur verhinderung des auslaugens von nickel aus aus kupfer hergestellten wasser-kontakt einrichtungselementen, schutzfilmbildungsmittel zur verhinderung von nickelauslaugung und reinigungsmittel zur verhinderung von nickelauslaugung
US7269708B2 (en) * 2004-04-20 2007-09-11 Rambus Inc. Memory controller for non-homogenous memory system
US20050246463A1 (en) * 2004-04-29 2005-11-03 International Business Machines Corporation Transparent high-speed multistage arbitration system and method
US20050262281A1 (en) * 2004-05-21 2005-11-24 Nayak Prakash H Managing a shared resource
US7437364B1 (en) * 2004-06-30 2008-10-14 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US8561076B1 (en) * 2004-06-30 2013-10-15 Emc Corporation Prioritization and queuing of media requests
US8224964B1 (en) 2004-06-30 2012-07-17 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US8676922B1 (en) 2004-06-30 2014-03-18 Google Inc. Automatic proxy setting modification
US7200693B2 (en) * 2004-08-27 2007-04-03 Micron Technology, Inc. Memory system and method having unidirectional data buses
JP4617782B2 (ja) * 2004-09-01 2011-01-26 株式会社日立製作所 データ専用バスを有する無線機
US7739436B2 (en) * 2004-11-01 2010-06-15 Sonics, Inc. Method and apparatus for round robin resource arbitration with a fast request to grant response
US20060111886A1 (en) * 2004-11-23 2006-05-25 Mahesh Siddappa Method and system for modeling of a differential bus device
TWI296084B (en) * 2004-11-30 2008-04-21 Realtek Semiconductor Corp Bus arbiter, bus device, and bus arbitrating method
US20060130124A1 (en) * 2004-12-15 2006-06-15 Guard Insurance Group A Remote Communication System and Method Implementing a Session Server and One or More Object Servers
US7590744B2 (en) * 2004-12-15 2009-09-15 Guard Insurance Group Remote communication system and method implementing a session server and one or more object servers
US7263566B2 (en) 2004-12-30 2007-08-28 Qualcomm Incorporated Method and apparatus of reducing transfer latency in an SOC interconnect
US7752627B2 (en) * 2005-02-04 2010-07-06 Mips Technologies, Inc. Leaky-bucket thread scheduler in a multithreading microprocessor
US7681014B2 (en) * 2005-02-04 2010-03-16 Mips Technologies, Inc. Multithreading instruction scheduler employing thread group priorities
US7613904B2 (en) * 2005-02-04 2009-11-03 Mips Technologies, Inc. Interfacing external thread prioritizing policy enforcing logic with customer modifiable register to processor internal scheduler
US7664936B2 (en) * 2005-02-04 2010-02-16 Mips Technologies, Inc. Prioritizing thread selection partly based on stall likelihood providing status information of instruction operand register usage at pipeline stages
US7657883B2 (en) * 2005-02-04 2010-02-02 Mips Technologies, Inc. Instruction dispatch scheduler employing round-robin apparatus supporting multiple thread priorities for use in multithreading microprocessor
US7853777B2 (en) * 2005-02-04 2010-12-14 Mips Technologies, Inc. Instruction/skid buffers in a multithreading microprocessor that store dispatched instructions to avoid re-fetching flushed instructions
US7631130B2 (en) * 2005-02-04 2009-12-08 Mips Technologies, Inc Barrel-incrementer-based round-robin apparatus and instruction dispatch scheduler employing same for use in multithreading microprocessor
US7657891B2 (en) 2005-02-04 2010-02-02 Mips Technologies, Inc. Multithreading microprocessor with optimized thread scheduler for increasing pipeline utilization efficiency
US7506140B2 (en) * 2005-02-04 2009-03-17 Mips Technologies, Inc. Return data selector employing barrel-incrementer-based round-robin apparatus
US7490230B2 (en) * 2005-02-04 2009-02-10 Mips Technologies, Inc. Fetch director employing barrel-incrementer-based round-robin apparatus for use in multithreading microprocessor
US7209405B2 (en) * 2005-02-23 2007-04-24 Micron Technology, Inc. Memory device and method having multiple internal data buses and memory bank interleaving
JP4449782B2 (ja) 2005-02-25 2010-04-14 ソニー株式会社 撮像装置および画像配信方法
JP4817725B2 (ja) * 2005-06-20 2011-11-16 キヤノン株式会社 データ処理装置及び方法
US7716387B2 (en) * 2005-07-14 2010-05-11 Canon Kabushiki Kaisha Memory control apparatus and method
US7395376B2 (en) * 2005-07-19 2008-07-01 International Business Machines Corporation Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of shared memory blocks
US20070028027A1 (en) * 2005-07-26 2007-02-01 Micron Technology, Inc. Memory device and method having separate write data and read data buses
US7376817B2 (en) * 2005-08-10 2008-05-20 P.A. Semi, Inc. Partial load/store forward prediction
US8325768B2 (en) * 2005-08-24 2012-12-04 Intel Corporation Interleaving data packets in a packet-based communication system
EP1955175A1 (de) * 2005-09-09 2008-08-13 Freescale Semiconductor, Inc. Verbindungseinrichtung und verfahren zum entwurf einer verbindungseinrichtung
US7969966B2 (en) * 2005-12-19 2011-06-28 Alcatel Lucent System and method for port mapping in a communications network switch
US7421529B2 (en) * 2005-10-20 2008-09-02 Qualcomm Incorporated Method and apparatus to clear semaphore reservation for exclusive access to shared memory
US7366810B2 (en) * 2005-11-16 2008-04-29 Via Technologies, Inc. Method and system for multi-processor arbitration
US7426621B2 (en) * 2005-12-09 2008-09-16 Advanced Micro Devices, Inc. Memory access request arbitration
US9336333B2 (en) * 2006-02-13 2016-05-10 Linkedin Corporation Searching and reference checking within social networks
DE602006019005D1 (de) * 2006-06-27 2011-01-27 Thomson Licensing Verfahren und vorrichtung zur durchführung der arbitrierung
JP4233585B2 (ja) 2006-07-25 2009-03-04 株式会社エヌ・ティ・ティ・ドコモ ペリフェラル切替装置及びペリフェラル切替制御装置
US20080040564A1 (en) * 2006-08-10 2008-02-14 International Business Machines Corporation Sychronized Light Path Scheme Across Mutiple SAS Storage Enclosures
US7961745B2 (en) * 2006-09-16 2011-06-14 Mips Technologies, Inc. Bifurcated transaction selector supporting dynamic priorities in multi-port switch
US7773621B2 (en) * 2006-09-16 2010-08-10 Mips Technologies, Inc. Transaction selector employing round-robin apparatus supporting dynamic priorities in multi-port switch
US7760748B2 (en) * 2006-09-16 2010-07-20 Mips Technologies, Inc. Transaction selector employing barrel-incrementer-based round-robin apparatus supporting dynamic priorities in multi-port switch
US7990989B2 (en) * 2006-09-16 2011-08-02 Mips Technologies, Inc. Transaction selector employing transaction queue group priorities in multi-port switch
US20080091866A1 (en) * 2006-10-12 2008-04-17 International Business Machines Corporation Maintaining forward progress in a shared L2 by detecting and breaking up requestor starvation
US20080098178A1 (en) * 2006-10-23 2008-04-24 Veazey Judson E Data storage on a switching system coupling multiple processors of a computer system
US8745315B2 (en) * 2006-11-06 2014-06-03 Rambus Inc. Memory Systems and methods supporting volatile and wear-leveled nonvolatile physical memory
US8868397B2 (en) * 2006-11-20 2014-10-21 Sonics, Inc. Transaction co-validation across abstraction layers
US7962676B2 (en) 2006-12-22 2011-06-14 Lsi Corporation Debugging multi-port bridge system conforming to serial advanced technology attachment (SATA) or serial attached small computer system interface (SCSI) (SAS) standards using idle/scrambled dwords
US8499308B2 (en) * 2006-12-22 2013-07-30 Lsi Corporation Initiator notification method and apparatus
US7761642B2 (en) 2006-12-22 2010-07-20 Lsi Corporation Serial advanced technology attachment (SATA) and serial attached small computer system interface (SCSI) (SAS) bridging
US7865647B2 (en) * 2006-12-27 2011-01-04 Mips Technologies, Inc. Efficient resource arbitration
US20080182021A1 (en) * 2007-01-31 2008-07-31 Simka Harsono S Continuous ultra-thin copper film formed using a low thermal budget
US8812651B1 (en) 2007-02-15 2014-08-19 Google Inc. Systems and methods for client cache awareness
US7814253B2 (en) * 2007-04-16 2010-10-12 Nvidia Corporation Resource arbiter
US20080270658A1 (en) * 2007-04-27 2008-10-30 Matsushita Electric Industrial Co., Ltd. Processor system, bus controlling method, and semiconductor device
US7685346B2 (en) * 2007-06-26 2010-03-23 Intel Corporation Demotion-based arbitration
US9710384B2 (en) * 2008-01-04 2017-07-18 Micron Technology, Inc. Microprocessor architecture having alternative memory access paths
US9015399B2 (en) 2007-08-20 2015-04-21 Convey Computer Multiple data channel memory module architecture
US8122229B2 (en) * 2007-09-12 2012-02-21 Convey Computer Dispatch mechanism for dispatching instructions from a host processor to a co-processor
US8156307B2 (en) * 2007-08-20 2012-04-10 Convey Computer Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set
US8095735B2 (en) 2008-08-05 2012-01-10 Convey Computer Memory interleave for heterogeneous computing
US8561037B2 (en) * 2007-08-29 2013-10-15 Convey Computer Compiler for generating an executable comprising instructions for a plurality of different instruction sets
US7996614B2 (en) 2008-01-04 2011-08-09 International Business Machines Corporation Cache intervention on a separate data bus when on-chip bus has separate read and write data busses
US7778105B2 (en) * 2008-03-17 2010-08-17 Oracle America, Inc. Memory with write port configured for double pump write
CN101546275B (zh) * 2008-03-26 2012-08-22 中国科学院微电子研究所 一种获取多处理器硬件信号量的方法
US7673087B1 (en) * 2008-03-27 2010-03-02 Xilinx, Inc. Arbitration for an embedded processor block core in an integrated circuit
JP5125890B2 (ja) * 2008-08-28 2013-01-23 富士通セミコンダクター株式会社 調停装置及び電子機器
US20100115233A1 (en) * 2008-10-31 2010-05-06 Convey Computer Dynamically-selectable vector register partitioning
US8205066B2 (en) * 2008-10-31 2012-06-19 Convey Computer Dynamically configured coprocessor for different extended instruction set personality specific to application program with shared memory storing instructions invisibly dispatched from host processor
WO2010052679A1 (en) * 2008-11-10 2010-05-14 Nxp B.V. Resource controlling
JP5424161B2 (ja) * 2009-02-16 2014-02-26 独立行政法人情報通信研究機構 需給調停システム、需給調停装置、需給調停方法および需給調停プログラム
WO2010105060A1 (en) 2009-03-11 2010-09-16 Virage Logic Corp. Systems and methods for resource controlling
US20100325327A1 (en) * 2009-06-17 2010-12-23 Freescale Semiconductor, Inc. Programmable arbitration device and method therefor
US8984198B2 (en) * 2009-07-21 2015-03-17 Microchip Technology Incorporated Data space arbiter
JP4929386B2 (ja) 2009-09-07 2012-05-09 株式会社エヌ・ティ・ティ・ドコモ 通信競合管理装置
US8458581B2 (en) * 2009-10-15 2013-06-04 Ansaldo Sts Usa, Inc. System and method to serially transmit vital data from two processors
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US8423745B1 (en) 2009-11-16 2013-04-16 Convey Computer Systems and methods for mapping a neighborhood of data to general registers of a processing element
EP2526494B1 (de) 2010-01-21 2020-01-15 SVIRAL, Inc. Verfahren und vorrichtung für ein mehrzweck- und multikern-system zur implementierung von berechnungen auf stream-basis
US8667197B2 (en) 2010-09-08 2014-03-04 Intel Corporation Providing a fine-grained arbitration system
US8543774B2 (en) 2011-04-05 2013-09-24 Ansaldo Sts Usa, Inc. Programmable logic apparatus employing shared memory, vital processor and non-vital communications processor, and system including the same
US9208109B2 (en) 2011-06-01 2015-12-08 Altera Corporation Memory controllers with dynamic port priority assignment capabilities
US8706936B2 (en) 2011-11-14 2014-04-22 Arm Limited Integrated circuit having a bus network, and method for the integrated circuit
CN102394829A (zh) * 2011-11-14 2012-03-28 上海交通大学 片上互连网络中基于可靠性需求的仲裁方法
US8838849B1 (en) 2011-12-08 2014-09-16 Emc Corporation Link sharing for multiple replication modes
US9128725B2 (en) 2012-05-04 2015-09-08 Apple Inc. Load-store dependency predictor content management
US9600289B2 (en) 2012-05-30 2017-03-21 Apple Inc. Load-store dependency predictor PC hashing
US10430190B2 (en) 2012-06-07 2019-10-01 Micron Technology, Inc. Systems and methods for selectively controlling multithreaded execution of executable code segments
CN103218331B (zh) * 2012-12-07 2015-11-11 浙江大学 采用同步模式切换及帧优先级自动调整的总线装置及方法
US9164793B2 (en) * 2012-12-21 2015-10-20 Microsoft Technology Licensing, Llc Prioritized lock requests to reduce blocking
US9672046B2 (en) 2012-12-28 2017-06-06 Intel Corporation Apparatus and method for intelligently powering heterogeneous processor components
US9329900B2 (en) 2012-12-28 2016-05-03 Intel Corporation Hetergeneous processor apparatus and method
US9639372B2 (en) 2012-12-28 2017-05-02 Intel Corporation Apparatus and method for heterogeneous processors mapping to virtual cores
US9448829B2 (en) 2012-12-28 2016-09-20 Intel Corporation Hetergeneous processor apparatus and method
US9582440B2 (en) * 2013-02-10 2017-02-28 Mellanox Technologies Ltd. Credit based low-latency arbitration with data transfer
US9727345B2 (en) 2013-03-15 2017-08-08 Intel Corporation Method for booting a heterogeneous system and presenting a symmetric core view
US9292442B2 (en) * 2013-04-11 2016-03-22 Qualcomm Incorporated Methods and apparatus for improving performance of semaphore management sequences across a coherent bus
US9135179B2 (en) * 2013-05-01 2015-09-15 Qualcomm, Incorporated System and method of arbitrating cache requests
US9641465B1 (en) 2013-08-22 2017-05-02 Mellanox Technologies, Ltd Packet switch with reduced latency
US9489322B2 (en) 2013-09-03 2016-11-08 Intel Corporation Reducing latency of unified memory transactions
US9710268B2 (en) 2014-04-29 2017-07-18 Apple Inc. Reducing latency for pointer chasing loads
CN103955436B (zh) * 2014-04-30 2018-01-16 华为技术有限公司 一种数据处理装置和终端
KR102285749B1 (ko) 2014-11-10 2021-08-05 삼성전자주식회사 세마포어 기능을 갖는 시스템 온 칩 및 그것의 세마포어 구현 방법
US9892067B2 (en) * 2015-01-29 2018-02-13 International Business Machines Corporation Multiprocessor cache buffer management
US10514925B1 (en) 2016-01-28 2019-12-24 Apple Inc. Load speculation recovery
US10437595B1 (en) 2016-03-15 2019-10-08 Apple Inc. Load/store dependency predictor optimization for replayed loads
CN106569968B (zh) * 2016-11-09 2019-09-17 天津大学 用于可重构处理器的阵列间数据传输结构与调度方法
TWI779069B (zh) 2017-07-30 2022-10-01 埃拉德 希提 具有以記憶體為基礎的分散式處理器架構的記憶體晶片
KR102549540B1 (ko) * 2017-09-22 2023-06-29 삼성전자주식회사 스토리지 장치 및 그 동작 방법
US10871992B2 (en) * 2018-05-30 2020-12-22 Texas Instruments Incorporated Level two first-in-first-out transmission
CN109379304B (zh) * 2018-10-30 2022-05-06 中国电子科技集团公司第五十四研究所 一种用于降低低优先级包延迟的公平调度方法
US11656992B2 (en) * 2019-05-03 2023-05-23 Western Digital Technologies, Inc. Distributed cache with in-network prefetch
US11765250B2 (en) 2020-06-26 2023-09-19 Western Digital Technologies, Inc. Devices and methods for managing network traffic for a distributed cache
US11675706B2 (en) 2020-06-30 2023-06-13 Western Digital Technologies, Inc. Devices and methods for failure detection and recovery for a distributed cache
US11736417B2 (en) 2020-08-17 2023-08-22 Western Digital Technologies, Inc. Devices and methods for network message sequencing
US11914903B2 (en) * 2020-10-12 2024-02-27 Samsung Electronics Co., Ltd. Systems, methods, and devices for accelerators with virtualization and tiered memory
CN114884770B (zh) * 2022-07-13 2022-10-18 南京观海微电子有限公司 一种基于系统总线的多机通讯系统及通讯方法

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5553722A (en) 1978-10-17 1980-04-19 Toshiba Corp Priority control system
US4315308A (en) * 1978-12-21 1982-02-09 Intel Corporation Interface between a microprocessor chip and peripheral subsystems
US4482950A (en) * 1981-09-24 1984-11-13 Dshkhunian Valery Single-chip microcomputer
JPS58178432A (ja) 1982-04-14 1983-10-19 Fujitsu Ltd 優先権選択切替装置
US4597054A (en) * 1982-12-02 1986-06-24 Ncr Corporation Arbiter circuit and method
US4991081A (en) * 1984-10-31 1991-02-05 Texas Instruments Incorporated Cache memory addressable by both physical and virtual addresses
US4829467A (en) * 1984-12-21 1989-05-09 Canon Kabushiki Kaisha Memory controller including a priority order determination circuit
US4736319A (en) * 1985-05-15 1988-04-05 International Business Machines Corp. Interrupt mechanism for multiprocessing system having a plurality of interrupt lines in both a global bus and cell buses
EP0214718A3 (de) * 1985-07-22 1990-04-04 Alliant Computer Systems Corporation Digitalrechner
US4719569A (en) * 1985-10-11 1988-01-12 Sun Microsystems, Inc. Arbitrator for allocating access to data processing resources
US4760515A (en) * 1985-10-28 1988-07-26 International Business Machines Corporation Arbitration apparatus for determining priority of access to a shared bus on a rotating priority basis
US5283903A (en) * 1986-12-25 1994-02-01 Nec Corporation Priority selector
JPS63216159A (ja) 1987-03-04 1988-09-08 Ricoh Co Ltd バス優先順位制御方式
JPH07113903B2 (ja) * 1987-06-26 1995-12-06 株式会社日立製作所 キャッシュ記憶制御方式
JPS6488761A (en) 1987-09-30 1989-04-03 Pfu Ltd Bus connection system
US4924375A (en) * 1987-10-23 1990-05-08 Chips And Technologies, Inc. Page interleaved memory access
US5089951A (en) * 1987-11-05 1992-02-18 Kabushiki Kaisha Toshiba Microcomputer incorporating memory
JPH0622015B2 (ja) * 1987-11-30 1994-03-23 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン データ処理システムの制御方法
US4959776A (en) * 1987-12-21 1990-09-25 Raytheon Company Method and apparatus for addressing a memory by array transformations
EP0324662A3 (de) * 1988-01-15 1990-01-17 EVANS &amp; SUTHERLAND COMPUTER CORPORATION Kreuzschienensystem für gesteuerte Datenübertragung
JPH0650511B2 (ja) 1988-01-18 1994-06-29 株式会社日立製作所 記憶制御方式
US5023776A (en) * 1988-02-22 1991-06-11 International Business Machines Corp. Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage
US4949247A (en) * 1988-02-23 1990-08-14 Stellar Computer, Inc. System for transferring multiple vector data elements to and from vector memory in a single operation
US4979100A (en) * 1988-04-01 1990-12-18 Sprint International Communications Corp. Communication processor for a packet-switched network
JPH01255042A (ja) 1988-04-04 1989-10-11 Hitachi Ltd 優先制御回路
US5301278A (en) * 1988-04-29 1994-04-05 International Business Machines Corporation Flexible dynamic memory controller
GB8815042D0 (en) * 1988-06-24 1988-08-03 Int Computers Ltd Data processing apparatus
US5097409A (en) * 1988-06-30 1992-03-17 Wang Laboratories, Inc. Multi-processor system with cache memories
US5261057A (en) * 1988-06-30 1993-11-09 Wang Laboratories, Inc. I/O bus to system interface
US4939641A (en) * 1988-06-30 1990-07-03 Wang Laboratories, Inc. Multi-processor system with cache memories
JP2761506B2 (ja) * 1988-07-08 1998-06-04 株式会社日立製作所 主記憶制御装置
JPH0237592A (ja) 1988-07-27 1990-02-07 Hitachi Ltd メモリ制御装置
JPH0271357A (ja) * 1988-09-07 1990-03-09 Fanuc Ltd プロセッサ回路
JPH0279153A (ja) 1988-09-16 1990-03-19 Mitsubishi Electric Corp バス使用権制御装置
JPH0283757A (ja) * 1988-09-21 1990-03-23 Hitachi Ltd 通信制御システム
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors
US5148533A (en) * 1989-01-05 1992-09-15 Bull Hn Information Systems Inc. Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units
JPH02181855A (ja) 1989-01-09 1990-07-16 Nec Corp バス優先権判定回路
US5222223A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Method and apparatus for ordering and queueing multiple memory requests
US5283886A (en) * 1989-08-11 1994-02-01 Hitachi, Ltd. Multiprocessor cache system having three states for generating invalidating signals upon write accesses
US5303382A (en) * 1989-09-21 1994-04-12 Digital Equipment Corporation Arbiter with programmable dynamic request prioritization
JPH03127157A (ja) 1989-10-12 1991-05-30 Hitachi Ltd 記憶装置の負荷バランス制御方式
US5226125A (en) * 1989-11-17 1993-07-06 Keith Balmer Switch matrix having integrated crosspoint logic and method of operation
EP0429733B1 (de) * 1989-11-17 1999-04-28 Texas Instruments Incorporated Multiprozessor mit Koordinatenschalter zwischen Prozessoren und Speichern
US5168547A (en) * 1989-12-29 1992-12-01 Supercomputer Systems Limited Partnership Distributed architecture for input/output for a multiprocessor system
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5404483A (en) * 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for delaying the processing of cache coherency transactions during outstanding cache fills
JP3127157B2 (ja) 1990-07-20 2001-01-22 マツダ株式会社 車両のサスペンション装置
US5303362A (en) * 1991-03-20 1994-04-12 Digital Equipment Corporation Coupled memory multiprocessor computer system including cache coherency management protocols
US5313609A (en) * 1991-05-23 1994-05-17 International Business Machines Corporation Optimum write-back strategy for directory-based cache coherence protocols
US5440752A (en) * 1991-07-08 1995-08-08 Seiko Epson Corporation Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU
JPH0728695A (ja) * 1993-07-08 1995-01-31 Nec Corp メモリコントローラ
US5666494A (en) 1995-03-31 1997-09-09 Samsung Electronics Co., Ltd. Queue management mechanism which allows entries to be processed in any order

Also Published As

Publication number Publication date
JP2004164656A (ja) 2004-06-10
US5440752A (en) 1995-08-08
US20040024987A1 (en) 2004-02-05
JP2005050368A (ja) 2005-02-24
DE69701078D1 (de) 2000-02-10
US7657712B2 (en) 2010-02-02
DE69228521T2 (de) 1999-06-24
DE69701078T2 (de) 2000-06-08
EP0547246A1 (de) 1993-06-23
JP2004158020A (ja) 2004-06-03
US5754800A (en) 1998-05-19
US20060064569A1 (en) 2006-03-23
US5941979A (en) 1999-08-24
EP0547246B1 (de) 1999-03-03
JP2005050367A (ja) 2005-02-24
JP3850829B2 (ja) 2006-11-29
ATE338982T1 (de) 2006-09-15
US20020059508A1 (en) 2002-05-16
EP0886225A1 (de) 1998-12-23
EP0834816A3 (de) 1998-04-22
US6272579B1 (en) 2001-08-07
US6219763B1 (en) 2001-04-17
EP0834816B1 (de) 2000-01-05
JP3624951B2 (ja) 2005-03-02
ATE177221T1 (de) 1999-03-15
JP3687750B2 (ja) 2005-08-24
JP3624952B2 (ja) 2005-03-02
EP0834816A2 (de) 1998-04-08
US6954844B2 (en) 2005-10-11
JP3632766B2 (ja) 2005-03-23
JPH06501123A (ja) 1994-01-27
ATE188563T1 (de) 2000-01-15
EP0886225B1 (de) 2006-09-06
DE69228521D1 (de) 1999-04-08
KR930702724A (ko) 1993-09-09
JP2004171579A (ja) 2004-06-17
DE69233655D1 (de) 2006-10-19
WO1993001553A1 (en) 1993-01-21
JP3557617B2 (ja) 2004-08-25
JP2004158021A (ja) 2004-06-03
US5604865A (en) 1997-02-18
HK1012742A1 (en) 1999-08-06
US6611908B2 (en) 2003-08-26
KR100248902B1 (ko) 2000-03-15
HK1019250A1 (en) 2000-01-28

Similar Documents

Publication Publication Date Title
DE69233655T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren
DE69822534T2 (de) Gemeinsame Speicherbenutzung mit variablen Blockgrössen für symmetrische Multiporzessor-Gruppen
DE69724354T2 (de) Ein Mehrprozessorrechnersystem mit lokalen und globalen Adressräumen und mehreren Zugriffsmoden
DE69722079T2 (de) Ein Mehrrechnersystem mit Anordnung zum Durchführen von Blockkopieroperationen
DE69724355T2 (de) Erweiterte symmetrische Multiprozessorarchitektur
DE69721643T2 (de) Multiprozessorsystem ausgestaltet zur effizienten Ausführung von Schreiboperationen
DE3909948C2 (de)
DE19983737B3 (de) System zum Neuordnen von Befehlen, die von einer Speichersteuerung zu Speichervorrichtungen ausgegeben werden, unter Verhinderung von Kollision
DE2716051C2 (de) Datenverarbeitungsanlage mit einem oder mehreren Prozessoren mit mindestem einem Ein-/Ausgabekanal mit mehreren Unterkanälen und mit einer Speicheranordnung, bei der zum Speicherzugriff Schlüssel verwendet werden
DE60037065T2 (de) Übertragungsteuerung mit Naben- und Torachitektur
DE69531933T2 (de) Busarchitektur in hochgradiger pipeline-ausführung
DE69724353T2 (de) Mehrrechnersystem mit einem Drei-Sprung-Kommunikationsprotokoll
DE69722512T2 (de) Mehrrechnersystem mit einem die Anzahl der Antworten enthaltenden Kohärenzprotokoll
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE69735575T2 (de) Verfahren und Vorrichtung zur Unterbrechungsverteilung in einem skalierbaren symmetrischen Mehrprozessorsystem ohne die Busbreite oder das Busprotokoll zu verändern
DE60036096T2 (de) Vorrichtung zur kommunikation zwischen mehreren funktionseinheiten in einer rechnerumgebung
DE19983745B9 (de) Verwendung von Seitenetikettregistern um einen Zustand von physikalischen Seiten in einer Speichervorrichtung zu verfolgen
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
DE3606211A1 (de) Multiprozessor-computersystem
DE102013201079A1 (de) Mechanismus des Weiterleitungsfortschritts für Speichervorgänge beim Vorhandensein einer Überlastung in einem System, das Belastungen durch Zustandsänderungen begünstigt
DE19807872A1 (de) Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE3621321A1 (de) Cache-speicher- bzw. multiprozessor-system und betriebsverfahren
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE102009023898A1 (de) Optimierung von gleichzeitigen Zugriffen in einem verzeichnisbasierten Kohärenzprotokoll

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 886225

Country of ref document: EP

Representative=s name: PATENTANWAELTE RUFF, WILHELM, BEIER, DAUSTER & PAR

R071 Expiry of right

Ref document number: 886225

Country of ref document: EP