DE10152970B4 - Halbleiterbauelement mit Systembus und externem Bus sowie Halbleiterchip-Betriebsverfahren und Speichermedium - Google Patents

Halbleiterbauelement mit Systembus und externem Bus sowie Halbleiterchip-Betriebsverfahren und Speichermedium Download PDF

Info

Publication number
DE10152970B4
DE10152970B4 DE10152970A DE10152970A DE10152970B4 DE 10152970 B4 DE10152970 B4 DE 10152970B4 DE 10152970 A DE10152970 A DE 10152970A DE 10152970 A DE10152970 A DE 10152970A DE 10152970 B4 DE10152970 B4 DE 10152970B4
Authority
DE
Germany
Prior art keywords
bus
system bus
external
request
chip
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
DE10152970A
Other languages
English (en)
Other versions
DE10152970A1 (de
Inventor
Youngsik Yongin Kim
Yun-tae Yongin Lee
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE10152970A1 publication Critical patent/DE10152970A1/de
Application granted granted Critical
Publication of DE10152970B4 publication Critical patent/DE10152970B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

Halbleiterbauelement mit
– einem Chip (405),
– mehreren ersten Blöcken auf dem Chip,
– einem mit den ersten Blöcken gekoppelten Systembus (410) auf dem Chip und
– einem externen Bus (415) zum Koppeln dualer erster Blöcke mit einer Mehrzahl von zweiten Blöcken außerhalb des Chips,
gekennzeichnet durch
– einen einzelnen Mehrentscheidungs-Zuteiler (495), der darauf ausgelegt ist, Anfragen nach Besitz des Systembusses (410) und des externen Busses (415) zu empfangen, alle empfangenen Anfragen gemäß einem programmierbaren Prioritätsplan in eine Rangfolge zu bringen, ein erstes Erteilungssignal zum dualen ersten Block bezüglich einem ersten Besitz des externen Busses zu übertragen und ein zweites Erteilungssignal bezüglich eines zum ersten gleichzeitigen zweiten Besitzes des Systembusses zu einem anderen der ersten Blöcke zu übertragen.

Description

  • Die Erfindung bezieht sich auf ein Halbleiterbauelement mit einem Systembus und einem externen Bus sowie auf ein zugehöriges Verfahren zum Betrieb eines Halbleiterchips, insbesondere mit Zuweisung programmierbarer Prioritäten für beide Datenbusse unter Verwendung eines Buszuteilers, und auf ein Instruktionen zur Ausführung des Verfahrens speicherndes Speichermedium.
  • Informationsverarbeitende Rechnersysteme, wie computerartige Systeme, werden vermehrt auf einem einzigen Halbleiterchip vorgesehen und werden dann als „System auf einem Chip" (SOC) bezeichnet. In SOCs sind verschiedene Funktionsblöcke auf einem Chip integriert, die auch „IP"-Blöcke oder einfach als Blöcke bezeichnet werden. Sie tauschen Daten mittels einer Komponente aus, die als Bus bezeichnet wird und mit allen diesen als ein System verbunden ist.
  • 1 zeigt ein Beispiel eines typischen herkömmlichen Bussystems 100. Dieses beinhaltet einen Bus 110, übergeordnete Buseinheiten bzw. Bus-Masters 120, untergeordnete Buseinheiten bzw. Bus-Slaves 160 und einen Buszuteiler bzw. Bus-Arbiter 190. Die Funktionsblöcke des Systems 100 sind ersichtlich in entweder übergeordnete Buseinheiten 120 oder untergeordnete Buseinheiten 160 klassifiziert.
  • Die übergeordneten Buseinheiten 120 benötigen den Bus 110 zum Lesen von Daten aus und zum Schreiben von Daten in die untergeordneten Buseinheiten 160. Für einen solchen Vorgang benötigen die übergeordneten Buseinheiten 120 den alleinigen Besitz des Busses 110. Hingegen kann den untergeordneten Buseinheiten 160 kein Busbesitz erteilt werden, sie dienen lediglich dazu, Daten in Abhängigkeit von einem Lese- oder Schreibbefehl einer übergeordneten Buseinheit 120 aufzubereiten und zu übertragen. Nur jeweils eine übergeordnete Buseinheit 120 kann den Bus zum jeweiligen Zeitpunkt benutzen. Wenn bei Busbedarf durch verschiedene übergeordnete Buseinheiten 120 Konflikte auftreten, werden diese durch den Buszuteiler 190 gelöst. Dies geschieht wie folgt.
  • Jede übergeordnete Buseinheit 120 gibt zunächst ein Anfragesignal REQ an den Buszuteiler 190 ab, das eine Anfrage zur Benutzung des Busses 110 enthält, auch als Besitzanfrage bezeichnet. Der Buszuteiler 190 empfängt alle Anfragen und legt fest, in welcher Reihenfolge übergeordneten Buseinheiten 120 der Besitz des Busses 110 erteilt wird. Dann überträgt der Buszuteiler Erteilungssignale GNT zu den verschiedenen übergeordneten Buseinheiten 120, wobei diese Signale Buszuteilungen enthalten. Der Zuteiler 190 legt die Reihenfolge durch Zuweisung von Prioritäten für jede übergeordnete Buseinheit 120 fest. Dabei wird jedesmal der Busbesitz derjenigen übergeordneten Buseinheit 120 zugeteilt, welche von den übergeordneten Buseinheiten 120, die Busanfragen abgeben, die höchste Priorität besitzt.
  • Zur Zuweisung von Prioritäten zu den übergeordneten Buseinheiten werden unterschiedliche Schemata verwendet, wobei einige Entscheidungen im Voraus getroffen werden. Eines dieser Schemata besteht in einem solchen mit festen Prioritäten, bei dem die übergeordneten Bus einheiten 120 in einer festen Weise hierarchisch geordnet sind. Ein weiteres Schema besteht in einem solchen mit zyklischem Warteschlangenbetrieb, bei dem die übergeordneten Buseinheiten 120 zyklisch Prioritäten in Abhängigkeit davon empfangen, welche schon am längsten wartet, und sobald deren Anfrage die höchste Priorität bekommen hat und die Zuteilung erhält, fällt sie in der Reihenfolge wieder ganz nach hinten.
  • Eine Schwierigkeit speziell mit dem SOC-Design besteht darin, dass zusätzlich zu einem Systembus, der sich auf die übergeordneten Blöcke auf dem Chip bezieht, ein externer Bus notwendig sein kann. Letzterer ist als ein Bus zum Zugriff auf einen Festwertspeicher (ROM), einen statischen Speicher mit wahlfreiem Zugriff (SRAM), einen Flashspeicher, einen dynamischen Speicher mit wahlfreiem Zugriff (DRAM), ein externes Eingabe/Ausgabe(EA)-Bauelement und dergleichen definiert, wobei diese Komponenten außerhalb des Chips angeordnet sind. Dies bedeutet, dass es beim SOC-Design mindestens zwei Busse, einen Systembus und einen externen Bus, geben kann, für die über den jeweiligen Busbesitz zu entscheiden ist. Dies stellt ein schwieriges Problem dar, da die externen Bauelemente nicht Teil des Chips und daher im Voraus nicht vollständig bekannt sind. Für SOC-Auslegungen sind hauptsächlich zwei Arbitrierungsschemata entwickelt worden, das Exklusiv-Arbitrierungsschema und das hierarchische Schema. Diese werden nachstehend erläutert.
  • In 2A ist ein herkömmliches System 200 auf einem Chip gezeigt, welches ein Exklusiv-Arbitrierungsschema verwendet. Es ist ersichtlich, dass Vorteile dieses Systemtyps darin liegen, dass der Zuteilerschaltkreis einfach ist und die Betriebsprioritäten der Funktionsblöcke programmiert werden können.
  • Das System 200 befindet sich auf einem Chip 205, bei dem es sich um einen Halbleiterchip handeln kann. Es umfasst einen Systembus 210 auf dem Chip 205 sowie einen externen Bus 215. Jeder Bus hat seine übergeordneten und untergeordneten Betriebsblöcke.
  • Übergeordnete Einheiten für den Systembus 210 sind die folgenden Funktionsblöcke: Eine Zentralprozessoreinheit (CPU) 222, zugewiesene Direktspeicherzugriff(DDMA)-Blöcke 224, 226 und ein allgemeiner Mehrkanal-Direktspeicherzugriff(GDMA)-Block 228. Der GDMA 228 kann vier Kanäle aufweisen, die mit 0, 1, 2 und 3 nummeriert sind und von denen jeweils nur einer über den Systembus 210 betrieben werden kann. Die DDMA-Blöcke 224, 226 kommunizieren mit jeweils anderen IP-Blöcken 234, 236.
  • Untergeordnete Einheiten für den Systembus 110 sind folgende Funktionsblöcke: Eine interne Speichersteuereinheit 262 und eine externe Speichersteuereinheit 244. Die interne Speichersteuereinheit 262 steuert einen internen Speicher 272.
  • Übergeordnete Einheiten für den externen Bus 215 sind die externe Speichersteuereinheit 244 und eine Wiederauffrisch-Steuereinheit 264 für einen dynamischen Speicher mit wahlfreiem Zugriff (DRAM), der über die Steuereinheit 244 arbeitet. Mit anderen Worten ist der externe Bus 215 dem Systembus 210 untergeordnet. Übergeordnete Einheiten für den externen Bus 215 können außerdem Blöcke außerhalb des Chips 205 sein, was ein besonderes und unterschiedliches Merkmal des externen Busses ist. Solche Blöcke sind auf anderen Bauelementen vorgesehen und werden auch als chipexterne Bauelemente bezeichnet. Ein solcher Block kann ein externes Bauelement 273 sein, das als eine externe übergeordnete Buseinheit zum Treiben des externen Busses 215 fungiert, wenn er nicht durch die Funktionsblöcke innerhalb des SOC-Chips 205 verwendet wird, wodurch ein direkter Zugriff auf einen Speicher 282 oder auf externe E/A-Komponenten 274 außerhalb des Chips 205 bewirkt wird.
  • Zudem können auch untergeordnete Einheiten für den externen Bus 215 chipexterne Blöcke sein. Im Beispiel von 2A gibt es folgende Funktionsblöcke als untergeordnete Einheiten für den externen Bus 215: Einen Festwertspeicher (ROM) 282, ein DRAM 284 und einen externen Eingabe/Ausgabe(E/A)-Block 274.
  • Das System 200 weist einen Buszuteiler 292 auf, in welchem ein Exklusiv-Arbitrierungsschema implementiert ist. Bei diesem herkömmlichen Exklusiv-Buszuteilungsverfahren fungiert jede übergeordnete Einheit als eine übergeordnete Systembuseinheit, und nur ein Funktionsblock arbeitet zu einem jeweiligen Zeitpunkt. Der externe Bus wird als untergeordnet behandelt, und die externe Speichersteuereinheit 244 dient als eine hierarchische Busbrücke. In diesem Fall hat ein ausgewählter Funktionsblock Besitz sowohl vom Systembus als auch vom externen Bus. Dies bedeutet, dass zu einem jeweiligen Zeitpunkt kein Besitz des Systembusses einerseits und des externen Busses andererseits durch unterschiedliche Funktionsblöcke möglich ist.
  • In seiner besten Implementierung verwendet das durch den Zuteiler 292 implementierte Exklusiv-Arbitrierungsschema ein hybrides Arbitrierungsverfahren, wie nachstehend erläutert. In 2B ist das hybride Arbitrierungsverfahren detaillierter gezeigt. Wie daraus ersichtlich, ist das hybride Arbitrierungsverfahren eine Kombination aus einem Schema mit fester Rangordnung und einem Arbitrierungsschema mit zyklischem Warteschlangenbetrieb. Beim hybriden Arbitrierungsverfahren werden zuerst Anfragen 222-1, 224-1, 226-1, 228-1, 228-2, 228-3, 228-4, 264-1 abhängig von den übergeordneten Blöcken, von denen sie stammen, in Gruppen gebündelt. Jede Gruppe enthält Anfragen gleicher Wichtigkeit. Die Anfrage 264-1 für das DRAM 264 wird als einzige in einer Gruppe A platziert. Die Anfragen 224-1, 226-1, 228-1, 228-2, 228-3 und 228-4 werden in Gruppe B gebündelt. Die Anfrage 222-1 von der CPU 222 wird als einzige in einer Gruppe C platziert. Dann werden die Gruppen nach ihrer Wichtigkeit geordnet. Gruppe A, d.h. die Anfrage nach dem Wiederauffrischen des DRAM, wird in der Rangordnung als wichtigste festgelegt, während die Gruppe B und die Gruppe C als gleichwertig in einer zusammengesetzten Gruppe D gebündelt werden.
  • Im Beispiel der 2B werden Prioritäten wie folgt zugewiesen. Die Mitglieder der Gruppe A, d.h. die Anfragen 264-1 vom DRAM 264, besitzen eine feste Priorität gegenüber den Mitgliedern der Gruppe D. Innerhalb der Gruppe D gibt es ein zyklisches Warteschlangenschema zwischen der Gruppe B und der Gruppe C. Mit anderen Worten alterniert die Priorität zwischen dem Mitglied der Gruppe B mit der höchsten Priorität und dem Mitglied der Gruppe C mit der höchsten Priorität, das stets eine Anfrage 222-1 von der CPU 222 ist. Innerhalb der Gruppe B liegt ebenfalls ein zyklisches Warteschlangenschema für deren Mitglieder vor, wie gezeigt. Es sei daran erinnert, dass das Schema von 2B vom Blickpunkt des Zuteilers 292 aus implementiert ist, der einen Zuteiler darstellt, welcher Prioritäten zwischen übergeordneten Blöcken lediglich des Systembusses 210 festlegt.
  • 2C veranschaulicht ein Beispiel für das Leistungsvermögen bzw. den Betriebsablauf des Systems 200 von 2A. Dabei werden in 2C Momentaufnahmen von Busanforderungssignalen REQ in Verbindung mit dem Betrieb der Funktionsblöcke und Veränderungen in der Prioritätsrangfolge der Funktionsblöcke über acht Betriebsschritte hinweg gezeigt, die mit Schritt 1, Schritt 2, ..., Schritt 8 bezeichnet sind. Jeder Schritt stellt den Betrieb zu einem jeweiligen Zeitpunkt für jeden Funktionsblock dar, welcher der Zuteilung durch den Buszuteiler 292 unterworfen ist. Wenngleich Schritte als ähnlich gezeigt sind, kann die für die Ausführung jedes Schrittes benötigte Zeitdauer abhängig von seiner Art variieren.
  • Für die Schritte von 2C wurden einige Betriebsannahmen gemacht, jedoch nur zwecks späterem leichterem Vergleich, wie weiter unten deutlich wird. Diese Annahmen bestehen erstens darin, dass das Hybridschema von 2B verwendet wird. Zweitens ist angenommen, dass die DRAM-Wiederauffrischsteuereinheit in den Schritten 5, 6 und 7 keine Betriebsanfrage macht und die CPU 222 im Schritt 1 eine Betriebsanfrage macht, während die übrigen Funktionsblöcke kontinuierliche Betriebsanfragen machen.
  • Wie aus 2C ersichtlich, wird zum jeweiligen Zeitpunkt unabhängig von Anfragen nach dem Systembus oder dem externen Bus ein Funktionsblock ausgewählt. Der ausgewählte Funktionsblock erhält den Besitz sowohl auf den Systembus als auch den externen Bus. Der jeweils schattierte Funktionsblock ist ein solcher, dem der Besitz erteilt wird, um einen aktuellen Vorgang durchzuführen. In den Schritten 4, 5, 6 und 7 hat der ausgewählte Funktionsblock ebenfalls Besitz über beide Busse, obwohl er nur den Systembus oder nur den externen Bus während seines aktuellen Vorgangs benutzt, was die Busnutzung herabsetzt.
  • In 3A ist ein herkömmliches System 300 auf einem Chip gezeigt, das ein hierarchisches Arbitrierungsschema verwendet. Ersichtlich erzielt dieses Schema gegenüber dem oben erläuterten Exklusiv-Schema eine höhere Busnutzung, und zwar auf Kosten einer doppelt so hohen Anzahl an Zuteilern und aufgrund der Tatsache, dass die Betriebsprioritäten aller Funktionsblöcke wie im obigen Beispiel nicht programmiert werden können.
  • Das System 300 ist auf einem Chip 305 vorgesehen, bei dem es sich um einen Halbleiterchip handeln kann. Viele Komponenten des Systems 300, wie der Systembus 210 und die Funktionsblöcke 222, 224, 234, 226, 236, 228, 244, 262, 272 und 264, sind auf dem Chip 305 vorgesehen und können mit den ebenso nummerierten Blöcken im obigen System 200 identisch sein, so dass sich eine nochmalige genauere Erläuterung derselben erübrigt. Zusätzlich dient das System 300 auf einem Chip zur Verbindung mit chipexternen Funktionsblöcken 273, 274, 282, 284 in gleicher Weise, wie oben unter Bezugnahme auf 2A beschrieben. Die Verbindung zu solchen Blöcken erfolgt über einen externen Bus 315.
  • Des weiteren beinhaltet das System 300 auf einem Chip zwei Zuteiler 394, 396, wobei der Fortschritt darin besteht, dass ein zweiter Zuteiler enthalten ist. Der Systembuszuteiler 394 dient zum Zuteilen von Anfragen bezüglich des Systembusses 210, und der Zuteiler 396 für den externen Bus dient zur Zuteilung von Anfragen bezüglich des externen Busses 315. Die zwei Zuteiler 394, 396 führen relativ zueinander eine sogenannte hierarchische Arbitrierung aus. Der Systembuszuteiler 394 ist gegenüber dem Zuteiler 396 für den externen Bus in eine höhere Hierarchie klassifiziert. Mit anderen Worten ist der Betrieb des Systembuszuteiler 394 unabhängig, während der Betrieb des Zuteilers 396 für den externen Bus dem Systembuszuteiler 394 untergeordnet ist. Dabei dient die externe Speichersteuereinheit 244 als eine hierarchische Busbrücke.
  • Die zugehörigen Betriebsvorgänge sind in den 3B und 3C veranschaulicht. Es sei angemerkt, dass jeder der beiden Zuteiler 394, 396 sein eigenes, separates Diagramm zum Adressieren von Anfragen lediglich seines eigenen Busses benötigt. Zusätzlich kommt in nicht gezeigter Weise die Tatsache hinzu, dass Anfragen für den Zuteiler 396 solchen für den Zuteiler 394 untergeordnet sind. Damit wird eine höhere Busnutzung erzielt als beim oben erläuterten Exklusiv-Arbitrierungsschema, wie nachfolgend erläutert.
  • 3D veranschaulicht ein Beispiel des Betriebsablaufs des Systems 300 von 3A, wobei ersichtlich 3D der 2C entspricht. Außerdem wurden für 3D dieselben Betriebsannahmen gemacht wie für die Entwicklung von Prioritäten bei 2C. 3D zeigt Momentaufnahmen von Busanfragesignalen REQ verknüpft mit dem Betrieb der Funktionsblöcke für den Systembuszuteiler 394 und den Zuteiler 396 für den externen Bus. Mit dem Fortschreiten der Momentaufnahmen sind Änderungen in der Prioritätsreihenfolge der Funktionsblöcke über acht Betriebsschritte hinweg zu erkennen, die mit Schritt 1, Schritt 2, ..., Schritt 8 bezeichnet sind. Jeder Schritt bezeichnet einen Betriebsvorgang jedes Funktionsblocks, welcher der Arbitrierung durch die Buszuteiler 394, 396 unterworfen ist, zu einem jeweiligen Zeitpunkt.
  • Das hierarchische Schema hat bestimmte Vorteile. Wie in den Schritten 6 und 7 zu erkennen ist, können unterschiedliche Funktionsblöcke, die Besitz beider Busse haben, ihren Betriebsvorgang durchführen, was verglichen mit dem herkömmlichen Exklusiv-Busarbitrierungsschema eine höhere Busnutzung bietet. Allerdings kann die Prioritätsreihenfolge der Funktionsblöcke nicht nach Wunsch programmiert werden. Als Beispiel kann es sein, dass im Schritt 1, wenn der Systembuszuteiler 394 die CPU auswählt, der Zuteiler 396 für den externen Bus beabsichtigt, einen GDMA-Kanal #2 auszuwählen. Der Zuteiler 396 ist jedoch in diesem Fall gezwungen, die CPU statt dem GDMA-Kanal #2 auszuwählen, da der vom Systembuszuteiler 394 ausgewählte Funktionsblock über den vom Zuteiler 396 für den externen Bus ausgewählten Funktionsblock hierarchische Priorität hat.
  • In anderen Fällen können ineffiziente Betriebsabläufe auftreten. Beispielsweise versucht im Schritt 2 der Zuteiler 396 für den externen Bus den GDMA-Kanal #2 auszuwählen, obwohl der Systembuszuteiler 394 einen DDMA-Block #0 auswählt. In diesem Fall übernimmt der GDMA-Kanal #2 die tatsächliche Steuerung des externen Busses 315, da der vom Zuteiler 396 für den externen Bus ausgewählte Funktionsblock über den vom Systembuszuteiler 394 ausgewählten Funktionsblock Priorität hat. In diesem Fall kann der DDMA-Block #0, da er Besitz auf den Systembus 210 hat, während der GDMA-Kanal #2 Besitz des externen Busses 315 hat, schlicht seinen Betrieb im Schritt 2 nicht ausführen. Wie auch in den Schritten 4 und 8 gezeigt, gibt es Funktionsblöcke, die ihren Betrieb während ihres zugewiesenen Schritts nicht korrekt ausführen, und zwar wegen fehlendem Besitz über den externen Bus 315. Wenn sie dies nicht tun, haben sie für den externen Bus 315 auf einen anderen Schritt zu warten. In beiden Schemata der 2A und 3A sind folglich Ineffizienzen zu beobachten. In einigen Fällen ist einer der Busse gelegentlich außer Betrieb. Dies setzt die Geschwindigkeit für das Gesamtsystem auf einem Chip herab.
  • Weitere herkömmliche Mehrbussysteme mit zugehörigen Arbitrierungsschemata sind in der Offenlegungsschrift EP 0 654 743 A1 und den Patentschriften US 5.517.650 und US 6.125.412 offenbart.
  • Der Erfindung liegt als technisches Problem die Bereitstellung eines Halbleiterbauelementes, eines zugehörigen Betriebsverfahrens für einen Halbleiterchip und eines dieses speichernden Speichermediums zugrunde, mit denen sich die oben erwähnten Schwierigkeiten vermindern lassen und eine vergleichsweise hohe Betriebsgeschwindigkeit für das Gesamtsystem auf einem Chip erreichbar ist.
  • Die Erfindung löst dieses Problem durch die Bereitstellung eines Bauelements mit den Merkmalen des Anspruchs 1, eines Betriebsverfahrens mit den Merkmalen des Anspruchs 14 sowie eines Speichermediums mit den Merkmalen des Anspruchs 24.
  • Die so charakterisierte Erfindung stellt ein System auf einem Chip bereit, der mit wenigstens einem Systembus verknüpfte funktionelle Blöcke und einen externen Bus zur Kommunikation mit externen Blöcken aufweist. Außerdem wird ein Chip-Mehrentscheidungsbuszuteiler mit programmierbaren Rangfolgen zur Zuweisung von Prioritäten zu Anfragen von Blöcken vorgesehen, die für jeden der beiden Busse übergeordnete Einheiten darstellen. Außerdem werden z.B. in Software implementierbare Verfahren zur Zuweisung der programmierbaren Prioritäten bereitgestellt. Die Prioritäten werden unter Beachtung des Gesichtspunkts zugewiesen, welchen Bus jeweilige Anfragen benötigen.
  • Selbst mit einer vollen Anfrageliste können beide Busse gleichzeitig eingesetzt werden, entweder für einen Einzeldatentransfer über beide Busse oder für separate Datentransfers auf jedem der Busse. Dadurch lässt sich eine volle Nutzung der Busse erzielen, verbunden mit einer erhöhten Betriebsgeschwindigkeit für ein System auf einem Chip.
  • Die Erfindung bietet den zusätzlichen Vorteil, dass Prioritäten ohne Unterordnung selbst für chipexterne Blöcke programmiert werden können, während gleichzeitig eine volle Nutzung für beide Busse erzielbar ist. Außerdem ist der Schaltungsaufbau für den Zuteiler relativ einfach, und nur einer braucht verwendet zu werden.
  • Darüber hinaus stellt die Erfindung einen mehrkanaligen Mehrentscheidungs-Direktspeicherzugriffsblock zur Verfügung, der für den Systembus oder den externen Bus ein übergeordneter Block sein kann. Dies beschleunigt den Datentransfer und erhöht die Gesamtgeschwindigkeit eines Systems auf einem Chip.
  • Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
  • Vorteilhafte, nachfolgend näher beschriebene Ausführungsformen der Erfindung sowie die zu deren besserem Verständnis oben erläuterten, herkömmlichen Ausführungsbeispiele sind in den Zeichnungen dargestellt, in denen zeigen:
  • 1 ein Blockdiagramm eines Bussystems eines Speichers nach dem Stand der Technik,
  • 2A ein Blockdiagramm eines Systems auf einem Chip (SOC), das einen einzelnen Zuteiler in einer Auslegung vom Exklusiv-Typ nach dem Stand der Technik verwendet,
  • 2B ein Diagramm zur Veranschaulichung eines Beispiels für Rangordnungen bei einem herkömmlichen hybriden Arbitrierungsverfahren, das zur Zuteilung von Betriebsprioritäten zu Funktionsblöcken durch einen einzelnen Zuteiler in 2A verwendet wird, der ein Exklusiv-Schema einsetzt,
  • 2C Momentaufnahmen, die im System von 2A aus einer Busarbitrierung gemäß dem Exklusiv-Busarbitrierungsschema resultieren, welches das Hybridschema von 2B benutzt,
  • 3A ein Blockdiagramm eines SOC, das einen einzelnen Zuteiler in einer Auslegung vom hierarchischen Typ gemäß dem Stand der Technik verwendet,
  • 3B ein Diagramm zur Veranschaulichung eines Beispiels von Rangfolgen gemäß dem Stand der Technik, wie es zur Zuteilung von Betriebsprioritäten zu Funktionsblöcken durch einen der beiden Zuteiler in 3A benutzt wird,
  • 3C ein Diagramm zur Veranschaulichung eines Beispiels von Rangfolgen gemäß dem Stand der Technik, wie es zur Zuteilung von Betriebsprioritäten zu Funktionsblöcken durch den anderen der beiden Zuteiler in 3A benutzt und in einem hierarchischen Schema mit den Rangfolgen von 3B realisiert ist,
  • 3D Momentaufnahmen, die im System von 3A aus einer Busarbitrierung gemäß einer herkömmlichen hierarchischen Kombination der Schemata von 3B und 3C resultieren,
  • 4 ein Blockdiagramm eines ersten erfindungsgemäßen Systems auf einem Chip (SOC), das integrierte Funktionsblöcke besitzt und einen Chip-Mehrentscheidungsbuszuteiler in Verbindung mit einem externen Bus und einem Systembus zwischen den Blöcken verwendet,
  • 5 ein Blockdiagramm eines weiteren vorteilhaften SOC mit integrierten Blöcken, das einen Chip-Mehrentscheidungsbuszuteiler in Verbindung mit einem externen Bus und zwei Systembussen zwischen den Blöcken verwendet,
  • 6 ein Blockdiagramm eines SOC gemäß einer dritten erfindungsgemäßen Ausführungsform mit integrierten Blöcken, das einen Chip-Mehrentscheidungsbuszuteiler in Verbindung mit einem externen Bus und drei Systembussen zwischen den Blöcken verwendet,
  • 7 ein Blockdiagramm eines vorteilhaften Mehrentscheidungsbuszuteilers,
  • 8 ein internes Blockschaltbild einer Mehreingangs-Externspeichersteuerung, die mit dem Buszuteiler von 7 verwendbar ist, zuzüglich einer möglichen Realisierung weiterer Komponenten,
  • 9 eine Tabelle, die zum Auflisten von Typen von Busanfragen funktioneller Blöcke gemäß der Erfindung dient,
  • 10 ein Diagramm zur Veranschaulichung der Beziehung zwischen Anfragesätzen, die in Tabelle 1 von 9 gelistet sind,
  • 11 eine Tabelle zur Klassifizierung der Anfragen von 9 entsprechend den Sätzen von 10,
  • 12 ein Diagramm zur Veranschaulichung eines Beispiels von Rangfolgen für ein hybrides Arbitrierungsverfahren, das zur Zuweisung von Betriebsprioritäten zu Funktionsblöcken gemäß einem Ausführungsbeispiel der Erfindung verwendet wird,
  • 13 ein Flussdiagramm zur Veranschaulichung eines allgemeinen erfindungsgemäßen Betriebsverfahrens,
  • 14 ein Flussdiagramm zur Veranschaulichung eines weiteren allgemeinen Betriebsverfahrens gemäß der Erfindung,
  • 15 ein Flussdiagramm zur Veranschaulichung des Betriebs eines Buszuteilers gemäß der Erfindung,
  • 16 Momentaufnahmen, die aus einer Busarbitrierung gemäß einem Arbitrierungsschema nach einer erfindungsgemäßen Ausführungsform resultieren, und
  • 17 eine Vergleichstabelle des Betriebsverhaltens für ein erfindungsgemäßes Schema verglichen mit einem herkömmlichen Schema.
  • Die 4, 5 und 6 zeigen verschiedene Ausführungsformen der Erfindung, wobei diverse Aspekte dieser Realisierungen einander sehr ähnlich sein können und in den diversen Beispielen viele gleichartige Blöcke enthalten sein können, die mit jeweils gleichen Bezugszeichen bezeichnet sind.
  • Speziell ist in 4 ein System 400 auf einem Chip 405 gemäß der Erfindung vorgesehen, das einen Systembus 410 umfasst, bei dem es sich um einen Bus mit fortschrittlicher Mikrocontrollerbusarchitektur (AMBA) handeln kann, wie er z.B. von Advanced RISC Machines (ARM) Co. entwickelt wird. Der Systembus 410 kann aus einem fortschrittlichen Hochgeschwindigkeitsbus (AHB) bestehen.
  • Das System 400 auf einem Chip beinhaltet eine CPU 422 als eine übergeordnete Einheit des Systembusses 410. Die CPU 422 kann eine ARM-CPU eines Computers mit reduziertem Instruktionssatz (RISC) mit einem Seitenpuffer, d.h. einem Cache, sein. Exemplarische Blöcke für die CPU 422 können Bauteile sein, wie sie von ARM Co. mit ARM920T und ARM940T bezeichnet werden.
  • Des weiteren umfasst das System 400 auf einem Chip DDMA-Blöcke 424, 426, die direkt mit jeweiligen IP-Blöcken 434, 436 verbunden sind. Jeder IP-Block 434, 436 kann eine Ethernet-Mediumzugriffssteuerung (MAC) oder eine Brücke zur peripheren Komponentenverbindung (PCI) sein. Außerdem weist das System 400 eine interne Speichersteuerung 462 zum Zugreifen auf einen internen Speicher 472 auf.
  • Ein spezieller GDMA-Block 430, der auch als ein allgemeiner mehrkanaliger Mehrentscheidungs-DMA(mJmCGDMA)-Block 430 bezeichnet wird, bildet erfindungsgemäß einen weiteren Block des Systems 400, wobei dieser Block auch einfach unter der Bezeichnung GDMA bekannt ist. Er kann für n-Kanäle vorgesehen sein, wie durch das Gesamtdesign angezeigt.
  • Gemäß einer möglichen Realisierung der Erfindung ist für das SOC 400 eine spezielle Externspeichersteuerung 440 mit mehreren Eingängen vorgesehen. Das System 400 weist zusätzlich einen externen Bus 415 auf, der zum Zugreifen auf chipexterne Blöcke dient. Der externe Bus 415 ist mit der Mehreingangs-Externspeichersteuerung 440 gekoppelt. Mit anderen Worten stellt die Mehreingangs-Externspeichersteuerung 440 einen Block dar, der sowohl mit dem Systembus 410 als auch mit dem externen Bus 415 gekoppelt ist. Vorliegend stellt somit der Block 440 einen „dualen" Block dar.
  • Ein weiterer Aspekt der Steuereinheit 440 besteht darin, dass sie Eingaben vom oben erwähnten Block 430 direkt über einen sogenannten dritten Pfad 431 empfängt, der weiter unten detaillierter beschrieben wird. Der dritte Pfad 431 ist verschieden vom Systembus 410 und vom externen Bus 415.
  • Das System 400 weist zudem eine DRAM-Wiederauffrischsteuerung 464 auf, die mit der Mehreingangs-Externspeichersteuerung 440 gekoppelt ist.
  • Chipexterne Blöcke zur Verwendung mit dem System 400 können eine externe Komponente 473, eine externe Eingabe/Ausgabe-Einheit 474, ein ROM 482, ein DRAM 484, ein nicht gezeigtes statisches RAM (SRAM), ein nicht gezeigter Flash-Speicher etc. sein. Die externe Komponente 473 benutzt den externen Bus 415, wenn er nicht von den Funktionsblöcken innerhalb des SOC 400 gebraucht wird. Für die Nutzung des externen Busses 415 durch die Funktionsblöcke innerhalb des SOC 400 wird zwingend eine Steuerung durch die Mehreingangs-Externspeichersteuerung 440 benötigt.
  • Das System 400 enthält vor allem einen speziellen Mehrentscheidungs-Zuteiler 495 zur Verwaltung von Anfragen, die sowohl den Systembus 410 als auch den externen Bus 415 beeinflussen. Zugehörige Software, Verfahren und Schemata für den Zuteiler 495 werden weiter unten detaillierter vorgestellt. An dieser Stelle reicht es aus, anzumerken, dass der erfindungsgemäße mJmCGDMA-Block 430 eine übergeordnete Einheit sowohl für den Systembus 410 als auch den externen Bus 415 sein kann. Dies wird im Zusammenhang mit der erfindungsgemäßen Mehreingangs-Externspeichersteuerung 440 bewirkt, die hierfür auch Eingaben vom mJmCGDMA 430 empfängt.
  • 5 veranschaulicht ein auf einem Chip 505 vorgesehenes System 500 gemäß einer weiteren erfindungsgemäßen Ausführungsform. Bezüglich gleicher Komponenten wie 4 kann auf deren obige Beschreibung verwiesen werden, insbesondere für den Systembus 410, den externen Bus 415, die CPU 422, DDMA#0 424, DDMAN#N 426, IP#0 434, IP#N 436, mJmCGDMA 430, die Mehreingangs-Éxternspeichersteuerung 440, die interne Speichersteuerung 462 und den internen Speicher 472, die sämtlich auf dem Chip 505 vorgesehen sind. Außerdem ist das System 500 dafür eingerichtet, über den externen Bus 415 mit chipexternen Blöcken zu arbeiten, wie der externen Komponente 473, der externen E/A-Einheit 474, dem ROM 482, dem DRAM 484 etc., wie oben in Verbindung mit 4 erläutert.
  • Im Ausführungsbeispiel von 5 sind auf dem Chip 505 mehr Komponenten vorgesehen als auf dem Chip 405 von 4. Ein zusätzlicher Hilfssystembus APB 516, wie ein fortgeschrittener peripherer Bus, ist mit dem Hauptsystembus 410 über einen Hauptbrückenblock 518, wie eine APB-Brücke, verbunden. Der Hilfssystembus APB 516 dient zum Zugreifen auf zusätzliche Funktionsblöcke, die als dessen untergeordnete Einheiten konfiguriert sind. Die Hauptbrücke 518 kann als untergeordnete Einheit zum Hauptsystembus 410 konfiguriert sein, um auf zusätzliche Funktionsblöcke zuzugreifen, die mit dem Hilfssystembus APB 516 gekoppelt sind. Zusätzliche Funktionsblöcke, auf die über den Hilfssystem bus APB 516 zugegriffen werden kann, können einen universellen asynchronen Sendeempfänger (UART) 552, einen universellen seriellen Bus (USB) 554, einen Zeitgeber 556 und eine Interrupt-Steuerung 558 umfassen.
  • Das System 500 weist zudem einen Mehrentscheidungs-Zuteiler 595 zur Verwaltung von Anfragen auf, die sowohl den Systembus 410 als auch den externen Bus 415 beeinflussen. Der Zuteiler 595 ist optional dafür eingerichtet, Anfragen auch von Blöcken zu verwalten, die über den Hilfssystembus APB 516 angeschlossen sind.
  • 6 zeigt ein auf einem Chip 605 vorgesehenes System 600 gemäß einer weiteren Ausführungsform der Erfindung. Dieses entspricht der 5 bezüglich externem Bus 415, CPU 422, DDMA#0 424, DDMA#N 426, IP#0 434, IP#N 436, mJmCGDMA 430, Mehreingangs-Externspeichersteuerung 440, Internspeichersteuerung 462, internem Speicher 472, Hilfssystembus APB 516, Hauptbrückenblock 518, UART 552, USB 554, Zeitgeber 556 und Interrupt-Steuerung 558, die sämtlich auf dem Chip 605 vorgesehen sind. Das System 600 ist außerdem dafür eingerichtet, über den externen Bus 415 mit chipexternen Blöcken zu arbeiten, wie einer externen Komponente 473, einer externen E/A-Einheit 474, einem ROM 482, einem DRAM 484 etc., wie analog oben erläutert.
  • Ein wichtiger Unterschied besteht darin, dass ein Hauptsystembus in Form von zwei Bussen implementiert ist, einem linken Systembus AHBL 610-L und einem rechten Systembus AHBR 610-R. Diese sind durch einen Busschalter 612 unterteilt, der durch eine geeignete Brücke implementiert ist.
  • Das System 600 weist zudem einen Mehrentscheidungs-Zuteiler 695 zur Verwaltung von Anfragen auf, die den linken Systembus 610-L und den rechten System Bus 610-R sowie den externen Bus 415 beeinflussen.
  • Dies wird ebenfalls durch den Zuteiler 695 bewirkt, der eine direkte Leitung zum Busschalter 612 aufweist. Der Zuteiler 695 ist optional dafür eingerichtet, auch Anfragen von Blöcken zu verwalten, die über den Hilfssystembus APB 516 angeschlossen sind.
  • In allen drei gezeigten Ausführungsformen kann der Zuteiler auf Wunsch die übergeordneten Blöcke aller Busse in einer nicht-hierarchischen Form verwalten. Alternativ kann er einige von ihnen bezüglich anderen hierarchisch behandeln.
  • 7 zeigt in einem Blockdiagramm einen Mehrentscheidungs-Buszuteiler 495 gemäß einer möglichen Ausführungsform der Erfindung. Wenngleich sich die Erläuterung auf den Zuteiler 495 von 4 bezieht, ist ersichtlich, dass diese Erläuterung mit minimalen Anpassungen ebenso für die Zuteiler 595 und 695 gilt. Es ist außerdem anzumerken, dass der Systembus 410, wie in der Detailebene von 7 gezeigt, in seine zwei Komponenten bezüglich Adressen und Steuerung 410-C einerseits und Daten 410-D andererseits aufgeteilt ist.
  • Der Zuteiler 495 weist einen Anfragedecoder 710 auf, der dazu eingerichtet ist, Anfragesignale REQ von Blöcken auf dem Chip, die als übergeordnete Einheiten des Systembusses 410 arbeiten, und auch von chipexternen Blöcken zu empfangen, die als übergeordnete Einheiten des externen Busses 415 arbeiten. Die Anfragesignale REQ werden als Digitalsignale empfangen und durch den Anfragedecoder 710 decodiert, der seinerseits ein ständiges Ausgangssignal erzeugt. Üblich ist es, die Anfragesignale von den übergeordneten Einheiten des Systembusses 410 mit SERQ und diejenige von den übergeordneten Einheiten des externen Busses 415 mit EREQ zu bezeichnen.
  • Des weiteren umfasst der Zuteiler 495 ein Prioritätssteuergerät 720, das dazu eingerichtet ist, das Ausgangssignal des Anfragedecoders 710 zu empfangen. Das Prioritätssteuergerät 720 entscheidet dann über die relativen Prioritäten aller übergeordneten Blöcke, wie unten erläutert. Es sei angemerkt, dass das erfindungsgemäße Prioritätssteuergerät 720 optional in der Lage ist, mit verschiedenen Programmen programmiert zu werden, die unterschiedliche Prioritätspläne implementieren. Es ist vorteilhaft, wenngleich nicht zwingend, dass sich das Programm zum Auswählen von Prioritäten im Prioritätssteuergerät 720 befindet.
  • Sobald über die Prioritäten entschieden wurde, gibt das Prioritätssteuergerät 720 Signale ab, die anzeigen, welcher übergeordnete Block die höchste Priorität hat. Ein zentraler Teil der Erfindung ist darin zu sehen, dass eine höchste Priorität gleichzeitig für einen chipexternen Block wie für einen Block auf dem Chip festgelegt werden kann.
  • Das Ausgangssignal des Prioritätssteuergerätes 720 kann optional zum Anfragedecoder 710 rückgekoppelt werden, wenn die Anfragen dort gespeichert werden. Äquivalent können die Anfragen im Prioritätssteuergerät 720 gespeichert und aus diesem gelesen werden.
  • Der Zuteiler 495 beinhaltet zudem einen Systembus-Masterselektor 730, der dafür eingerichtet ist, ein Ausgangssignal des Prioritätssteuergerätes 720 oder äquivalent des Anfragedecoders 710, wenn die Anfragen dort gespeichert werden, zu empfangen. Der Masterselektor 730 ist außerdem dafür eingerichtet, in Abhängigkeit vom empfangenen Ausgangssignal des Prioritätssteuergerätes ein Erteilungssignal GNT an denjenigen übergeordneten Systembus-Block zu senden, der die höchste Priorität hat. Da dieses Erteilungssignal für einen übergeordneten Block des Systembusses 410 bestimmt ist, wird es auch mit SGNT bezeichnet.
  • Als weitere Komponente enthält der Zuteiler 495 einen Systembus-Slaveselektor 740, der dafür eingerichtet ist, ein zugehöriges Signal CRS vom Systembus-Masterselektor 730 zu empfangen, dessen Inhalt vom Prioritätssteuergerät 720 oder äquivalent vom Anfragedecoder 710 stammt, wenn die Anfragen dort gespeichert werden. Äquivalent kann das zugehörige Signal CRS direkt vom Prioritätssteuergerät 720 empfangen werden. Zusätzlich ist der Systembus-Slaveselektor 740 optional dafür eingerichtet, ein Ausgangssignal des Systembusses 410 zu empfangen. Der Systembus-Slaveselektor 740 ist dafür eingerichtet, ein Auswahlsignal SEL an eine der untergeordneten Systembus-Einheiten zu senden. In manchen Ausführungsbeispielen stellt die Externspeichersteuerung 440 eine solche untergeordnete Systembus-Einheit dar.
  • Des weiteren weist der Zuteiler 495 einen Masterselektor 750 für den externen Bus auf, wobei dieser Masterselektor 750 dafür eingerichtet ist, ein weiteres Ausgangssignal des Prioritätssteuergerätes oder äquivalent des Anfragedecoders 710, wenn die Anfragen dort gespeichert werden, zu empfangen. Der Masterselektor 750 für den externen Bus ist des weiteren dafür eingerichtet, ein weiteres Erteilungssignal GNT in Abhängigkeit vom empfangenen Ausgangssignal des Prioritätssteuergerätes zu demjenigen übergeordneten Block des externen Busses zu senden, der die höchste Priorität hat. Da dieses Erteilungssignal für einen übergeordneten Block des externen Busses 415 bestimmt ist, wird es auch mit EGNT bezeichnet. Der Masterselektor 750 für den externen Bus ist außerdem dafür eingerichtet, ein Treibersignal EDR an die externe Speichersteuerung 440 zu senden.
  • 8 veranschaulicht detaillierter die Mehreingangs-Externspeichersteuerung 440. Wie daraus ersichtlich, kann die Steuereinheit 440 in Verbindung mit dem Buszuteiler von 7 oder mit irgendeiner von dessen oben erwähnten Varianten verwendet werden. Es ist außerdem anzumerken, dass der externe Bus 415 auf der Detailebene von 7 in seine zwei Komponenten bezüglich Adressen und Steuerung 415-C einerseits und Daten 415-D andererseits aufgeteilt ist.
  • Die Mehreingangs-Externspeichersteuerung 440 weist eine Steuereinheit 810 für den externen Bus auf, die dafür eingerichtet ist, den externen Bus 415 zu steuern. Optional und bevorzugt ist die Steuerung 810 für den externen Bus dafür eingerichtet, Eingangssignale direkt vom Zuteiler 495 zu empfangen. Spezieller kann sie das Auswahlsignal SEL vom Systembus-Slaveselektor 740 empfangen. Alternativ kann sie das Erteilungssignal EGNT für den externen Bus vom Masterselektor 750 für den externen Bus empfangen.
  • Die Externspeichersteuerung 440 weist außerdem einen Adress- und Steuermultiplexer 820 auf, der dafür eingerichtet ist, Adressen- und Steuereingangssignale sowohl vom Systembus 410 als auch vom mehrkanaligen allgemeinen Mehrentscheidungs-Direktspeicherzugriff (mJmCGDMA)-Block 430 zu empfangen. Der Adress- und Steuermultiplexer 820 ist außerdem dafür eingerichtet, eines von den empfangenen Adresssignalen und Steuereingangssignalen zur Steuereinheit 810 für den externen Bus zu übertragen.
  • Die Externspeichersteuerung 440 weist außerdem einen Schreibdatenmultiplexer 830 auf, der dafür eingerichtet ist, Dateneingangssignale sowohl vom Systembus 410 als auch vom mJmCGDMA-Block 430 zu empfangen. Des weiteren ist der Schreibdatenmultiplexer 830 dafür eingerichtet, eines der empfangenen Dateneingangssignale zur Steuereinheit 810 für den externen Bus zu übertragen.
  • Als weitere Komponente beinhaltet die externe Steuereinheit 440 einen Lesedatendemultiplexer 840, der dafür eingerichtet ist, die empfangenen Dateneingangssignale zum Systembus 410 oder zum mJmCGDMA-Block 430 zu übertragen.
  • In einer bevorzugten Ausführungsform werden der Adress- und Steuermultiplexer 820, der Schreibdatenmultiplexer 830 und der Lesedaten demultiplexer 840 sämtlich durch Eingangssignale von der Steuereinheit 810 für den externen Bus gesteuert. Die externe Speichersteuerung 440 enthält optional zusätzlich drei Dreizustands-Puffer 852, 854, 856, die zwischen die Steuereinheit 810 für den externen Bus und den externen Bus 415 eingeschleift sind und von der Steuereinheit 810 für den externen Bus gesteuert werden können.
  • Nachfolgend wird die Betriebsweise des Systems 500 von 5 näher erläutert, wobei sich daraus für den Fachmann ergibt, wie diese Erläuterungen analog für die Systeme 400 und 600 der 4 bzw. 6 anzuwenden sind.
  • Zuerst wird auf die Betriebsweise der CPU 422 eingegangen, wobei sich für den Fachmann versteht, dass die diesbezüglichen Erläuterungen für die entsprechenden Komponenten der Systeme in den anderen Figuren analog gelten. Wenn die CPU 422 eine Systembusanforderung abgibt, um Besitz auf den Systembus 410 erteilt zu bekommen, kann sie Daten aus Registern der mit dem Systembus 410 gekoppelten Blöcke lesen oder in diese schreiben. Außerdem kann die CPU 422, nachdem ihr Besitz auf den Systembus 410 und den Hilfshauptbus 516 erteilt wurde, Daten von Registern der über die Hauptbrücke 518 angeschlossenen Blöcke lesen oder in diese schreiben. Zum Zugreifen auf den externen DRAM 484 muss die CPU 422 Besitz sowohl des Systembusses 410 als auch des externen Busses 415 erhalten. Um dies zu bewirken, greift die CPU 422 zuerst über den Systembus 410 auf die Mehreingangs-Externspeichersteuerung 440 zu, wonach die Steuerung 440 Daten zwischen der CPU 422 und dem DRAM 484 auch über den externen Bus 415 lesen und schreiben kann. Die CPU 422 fungiert daher als eine übergeordnete Systembus-Einheit. Gleiches gilt bezüglich des Zugreifens der CPU 422 auf den ROM 482.
  • Die GDMA-Blöcke 424, 436 führen Lese- und Schreibvorgänge von im internen Speicher 472 oder externen Speicher 482 gespeicherten Daten aus. Der erstgenannte Vorgang erfordert Besitz nur des Systembusses 410, während der letztgenannte Vorgang Besitz sowohl des Systembusses 410 als auch des externen Busses 415 erfordert. Die GDMA-Blöcke 424, 426 fungieren daher als übergeordnete Systembus-Einheiten.
  • Der mehrkanalige Mehrentscheidungs-GDMA-Block 430 führt Lese- und Schreibvorgänge von im internen Speicher 472 oder externen Speicher 484 gespeicherten Daten aus. Die Betriebsweise des GDMA-Blocks 430 lässt sich in vier Typen von Datenkommunikation klassifizieren, und zwar:
    • a) zwischen einem programmierten beliebigen IP-Block und dem internen Speicher 472,
    • b) zwischen einem beliebigen IP-Block und dem externen Speicher 484,
    • c) zwischen dem internen Speicher 472 und dem externen Speicher 484 und
    • d) zwischen den externen Speichern 482 und 484.
  • Durch die mehreren Kanäle kann jeder dieser vier Typen von Datenkommunikation innerhalb des GDMA-Blocks 430 programmiert werden. Selbst während des Programmierens mehrerer Kanäle führt der GDMA-Block 430 eine Steuerung derart durch, dass nur ein Kanal zum jeweiligen Zeitpunkt arbeitet. Die beispielhaft beliebigen IP-Blöcke, die in jedem der mehreren GDMA-Kanäle zu programmieren sind, können die Einheiten UART 442, USB 554, Interrupt-Steuerung 558 etc. umfassen.
  • Von den oben beschriebenen Datenkommunikationstypen benötigen der Typ a Busbesitz nur des Systembusses 410, die Typen b und c Besitz sowohl des Systembusses 410 als auch des externen Busses 415 und Typ d Besitz nur des externen Busses 415. Daher kann der mehrkanalige Mehrentscheidungs-GDMA 430 entweder während des vierten Be triebstyps als übergeordnete Einheit des externen Busses oder während der übrigen Betriebstypen als übergeordnete Einheit des Systembusses fungieren.
  • Die DRAM-Wiederauffrischsteuerung 464, die eine der übergeordneten Einheiten des externen Busses 415 darstellt, benötigt keinen Systembusbesitz. Sie verwendet nur den externen Bus 415, um periodisch ein Signal zum Auffrischen des externen DRAM 484 zu erzeugen. Damit die DRAM-Wiederauffrischsteuerung 464 den externen Bus 415 nutzt, wird die externe Speichersteuerung 440 dazu verwendet, ein Signal über den externen Bus 415 vom Chip nach außen zu senden, wobei dann die übergeordneten Einheiten des Systembusses die Externspeichersteuerung 440 oder den externen Bus 415 nicht nutzen können. In gleicher Weise wird zur Nutzung des externen Busses 415 durch eine übergeordnete Einheit des Systembusses ein Signal unter Steuerung der Externspeichersteuerung 440 vom Chip nach außen gesendet, während die übergeordneten Einheiten des externen Busses während dieser Zeit den externen Bus 415 nicht nutzen können.
  • Die obige Erläuterung gilt auch für jeglichen Block auf dem Chip und jeglichen chipexternen Block in Abhängigkeit von den bekannten und dem Fachmann geläufigen Betriebscharakteristika des jeweiligen Funktionsblocks. Nach dieser vollständigen Beschreibung ist es nun von Vorteil, zu diskutieren, welcher Typ von Signalen zur erfindungsgemäßen Bauelementimplementierung verwendet werden kann.
  • Der Typ von Busbesitzanfragen kann durch vier 2-Bit-Busanforderungssignale REQ[1:0] = {EREQ, SREQ} repräsentiert werden, die ein 1-Bit-Systembusanfragesignal SREQ und ein 1-Bit-Anfragesignal EREQ des externen Busses verwenden. Wenn z.B. REQ[1:0] = 2'b00 ist, wird keine Anforderung eines Busses gemacht (keine Anfrage), und wenn REQ[1:0] = 2'b01 ist, wird nur eine Anforderung für den Systembus 410 gemacht (Anfrage nur nach dem Systembus). Wenn REQ[1:0] = 2'b10, wird nur eine Anforderung des externen Busses 415 gemacht (Anfrage nur nach dem externen Bus), und wenn REQ[1:0] = 2b'11 ist, wird eine Anforderung für beide Busse gemacht (Anfrage nach beiden Bussen).
  • In gleicher Weise kann eine Busbesitzerteilung durch ein Busbesitzerteilungssignal GNT[1:0] = {EGNT, SGNT} repräsentiert werden. Wenn z.B. GNT[1:0] = 2'b00 ist, wird kein Bus erteilt (keine Erteilung), und wenn GNT[1:0] = 2'b01 ist, wird nur der Systembus 410 erteilt (Erteilung nur des Systembusses). Wenn GNT[1:0] = 2'b10 ist, wird nur der externe Bus 415 erteilt (Erteilung nur des externen Busses), und wenn GNT[1:0] = 2b'11 ist, wird gleichzeitig Besitz beider Busse erteilt (Erteilung beider Busse).
  • Ein wesentlicher Aspekt der Erfindung besteht darin, die Anfragen unter Bezug darauf zu klassifizieren, welcher Bus benutzt werden soll und welcher gegebenenfalls unbelegt bleibt. Die Klassifizierung kann vorteilhafterweise in Form der Codierung der oben erläuterten Signale implementiert sein.
  • 9 zeigt eine Tabelle, welche die möglichen Typen von Busanfragen durch jeden Funktionsblock klassifiziert. Wie aus dieser Tabelle ersichtlich, stellen die DRAM-Wiederauffrischsteuerung 464, ein Kanal des mJmCGDMA-Blocks 430 und ein externes Bauelement 473 übergeordnete Einheiten des externen Busses dar. Diese stellen ein Busanfragesignal REQ = 2'b10 bereit. Übergeordnete Einheiten des Systembusses sind die CPU 422, die DDMA-Blöcke 424, 426 und der Kanal des GDMA 430, wobei ein Busanfragesignal REQ = 2'b01 oder REQ = 2'b11 bereitgestellt wird.
  • 10 veranschaulicht die Konzeption der Charakteristika der Anfragen in Form eines sogenannten Venn-Diagramms. Ein Satz S steht für das Zusammengruppieren, Bündeln oder Klassifizieren der Anfragen nach dem Systembus 410. Ein Satz E steht für die Anfragen nach dem externen Bus 415. Ihr Durchschnitt stellt eine Untermenge ES für diejenigen Anfragen dar, die beide Busse benötigen. Der restliche Teil des Satzes S stellt eine Untermenge SO für Anfragen nur nach dem Systembus dar, und der restliche Teil des Satzes E stellt eine Untermenge EO für Anfragen nur nach dem externen Bus dar. Die Vereinigung der Sätze E und S, d.h. EO + ES + SO, sei mit A bezeichnet und enthält alle Anfragen. In einer strikteren mathematischen Notation mit n(X) als der Funktion, welche die Anzahl an Elementen des Satzes X wiedergibt, lässt sich die Beziehung wie folgt schreiben:
    n(A) = n(E ∪ S) = n(EO) + n(ES) + n(SO) und n(ES) = n(E ⋂ S) = n(E ⋂ ES) = n(S ⋂ ES).
  • 11 zeigt eine Tabelle zur Klassifizierung der Anfragen von 9 gemäß den Mengenbeziehungen von 10. Erstens ist der Satz von Funktionsblöcken, die eine Systembusanfrage durch ein Busanfragesignal REQ[1:0] gleich 2'b01 oder 2'b11 machen, als Satz S definiert, der gleich dem Satz von übergeordneten Einheiten des Systembusses ist. Zweitens wird der Satz von Funktionsblöcken, die eine Anfrage nach dem externen Bus durch ein Busanfragesignal REQ[1:0] gleich 2'b10 oder 2'b11 machen, als Satz E definiert. Drittens ist der Satz an Funktionsblöcken, die nur eine Systembusanfrage über ein Busanfragesignal REQ[1:0] gleich 2'b01 machen, als Satz SO definiert. Viertens ist der Satz von Funktionsblöcken, die nur eine Anfrage nach dem externen Bus über ein Busanfragesignal REQ[1:0] gleich 2'b10 machen, als Satz EO definiert, welcher gleich dem Satz an übergeordneten Einheiten des externen Busses ist. Fünftens ist der Satz an Funktionsblöcken, die eine Anfrage sowohl nach dem Systembus als auch nach dem externen Bus über ein Busanfragesignal REQ[1:0] gleich 2'b11 machen, als Satz ES definiert. Sechstens ist der Satz an Funktionsblöcken, die eine Anfrage nach dem Systembus oder dem externen Bus über ein Busan fragesignal REQ[1:0] gleich 2b'01, 2'b10 oder 2'b11 machen, als Satz A definiert. Die obige Erläuterung erleichtert die Beschreibung der Betriebsweise spezieller Komponenten der Erfindung.
  • Wieder auf 7 bezugnehmend wird nun die Betriebsweise des Zuteilers 495 zur Freigabe der obigen Anfragetypen erläutert. Die Betriebsvorgänge werden gemäß der Klassifikation von 11 beschrieben. Die Verfahren des Zuteilers 495 zum Zuweisen von Prioritäten werden jedoch weiter unten beschrieben.
  • Als erstes wird, wenn der ausgewählte Funktionsblock ein Element des Satzes ES (ein Busanfragesignal REQ gleich 2'b11) ist, nur der Systembus-Masterselektor 730 angesteuert. Er erteilt ein Systembus-Erteilungssignal SGNT 11 zum ausgewählten Funktionsblock. Außerdem steuert er den Systembus-Slaveselektor an. Letzterer steuert seinerseits optional die Externspeichersteuerung 440 an, so dass dem übergeordneten Systembus-Funktionsblock, dem die Busbesitzanfrage erteilt wird, auch die Nutzung des externen Busses 415 erteilt werden kann. In diesem Fall empfängt die Externspeichersteuerung 440 ein Adress- und Steuersignal S16 bezüglich des Systembusses über den Adress- und Steuerteil 410-C des Systembusses 410 vom ausgewählten übergeordneten Block. Die Externspeichersteuerung 440 empfängt außerdem Systembusdaten S17 vom ausgewählten übergeordneten Block über den Datenteil 410-D des Systembusses 410. Das empfangene Adress- und Steuersignal S16 und die Daten S17 werden zum externen Bus weiterverbunden.
  • Wenn andererseits das Busanfragesignal 2'b01 oder 2'b10 ist, wählen der Systembus-Masterselektor 730 und der Masterselektor 750 für den externen Bus jeweils unterschiedliche Funktionsblöcke aus, denen Buserteilungssignale erteilt werden.
  • Mit anderen Worten kann der Systembus-Masterselektor 730, wenn der ausgewählte Funktionsblock ein Element des Satzes EO (das Busanfragesignal REQ gleich 2'b10) ist, des weiteren einen Funktionsblock auswählen, der eines der Elemente des Satzes SO ist. Dies bedeutet, dass bei Vorhandensein von Funktionsblöcken, die unter den verbliebenen Funktionsblöcken (mit Ausnahme des zuerst ausgewählten Funktionsblocks) zum Satz SO gehörige Anfragen gemacht haben, derjenige Funktionsblock ausgewählt wird, der unter diesen Funktionsblöcken die höchste Priorität hat. Der Masterselektor 750 des externen Busses wird so angesteuert, dass ein Erteilungssignal EGNT für den externen Bus so angesteuert wird, dass ein Erteilungssignal EGNT für den externen Bus zum zuerst ausgewählten Funktionsblock gesendet wird, während der Systembus-Masterselektor 730 so angesteuert wird, dass ein Systembus-Erteilungssignal SGNT zum als zweitem ausgewählten Funktionsblock gesendet wird. Der Masterselektor 750 für den externen Bus sendet ein Ansteuersignal EDR zur Ansteuerung der Externspeichersteuerung 440, so dass die ausgewählte übergeordnete Einheit des externen Busses den externen Bus 415 verwenden kann. Der Systembus-Masterselektor 730 steuert den Systembus-Slaveselektor 740 an, um eine untergeordnete Systembus-Einheit in Abhängigkeit vom Betrieb der ausgewählten übergeordneten Systembus-Einheit auszuwählen. Der Systembus-Slaveselektor 740 legt fest, welche untergeordnete Bus-Einheit vom Adress- und Steuersignal S18 des Systembusses verwendet werden kann, um ein Auswahlsignal zur ausgewählten untergeordneten Bus-Einheit zu übertragen.
  • Drittens kann der Anfragedecoder 710, wenn der ausgewählte Funktionsblock das ausgewählte Element des Satzes SO ist, des weiteren einen Funktionsblock im Satz EO auswählen. Dies bedeutet, dass bei Vorhandensein von Funktionsblöcken, die unter den verbliebenen Funktionsblöcken (mit Ausnahme des zuerst ausgewählten Funktionsblocks) zum Satz EO gehören, derjenige Funktionsblock ausgewählt wird, der unter diesen Funktionsblöcken die höchste Priorität hat. Der Systembus-Masterselektor 730 wird so angesteuert, dass das Systembus-Erteilungssignal SGNT zum zuerst ausgewählten Funktionsblock gesendet wird, während der Masterselektor 750 für den externen Bus so angesteuert wird, dass das Erteilungssignal EGNT für den externen Bus zum als zweitem ausgewählten Funktionsblock gesendet wird. Der Masterselektor 750 für den externen Bus steuert die Externspeichersteuerung 440 so an, dass die ausgewählte übergeordnete Einheit des externen Busses den externen Bus 415 verwenden kann.
  • Wieder bezugnehmend auf 8 wird nun die Betriebsweise der Mehreingangs-Externspeichersteuerung 440 zur Bewirkung der obigen Anfragetypen erläutert, und zwar gemäß den Klassifikationen von 11.
  • Wenn die Externspeichersteuerung 440 als untergeordnete Systembus-Einheit fungiert, fungiert eine übergeordnete Systembus-Einheit als das Element des Satzes ES, so dass sie den Systembus 410 und den externen Bus 415 gleichzeitig nutzen kann. In diesem Fall sendet der Systembus-Slaveselektor 740 ein Signal SEL zur Ansteuerung der Externspeichersteuerung 440, damit diese als untergeordnete Systembus-Einheit fungiert, während der Masterselektor 750 für den externen Bus die Externspeichersteuerung 440 nicht ansteuert. Dann sendet die Steuereinheit 810 für den externen Bus ein Steuersignal S38 zum Adress- und Steuermultiplexer 820, zum Schreibdatenmultiplexer 830 und zum Lesedatendemultiplexer 840. Danach empfängt die Steuereinheit 810 für den externen Bus Adress- und Steuersignale S16 sowie Daten S17 über den Systembus 410 vom übergeordneten Systembus-Funktionsblock und decodiert selbige zur Ansteuerung des externen Busses 415, um auf einen Speicher oder eine E/A-Einheit außerhalb des Chips zuzugreifen. Für diesen Zweck sendet die Steuereinheit 810 für den externen Bus ein Steuersignal S39, um die Dreizustands-Puffer 852, 854, 856 in einen aktiven Zustand zu steuern. Dies bedeutet, dass die Externspeichersteuerung 440, wenn die CPU 422 oder der DDMA-Block 424 eine Anfrage nach sowohl dem Systembus 440 als auch dem externen Bus 415 macht, die Adress- und Steuersignale S16 und die Daten S17 vom Systembus 410 empfängt und den externen Bus 415 ansteuert.
  • Andererseits steuert die Externspeichersteuerung 440, wenn sie nicht als untergeordnete Systembus-Einheit fungiert, sondern durch ein Ansteuersignal EDR vom Masterselektor 750 für den externen Bus angesteuert wird, den externen Bus 414 derart, dass letzterer von einer übergeordneten Einheit des externen Busses benutzt werden kann. Die übergeordnete Einheit des externen Busses kann die DRAM-Wiederauffrischsteuerung 464, ein Kanal des mJmCGDMA 430 oder das externe Bauelement 473 sein. Der Masterselektor 750 für den externen Bus informiert die Steuereinheit 810 des externen Busses hierüber durch das Ansteuersignal EDR.
  • Wenn unter den übergeordneten Einheiten des externen Busses die DRAM-Wiederauffrischsteuerung ausgewählt wird, schneidet die Steuereinheit 810 für den externen Bus die Signale vom Adress- und Steuermultiplexer 820, vom Schreibdatenmultiplexer 830 und vom Lesedatendemultiplexer 840 ab und erzeugt stattdessen ein Steuersignal zum Wiederauffrischen des DRAM 484 und gibt dieses ab. Wenn das externe Bauelement 473 ausgewählt wird, schneidet die Steuereinheit 810 für den externen Bus Signale vom Adress- und Steuermultiplexer 820, vom Schreibdatenmultiplexer 830 und vom Lesedatendemultiplexer 840 ab und sendet ein Steuersignal S39 zu den Dreizustands-Puffern 852, 854, 856, um diese in einen Zustand hoher Impedanz zu versetzen, so dass das externe Bauelement 473 den externen Bus 415 ansteuern kann. Nachdem dem Kanal des GDMA 430 Besitz über den externen Bus zur Datenkommunikation zwischen externen Speichern (Busanfragesignal REQ = 2b'10) erteilt wurde, empfängt die Externspeichersteuerung 440 Adressen, Steuersignal und Daten S15 direkt vom GDMA-Kanal, um so den externen Bus 415 anzusteuern, statt das Adress- und Steuersignal S16 und die Daten S17 vom Systembus 410 zu empfangen. Zu diesem Zweck kann die Steuereinheit 810 für den externen Bus in direkter Kommunikation mit dem GDMA-Kanal über das Steuersignal S38 vom Adress- und Steuermultiplexer 820, Schreibdatenmultiplexer 810 und Lesedatendemultiplexer 840 stehen. Die zwischen dem GDMA 430 sowie dem Adress- und Steuermultiplexer 820, dem Schreibdatenmultiplexer 830 und dem Lesedatendemultiplexer 840 ausgetauschten Signale laufen über Leitungen des in 4 gezeigten dritten Pfades 431.
  • Die Erfindung stellt zusätzlich Verfahren bereit, die weiter unten erläutert werden. Darüber hinaus stellt die Erfindung eine Vorrichtung zur Verfügung, welche diese Verfahren durchführt bzw. die Durchführung derselben unterstützt. Diese Vorrichtung kann in spezieller Weise für die geforderten Zwecke aufgebaut sein, oder sie kann einen Universalcomputer beinhalten, der durch ein im Computer gespeichertes Computerprogramm selektiv aktiviert oder neu konfiguriert wird. Die hierin vorgestellten Verfahren und Algorithmen stehen nicht notwendigerweise inhärent mit irgendeinem besonderen Computer oder einer anderen Vorrichtung in Beziehung. Insbesondere können verschiedene Universalmaschinen mit Programmen gemäß den hierin gegebenen Lehren verwendet werden, oder es kann sich als günstiger herausstellen, spezialisiertere Vorrichtungen zu bauen, um die benötigten Verfahrensschritte auszuführen. Die benötigte Struktur für derartige Maschinen ergibt sich aus der vorliegenden Beschreibung.
  • Nützliche Maschinen bzw. Vorrichtungen zur Durchführung der Betriebsvorgänge der Erfindung umfassen digitale Universalcomputer oder ähnliche Geräte. In allen Fällen sollte der Unterschied zwischen dem Verfahren des Betreibens eines Computers und dem Berechnungsverfahren selbst beachtet werden. Die Erfindung bezieht sich ebenso auf Verfahrensschritte zum Betreiben eines Computers und zur Verarbeitung elektrischer oder anderer physikalischer Signale zwecks Erzeugung anderer gewünschter physikalischer Signale.
  • Die Erfindung stellt zusätzlich ein Programm und ein Verfahren zur Ausführung des Programms bereit, das am bevorzugtesten als ein Programm für eine Rechenmaschine implementiert ist, wie einen Universalcomputer, einen Spezialzweckcomputer, einen Mikroprozessor etc. Die Erfindung stellt auch ein Speichermedium bereit, auf dem das erfindungsgemäße Programm gespeichert ist. Das Speichermedium ist ein computerlesbares Medium, z.B. ein Speicher, und wird durch die oben erwähnte Rechenmaschine gelesen.
  • Ein Programm ist allgemein als eine Abfolge von Schritten definiert, die zu einem gewünschten Resultat führt. Diese Schritte, auch als Instruktionen bezeichnet, sind diejenigen, die physikalische Manipulationen von physikalischen Größen erfordern. Üblicherweise, wenngleich nicht zwingend, haben diese Größen die Form von elektrischen oder magnetischen Signalen, die gespeichert, übertragen, kombiniert, verglichen und auf andere Weise manipuliert oder verarbeitet werden können. Beim Speichern können sie in irgendein computerlesbares Medium gespeichert werden. Gewöhnlich wird hauptsächlich aus Gründen der allgemeinen Nutzung auf diese Signale als Bits, Datenbits, Proben, Werte, Elemente, Symbole, Buchstaben, Bilder, Ausdrücke, Zahlen oder dergleichen Bezug genommen. Es sollte jedoch beachtet werden, dass alle diese und ähnliche Ausdrücke mit den geeigneten physikalischen Größen verknüpft sind und lediglich bequeme Bezeichnungen für diese physikalischen Größen darstellen.
  • Die detaillierte Beschreibung erfolgt weitgehend anhand von Flussdiagrammen, Anzeigebildern, Algorithmen und symbolischen Repräsentationen von Datenbitoperationen innerhalb eines computerlesbaren Medi ums, wie eines Speichers. Solche Beschreibungen und Repräsentationen sind der Typ gewöhnlicher Bezeichnungen, wie sie vom Fachmann in der Programmier- und/oder Datenverarbeitungstechnik verwendet werden, um den Inhalt ihrer Arbeit effektiv anderen zu erläutern. Der Programmierfachmann kann diese Beschreibung dazu nutzen, leicht spezifische Instruktionen zum Implementieren eines Programms gemäß der Erfindung zu erzeugen. Aus ökonomischen Gründen werden vorliegend Flussdiagramme, die zur Beschreibung von Verfahren der Erfindung verwendet werden, nicht zur Beschreibung von Software der Erfindung wiederholt.
  • Oftmals ist es der Einfachheit halber bevorzugt, ein Programm als verschiedene, miteinander verbundene, unterschiedliche Software-Module oder -Elemente zu implementieren und zu beschreiben, insgesamt auch als Software bezeichnet. Dies ist jedoch nicht zwingend, vielmehr kann es Fälle geben, in denen Module äquivalent in einem Einzelprogramm mit unscharfen Grenzen vereinigt sind. In jedem Fall können die Software-Module oder -Elemente der Erfindung allein oder in Kombination mit anderen implementiert sein. Wenngleich gesagt wurde, dass das Programm in einem computerlesbaren Medium gespeichert sein kann, versteht es sich für den Fachmann, dass dies nicht ein einzelner Speicher und auch keine einzelne Maschine sein muss. Verschiedene Teile, Module oder Elemente des Programms können in verschiedenen Speichern oder sogar separaten Maschinen sitzen. Die separaten Maschinen können direkt oder über ein Netzwerk, z.B. ein lokales oder ein globales Netzwerk, wie dem Internet, miteinander verbunden sein.
  • Im vorliegenden Fall sind Verfahren der Erfindung durch Maschinenoperationen implementiert. Mit anderen Worten sind die Realisierungen des Programms der Erfindung so gemacht, dass sie Verfahren der Erfindung ausführen, die vorliegend beschrieben sind. Diese können optional in Verbindung mit einem oder mehreren Menschen als Benutzer durchge führt werden, die einige, jedoch nicht alle von ihnen ausführen. Die Benutzer müssen sich nicht an einem gemeinsamen Ort befinden, sondern es braucht nur jeder eine Maschine zu haben, die ein Teil des Programms beherbergt. Alternativ können einige dieser Maschinen automatisch ohne Benutzer und/oder unabhängig voneinander arbeiten. 12 veranschaulicht in Diagrammform einen Teil von Rangfolgen für Verfahren gemäß einer Realisierung der Erfindung, die nachfolgend erläutert werden. Dabei stellen die Rangfolgen von 12 nur ein mögliches Beispiels dar, andere Rangfolgen sind ebenfalls erfindungsgemäß möglich.
  • Gemäß dem hybriden Arbitrierungsverfahren werden Anfragen 422-1, 424-1, 426-1, 428-1, 428-2, 428-3, 428-4, 464-1 zuerst entsprechend den übergeordneten Blöcken, von denen sie stammen, in Gruppen gebündelt. Jede Gruppe enthält Anfragen gleicher Wichtigkeit. Die Anfrage 464-1 vom DRAM 464 wird als einzige in eine Gruppe E gruppiert. Die Anfragen 424-1, 426-1, 428-1, 428-2, 428-3, 428-4 werden in eine Gruppe G von den DDMA-Blöcken 424, 426 bzw. vier Kanälen des GDMA 430 gebündelt. Die Anfrage 422-1 von der CPU 422 wird als einzige in eine Gruppe H gruppiert. Dann werden die Gruppen nach ihrer Wichtigkeit einsortiert. Gruppe E (Anfrage zum Auffrischen des DRAM) erhält in der Rangfolge die höchste Wichtigkeit, und die Gruppen G und H werden als gleich wichtig in einer zusammengesetzten Gruppe F gebündelt.
  • Es sei angemerkt, dass es im Schema von 12 nur ein Diagramm zum Adressieren von Anfragen sowohl des internen Busses als auch des externen Busses für den einzelnen Zuteiler 495 gibt. Hierzu tritt die nicht näher gezeigte Tatsache, dass Anfragen auch basierend darauf klassifiziert werden, welchen der beiden Busse sie verwendet wollen.
  • Nachstehend wird auf erfindungsgemäße Verfahren näher eingegangen.
  • 13 zeigt ein Flussdiagramm 1300 zur Veranschaulichung eines allgemeinen erfindungsgemäßen Verfahrens. Gemäß einem Schritt 1310 werden irgendwelche zusätzlichen Anfragen in den Zuteiler 495 eingegeben. Dies geschieht normalerweise ein Mal für jeden Betriebszyklus. In einem nächsten Schritt 1320 werden die eingegebenen Anfragen nach den Bussen charakterisiert, die sie benötigen. Mit anderen Worten werden sie danach charakterisiert, ob sie einen Systembus auf dem Chip, einen externen Bus des Chips oder beide benötigen. Eine solche Charakterisierung ist beispielsweise in der obigen 11 auf einem konzeptionellen Niveau erfolgt. Die Charakterisierung kann durch spezielle Codierung der Anfragesignale durchgeführt werden, wie oben erläutert.
  • In einem nächsten Schritt 1330 wird eine der eingegebenen Anfragen dahingehend identifiziert, dass sie nur solche Busse benötigt, die verfügbar sind. Wenn dieser Schritt wiederholt wird, können eine zweite und gegebenenfalls eine dritte Anfrage gleichzeitig durch diesen Schritt 1330 identifiziert werden. In einem optionalen nächsten Schritt 1340 kann der vorherige Schritt 1330 unter zusätzlicher Beachtung von Rangfolgen der Anfragen durchgeführt werden. Die Rangfolgen, wie diejenige von 12, können im voraus festgelegt und in Form absoluter oder relativer Rangfolgen gegeben sein. Die Rangfolgen können außerdem die Wartehistorie einer Anfrage beachten und dann jeweils eine solche gegenüber gleichen anderen bevorzugen, die schon länger wartet.
  • In einem nächsten Schritt 1350 wird abgefragt, ob die Erteilung der oben identifizierten Anfrage einen der Busse verfügbar lässt. Bejahendenfalls kehrt die Ausführung zum Schritt 1330 zurück, und es wird eine weitere Anfrage identifiziert. Wird die Abfrage verneint, dann werden in einem nächsten Schritt 1360 alle bislang identifizierten Anfragen gleichzeitig ausgeführt. Dies wird durch Erteilen aller identifizierten Anfragen be wirkt, bevorzugt gleichzeitig. Die Ausführung des Programms kann dann zum Schritt 1310 zurückkehren.
  • 14 veranschaulicht in einem Flussdiagramm 1400 ein allgemeines erfindungsgemäßes Verfahren. In einem Schritt 1410 werden jegliche zusätzliche Anfragen eingegeben, in gleicher Weise wie oben im Schritt 1310. In einem nächsten Schritt 1420 werden ähnlich zum obigen Schritt 1320 die eingegebene Anfragen danach charakterisiert, welche Busse sie benötigen. In einem nächsten Schritt 1430 wird, wie oben beschrieben, eine Rangfolge der Anfragen erstellt. In einem nächsten Schritt 1440 wird die Anfrage mit der höchsten Priorität identifiziert. In einem nächsten Schritt 1450 wird festgestellt, welche Busse nicht belegt sind, wenn alle identifizierten Anfragen erteilt würden. Wenn es keine solchen Busse mehr gibt, werden in einem nächsten Schritt 1460 die identifizierten Anfragen erteilt, und die Programmausführung kann zum Schritt 1410 zurückkehren. Andernfalls wird in einem nächsten Schritt 1470 die Anfrage mit der noch höchsten, nächsten Priorität identifiziert.
  • In einem nächsten Schritt 1480 wird abgefragt, ob die zuletzt identifizierte Anfrage ausschließlich durch nicht belegte Busse ausführbar ist, wenn sie erteilt würde. Bejahendenfalls kehrt die Ausführung zum Schritt 1450 zurück. Andernfalls wird in einem nächsten Schritt 1490 festgestellt, ob die zuletzt identifizierte Anfrage die letzte der eingegebenen Anfragen war. Wenn nicht, setzt die Ausführung mit Schritt 1470 fort, um eine weitere Anfrage auszuwerten. Bejahendenfalls setzt die Ausführung mit Schritt 1460 fort.
  • 15 veranschaulicht in einem Flussdiagramm 1500 ein spezielles erfindungsgemäßes Verfahren, wobei die Schritte von 15 die Betriebsweise jedes Funktionsblocks im Buszuteiler von 7 und 8 zeigen, wie ersichtlich.
  • In einem Schritt 1510 überprüft der Anfragedecoder 710, ob ein Busanfragesignal (REQ eingegeben wurde). Wenn es eine Busanfrage gibt, geht der Prozessfluss zu einem Schritt 1520 weiter, während der Anfragedecoder 710 auf eine Busanfrage im Schritt 1510 wartet, solange es keinen solchen gibt.
  • In Schritt 1520 wählt der Anfragedecoder 710 denjenigen Funktionsblock mit der höchsten Priorität unter dem einen oder den mehreren Funktionsblöcken, die Busanfragen gesendet haben, basierend auf einem vorprogrammierten Prioritätsalgorithmus bezugnehmend auf das Prioritätssteuergerät 720 aus. Der Prozessfluss geht dann zu einem Schritt 1530. In diesem erfolgt eine Überprüfung, ob das Busanfragesignal des Funktionsblocks, der im Schritt 1520 ausgewählt wurde, gleich 2'b11 entsprechend dem Satz ES ist. Bejahendenfalls geht der Prozessfluss zum Schritt 1540, anderenfalls zum Schritt 1550.
  • Im Schritt 1540 steuert der Anfragedecoder 710 den Systembus-Masterselektor 730 derart, dass dem im Schritt 1520 ausgewählten Funktionsblock das Systembus-Erteilungssignal SGNT zur Nutzung eines Systembusses erteilt werden kann. Der Prozessfluss geht dann zum Schritt 1620. Im Schritt 1550 wird überprüft, ob das Busanfragesignal des im Schritt 1520 ausgewählten Funktionsblocks gleich 2'b01 entsprechend dem Satz SO ist. Bejahendenfalls geht der Prozessfluss zum Schritt 1560, andernfalls zum Schritt 1590.
  • Im Schritt 1560 wird überprüft, ob es unter den verbleibenden Funktionsblöcken ausgenommen dem im Schritt 1520 ausgewählten Funktionsblock Funktionsblöcke gibt, die Busanfragesignale 2'b10 entsprechend dem Satz EO abgeben. Wenn es solche Funktionsblöcke gibt, geht der Prozessfluss zum Schritt 1570, andernfalls zum Schritt 1580.
  • Im Schritt 1570 wählt der Anfragedecoder 710 den Funktionsblock mit der höchsten Priorität unter den Funktionsblöcken im Satz EO aus. Dann steuert der Anfragedecoder 710 den Systembus-Masterselektor 730 derart, dass der im Schritt 1520 ausgewählte Funktionsblock ein Systembus-Erteilungssignal SGMT erhält, während der Anfragedecoder 710 den Masterselektor 750 für den externen Bus so ansteuert, dass dem im Schritt 1570 ausgewählten Funktionsblock ein Erteilungssignal EGNT für den externen Bus gegeben wird. Der Prozessfluss geht dann zum Schritt 1620.
  • Im Schritt 1580 steuert der Anfragedecoder 710 nur den Systembus-Masterselektor 730 derart an, dass das Systembus-Erteilungssignal SGNT dem in Schritt 1520 ausgewählten Funktionsblock gegeben wird. Der Prozessfluss geht dann zum Schritt 1620.
  • Im Schritt 1590 wird überprüft, ob es unter den verbliebenen Funktionsblöcken mit Ausnahme des im Schritt 1520 ausgewählten Funktionsblocks Funktionsblöcke gibt, die Busanfragesignale 2'b01 entsprechend dem Satz SO abgeben. Wenn dies der Fall ist, geht der Prozessfluss zum Schritt 1600, andernfalls zum Schritt 1610.
  • Im Schritt 1600 wählt der Anfragedecoder 710 den Funktionsblock mit der höchsten Priorität unter den Funktionsblöcken im Satz SO aus. Dann steuert der Anfragedecoder 710 den Masterselektor 750 für den externen Bus so an, dass dem im Schritt 1520 ausgewählten Funktionsblock ein Erteilungssignal EGNT für den externen Bus gegeben wird, während er den Systembus-Masterselektor 730 so ansteuert, dass das Systembus-Erteilungssignal SGNT dem im Schritt 1520 ausgewählten Funktionsblock gegeben wird. Der Prozessfluss geht dann zum Schritt 1620.
  • Im Schritt 1610 steuert der Anfragedecoder 710 nur den Masterselektor 750 für den externen Bus so an, dass dem im Schritt 1520 ausgewählten Funktionsblock das Erteilungssignal EGNT für den externen Bus gegeben wird.
  • Im Schritt 1620 steuert der Systembus-Masterselektor 730, wenn er eine übergeordnete Systembus-Einheit auswählt, den Systembus-Slaveselektor 740 so an, dass eine geeignete untergeordnete Systembus-Einheit in Abhängigkeit vom Betrieb der ausgewählten übergeordneten Systembus-Einheit ausgewählt werden kann. Insbesondere steuert der Systembus-Slaveselektor 740, wenn die ausgewählte übergeordnete Systembus-Einheit das Element des Satzes ES ist, die Externspeichersteuerung 440, die eine untergeordnete Systembus-Einheit darstellt, derart an, dass der im Schritt 1520 ausgewählte Funktionsblock gleichzeitig den Systembus und den externen Bus benutzt. Wenn der Masterselektor 750 für den externen Bus eine übergeordnete Einheit des externen Busses auswählt, steuert er die Externspeichersteuerung 440 so an, dass der externe Bus gesteuert wird. Das Prioritätssteuergerät 720 stellt die Priorität jedes Funktionsblocks gemäß eines Programms neu ein. Der Prozessfluss geht dann zum Schritt 1630. Es sei hier klargestellt, dass der Schritt 1620 optional ist. Er kann in anderen Ausführungsformen der Erfindung entfallen, wobei dann der Prozessfluss direkt zum Schritt 1630 geht.
  • Im Schritt 1630 wird überprüft, ob der Betrieb der ausgewählten Funktionsblöcke abgeschlossen wurde. Wenn dies der Fall ist, kehrt der Prozessfluss zum Schritt 1510 zurück, andernfalls wartet er noch weiter bis zum Abschluss im Schritt 1630.
  • 16 zeigt Momentaufnahmen, die aus einer Busarbitrierung gemäß einem Busarbitrierungsschema nach einer erfindungsgemäßen Realisierung resultieren. Es versteht sich hierbei, dass relevante Signale direkt neben Anfragen gezeigt sind, um die Anfragen dahingehend zu charakterisieren, welche Busse sie verwenden wollen. Einer der wichtigen Aspekte der Erfindung besteht darin, dass Anfragen zur Nutzung durch übergeordnete Einheiten des Systembusses und des externen Busses des Chips nicht-hierarchisch behandelt werden, unabhängig davon, ob sich letztere auf dem Chip oder außerhalb desselben befinden. Mit anderen Worten werden Blöcke des Satzes A adressiert, nicht nur von S. Ein weiterer anzumerkender Aspekt besteht darin, dass in einigen Fällen ungleichartige Anfragen gleichzeitig durchgeführt werden. Außerdem kann die Priorität aller Funktionsblöcke auf und außerhalb des Chips unter Verwendung eines einzigen Zuteilers 495 programmiert werden.
  • 17 veranschaulicht in Tabellenform einen Vergleich des Leistungsvermögens des Schemas der Erfindung verglichen mit demjenigen nach dem Stand der Technik, wobei die Tabelle auf Wahrscheinlichkeitsausdrücke aufbaut. Für die Tabelle wurden folgende Annahmen gemacht. Erstens ist die Rate, mit der jeder Funktionsblock seinen Betrieb ausführt, gleich groß gewählt, wenn die Funktionsblöcke, welche die gleiche Priorität aufweisen, ihre Betriebsvorgänge für eine ausreichende Zeitspanne ausführen. Zweitens ist angenommen, dass die Sätze von Funktionsblöcken, d.h. die Sätze EO, ES und SO, alle ein oder mehrere Elemente haben. In der Tabelle ist die Wahrscheinlichkeit für die Durchführung eines Vorgangs pro Satz festgelegt.
  • Die Busnutzung ist in der Tabelle als Nutzungsrate jedes Busses während des tatsächlichen Betriebs jedes Funktionsblocks definiert, der Busbesitz hat. Der Fall, in welchem der Funktionsblock mit Systembusbesitz seinen Betrieb aufgrund Fehlens des Besitzes des externen Busses, wie in 3D gezeigt, nicht ausführen kann, ist von der Busnutzung des herkömmlichen hierarchischen Busarbitrierungsschemas dieser Tabelle ausgenommen.
  • Wie aus der Tabelle ohne weiteres ersichtlich, ist gemäß dem Exklusiv-Busarbitrierungsschema die Wahrscheinlichkeit für die Durchführung von Betriebsvorgängen durch alle Elemente gleich groß. Gemäß dem herkömmlichen hierarchischen Busarbitrierungsschema einerseits und der Erfindung andererseits hat jedoch jeder Satz einen anderen Wert für diese Wahrscheinlichkeit. Im herkömmlichen Exlusiv-Busarbitrierungsschema ergibt sich die Wahrscheinlichkeit, dass die Elemente der Sätze EO, ES und SO mit Busbesitz ihre Betriebsvorgänge ausführen, aus den nachstehenden Gleichungen (1), (2) und (3): n(EO)/(n(A)·n(EO)) = 1/n(A) (1) n(ES)/(n(A)·n(ES)) = 1/n(A) (2) n(SO)/(n(A)·n(SO)) = 1/n(A) (3)
  • Außerdem kann die Busnutzung bei Durchführung eines Betriebs durch die Elemente der Sätze EO, ES und SO gemäß dem herkömmlichen Exklusiv-Busarbitrierungsschema aus folgender Gleichung (4) erhalten werden: n(EO)/(2n(A)) + n(ES)/n(A) + n(SO)/(2n(A)) = (n(EO) + 2n(ES) + n(SO))/2n(A)) (4)
  • Im herkömmlichen hierarchischen Busarbitrierungsschema kann die Wahrscheinlichkeit, dass die Elemente der Sätze EO, ES und SO mit Busbesitz ihre Betriebsvorgänge durchführen, aus den nachstehenden Gleichungen (5), (6) und (7) erhalten werden n(SO)/(n(S)·n(EO)) + n(ES)/(2n(S)·n(EO)) = (n(ES) + 2n(SO))/(2n(S)n(EO)) (5) n(ES)/(2n(S)·n(ES)) = 1/(2n(S)) (6) n(SO)/(n(S)·n(SO)) = 1/n(S) (7)
  • Des weiteren kann die Busnutzung gemäß dem herkömmlichen hierarchischen Busarbitrierungsschema durch folgende Gleichung (8) erhalten werden: n(EO)·(n(ES) + 2n(SO))/(4n(S)·n(EO)) + n(ES)/(2n(S)) + n(SO)/(2n(S)) = (4n(SO) + 3n(ES))/(4n(S)) (8)
  • Bei der Erfindung kann die Wahrscheinlichkeit, dass die Elemente der Sätze EO, ES und SO mit Busbesitz ihre Betriebsvorgänge durchführen, durch die nachstehenden Gleichungen (9), (10) und (11) erhalten werden: 1/n(A) + n(SO)/(n(A)·n(EO)) = (n(EO) + n(SO))/(n(A)·n(EO)) (9) n(ES)/(n/A)·n(ES)) = 1/n(A) (10) 1/n(A) + n(EO)/(n(A)·n(SO)) = (n(SO) + n(EO))/(n(A)·n(SO)) (11)
  • Außerdem kann die Busnutzung gemäß der Erfindung durch folgende Gleichung 12 erhalten werden: (n(E) + n(SO))/(2n(A)) + n(ES)/n(A) + (n(SO) + n(EO))/(2n(A)) = 1 (12)
  • Wie oben erläutert, bieten das herkömmliche hierarchische Arbitrierungsschema und das bei der Erfindung eingesetzte Busarbitrierungsschema im Vergleich zum herkömmlichen Exklusiv-Busarbitrierungsschema eine hohe Wahrscheinlichkeit dafür, dass jeder Funktionsblock mit Busbesitz seinen Betriebsvorgang durchführen kann. Des weiteren ergibt sich für die Größe der Busnutzung die Reihenfolge Busarbitrierungsschema der Erfindung, herkömmliches hierarchisches Busarbitrierungsschema und herkömmliches Exklusiv-Busarbitrierungsschema, d.h. Gleichung (12) > Gleichung (8) > Gleichung (4).
  • Dementsprechend erlaubt bei der Erfindung das Busarbitrierungsschema die Programmierung der Prioritäten aller Funktionsblöcke und resultiert in einer hohen Busnutzung.

Claims (24)

  1. Halbleiterbauelement mit – einem Chip (405), – mehreren ersten Blöcken auf dem Chip, – einem mit den ersten Blöcken gekoppelten Systembus (410) auf dem Chip und – einem externen Bus (415) zum Koppeln dualer erster Blöcke mit einer Mehrzahl von zweiten Blöcken außerhalb des Chips, gekennzeichnet durch – einen einzelnen Mehrentscheidungs-Zuteiler (495), der darauf ausgelegt ist, Anfragen nach Besitz des Systembusses (410) und des externen Busses (415) zu empfangen, alle empfangenen Anfragen gemäß einem programmierbaren Prioritätsplan in eine Rangfolge zu bringen, ein erstes Erteilungssignal zum dualen ersten Block bezüglich einem ersten Besitz des externen Busses zu übertragen und ein zweites Erteilungssignal bezüglich eines zum ersten gleichzeitigen zweiten Besitzes des Systembusses zu einem anderen der ersten Blöcke zu übertragen.
  2. Halbleiterbauelement nach Anspruch 1, weiter dadurch gekennzeichnet, dass der Zuteiler folgende Elemente enthält: – einen Anfragedecoder (710), der darauf ausgelegt ist, ein Anfragesignal von einem dualen ersten Block, der als eine übergeordnete Einheit des externen Busses fungiert, und ein weiteres Anfragesignal von einem anderen der ersten Blöcke, der als eine übergeordnete Einheit des Systembusses fungiert, zu empfangen, – ein Prioritätssteuergerät (420) zum Empfangen eines Ausgangssignals des Anfragedecoders, – einen Systembus-Masterselektor (730) zum Empfangen eines Ausgangssignals des Prioritätssteuergerätes mit Daten über eine erste höchste Priorität und zum Senden des ersten Erteilungssignals in Reaktion auf die erste höchste Priorität und – einen Masterselektor (750) für den externen Bus zum Empfangen eines Ausgangssignals des Prioritätssteuergerätes mit Daten über eine zweite höchste Priorität und zum Senden des zweiten Erteilungssignals in Reaktion auf die zweite höchste Priorität.
  3. Halbleiterbauelement nach Anspruch 1 oder 2, weiter gekennzeichnet durch folgende Elemente: – einen ersten Busschalter (612) auf dem Chip, – einen Hilfssystembus auf dem Chip, der über den ersten Busschalter mit dem Systembus gekoppelt ist, und – eine Mehrzahl von dritten Blöcken auf dem Chip, die mit dem Hilfssystembus gekoppelt sind, wobei der Zuteiler darauf ausgelegt ist, ein drittes Erteilungssignal an einen der dritten Blöcke bezüglich eines dritten Besitzes des Hilfssystembusses zu senden, der gleichzeitig mit dem ersten Besitz ist.
  4. Halbleiterbauelement nach einem der Ansprüche 1 bis 3, weiter dadurch gekennzeichnet, dass der Systembus in einen linken Teil (610-L) und einen davon über einen zweiten Busschalter (612) getrennten rechten Teil aufgeteilt ist und der Zuteiler darauf ausgelegt ist, ein Steuersignal zum zweiten Busschalter zu senden.
  5. Halbleiterbauelement nach einem der Ansprüche 1 bis 4, weiter dadurch gekennzeichnet, dass – ein dritter Pfad (431) verschieden vom Systembus und vom externen Bus vorgesehen ist und – eine Mehrzahl erster Blöcke auf dem Chip direkt mit dem Systembus gekoppelt ist, wobei wenigstens einer der ersten Blöcke eine mit dem externen Bus gekoppelte externe Speichersteuerung (440) ist, die dafür eingerichtet ist, wenigstens ein Speicherbauelement zu steuern, das sich außerhalb des Chips befindet, und wobei ein weiterer der ersten Blöcke ein allgemeiner mehrkanaliger Mehrentscheidungs-Direktspeicherzugriffsblock (430) ist, der mit der externen Speichersteuerung über den dritten Pfad gekoppelt ist.
  6. Halbleiterbauelement nach Anspruch 5, weiter dadurch gekennzeichnet, dass die externe Speichersteuerung folgende Elemente enthält: – eine Steuereinheit (810) zur Steuerung des externen Busses, – einen Adress-/Steuermultiplexer (820), der darauf ausgelegt ist, Adress- und Steuereingangssignale sowohl vom Systembus als auch vom allgemeinen mehrkanaligen Mehrentscheidungs-Direktspeicherzugriffsblock zu empfangen und eines der empfangenen Adress- und Steuereingangssignale zur Steuereinheit für den externen Bus zu übertragen, – einen Schreibdatenmultiplexer (830), der dafür eingerichtet ist, Dateneingangssignale sowohl vom Systembus als auch vom allgemeinen mehrkanaligen Mehrentscheidungs-Direktspeicherzugriffsblock zu empfangen und eines der empfangenen Dateneingangssignale zur Steuereinheit für den externen Bus zu übertragen, und – einen Lesedatendemultiplexer (840), der dafür eingerichtet ist, Dateneingangssignale von der Steuereinheit für den externen Bus zu empfangen und die empfangenen Dateneingangssignale zum Systembus oder zum allgemeinen mehrkanaligen Mehrentscheidungs-Direktspeicherzugriffsblock des Chips zu übertragen.
  7. Halbleiterbauelement nach Anspruch 6, weiter dadurch gekennzeichnet, dass der Adress-/Steuermultiplexer, der Schreibdatenmultiplexer und der Lesedatendemultiplexer durch Eingaben von der Steuereinheit für den externen Bus gesteuert werden.
  8. Halbleiterbauelement nach Anspruch 6 oder 7, weiter gekennzeichnet durch wenigstens einen Puffer (852, 854, 856), der zwischen die Steuereinheit für den externen Bus und den externen Bus eingeschleift ist.
  9. Halbleiterbauelement nach einem der Ansprüche 5 bis 8, weiter dadurch gekennzeichnet, dass der Mehrentscheidungs-Zuteiler auf dem Chip vorgesehen ist und das zweite Erteilungssignal zum externen Speicherbauelement überträgt.
  10. Halbleiterbauelement nach einem der Ansprüche 2 bis 9, weiter dadurch gekennzeichnet, dass der Zuteiler einen Systembus-Slaveselektor (740) enthält, der ein Auswahlsignal zu einem der ersten Blöcke in Reaktion auf ein drittes Ausgangssignal des Prioritätssteuergerätes überträgt.
  11. Halbleiterbauelement nach Anspruch 10, weiter dadurch gekennzeichnet, dass das dritte Ausgangssignal zuerst vom Systembus-Masterselektor empfangen und decodiert wird und der Systembus-Slaveselektor darauf ausgelegt ist, vom Systembus-Masterselektor ein zugehöriges Signal in Reaktion auf das dritte Ausgangssignal zu empfangen.
  12. Halbleiterbauelement nach einem der Ansprüche 6 bis 11, weiter dadurch gekennzeichnet, dass die Steuereinheit für den externen Bus dafür eingerichtet ist, ein Erteilungssignal für den externen Bus vom Zuteiler zwecks Steuerung des externen Busses als einer übergeordneten Einheit zu empfangen.
  13. Halbleiterbauelement nach einem der Ansprüche 6 bis 12, weiter dadurch gekennzeichnet, dass die Steuereinheit für den externen Bus dafür eingerichtet ist, ein Auswahlsignal vom Zuteiler zwecks Ansteuerung als eine untergeordnete Einheit zu empfangen.
  14. Verfahren zum Betrieb eines Halbleiterchips mit einer Mehrzahl von Funktionsblöcken auf einem Chip, wenigstens einem Systembus auf dem Chip zur Verbindung wenigstens einiger der Blöcke und einem externen Bus für wenigstens einen der Funktionsblöcke zwecks Datenaustausch mit Bauelementen außerhalb des Chips, mit folgenden Schritten: – Empfangen mehrerer Anfragen, – Charakterisieren der empfangenen Anfragen daraufhin, ob sie nur den Systembus, nur den externen Bus oder beide Busse betreffen, – Zuweisen von Prioritäten zu den Anfragen gemäß vorgegebener Rangordnungen, – Auswählen einer ersten der Anfragen mit einer höchsten der Prioritäten, – Feststellen, ob wenigstens einer von dem Systembus und dem externen Bus unbelegt bleibt, wenn die erste Anfrage erteilt würde, und – bejahendenfalls Auswählen einer zweiten der Anfragen, die durch wenigstens einen der unbelegt bleibenden Busse ausgeführt werden kann, und anschließendes gleichzeitiges Erteilen der ersten und der zweiten Anfrage.
  15. Verfahren nach Anspruch 14, weiter dadurch gekennzeichnet, dass festgestellt wird, ob eine Anfrage mit einer zweiten der Prioritäten die zweite Anfrage sein kann.
  16. Verfahren nach Anspruch 15, weiter dadurch gekennzeichnet, dass festgestellt wird, ob eine Anfrage mit einer dritten der Prioritäten die zweite Anfrage sein kann, wenn die Anfrage mit der zweiten der Prioritäten nicht die zweite Anfrage sein kann.
  17. Verfahren nach einem der Ansprüche 14 bis 16, weiter dadurch gekennzeichnet, dass allen Anfragen durch einen Einzelchip-Mehrentscheidungs-Zuteiler jeweilige nicht-hierarchische Prioritäten zugewiesen werden.
  18. Verfahren nach einem der Ansprüche 14 bis 17, weiter gekennzeichnet durch folgende Schritte: – Identifizierung aller Busse auf dem Chip, die unbelegt bleiben, wenn die erste und die zweite Anfrage gleichzeitig durchgeführt würden, – Auswählen einer dritten der Anfragen, die durch einen Hilfssystembus auf dem Chip ausgeführt werden kann, der unbelegt bleibt, wenn die erste und die zweite Anfrage gleichzeitig ausgeführt würden, und – Erteilen der dritten Anfrage gleichzeitig mit dem Erteilen der ersten Anfrage.
  19. Verfahren nach Anspruch 18, weiter gekennzeichnet durch folgende Schritte: – Übertragen eines ersten Datensatzes über den Systembus gemäß der erteilten ersten Anfrage, – Übertragen eines zweiten Datensatzes über den externen Bus gemäß der erteilten zweiten Anfrage gleichzeitig mit dem Übertragen des ersten Datensatzes und – Übertragen eines dritten Datensatzes über den Hilfssystembus gemäß der erteilten dritten Anfrage gleichzeitig mit der Übertragung des ersten Datensatzes.
  20. Verfahren nach Anspruch 18, weiter gekennzeichnet durch das Übertragen eines einzelnen Datensatzes über den Hilfssystembus, den Systembus und den externen Bus gemäß der erteilten ersten, zweiten und dritten Anfrage.
  21. Verfahren nach einem der Ansprüche 14 bis 20 zum Betrieb eines Halbleiterchips mit einem CPU-Block auf dem Chip und einer DRAM-Wiederauffrischsteuerung auf dem Chip, wobei – eine der empfangenen Anfragen von der DRAM-Wiederauffrischsteuerung stammt, – geprüft wird, ob eine zweite der verbliebenen Anfragen eine solche zur Nutzung lediglich des Systembusses ist, und – bejahendenfalls die beiden Anfragen zwecks gleichzeitiger Durchführung erteilt werden.
  22. Verfahren nach einem der Ansprüche 14 bis 20 zum Betrieb eines Halbleiterchips mit einem allgemeinen mehrkanaligen Mehrentscheidungs-Direktspeicherzugriff (mJmCGDMA)-Block, wobei – eine Anfrage durch den mJmCGDMA-Block zur Ansteuerung nur des Systembusses in einem ersten Zyklus erteilt wird und – anschließend eine Anfrage durch den mJmCGDMA-Block zur Ansteuerung nur des externen Busses in einem zweiten, an den ersten Zyklus anschließenden Zyklus erteilt wird.
  23. Verfahren nach Anspruch 22, weiter dadurch gekennzeichnet, dass in einem auf den zweiten folgenden dritten Zyklus eine Anfrage durch den mJmCGDMA-Block zur gleichzeitigen Ansteuerung des Systembusses und des externen Busses erteilt wird.
  24. Speichermedium, auf dem Instruktionen zur Ausführung des Verfahrens nach einem der Ansprüche 14 bis 23 durch das Halbleiterbauelement nach einem der Ansprüche 1 bis 13 auslesbar gespeichert sind.
DE10152970A 2001-01-31 2001-10-19 Halbleiterbauelement mit Systembus und externem Bus sowie Halbleiterchip-Betriebsverfahren und Speichermedium Expired - Lifetime DE10152970B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/773,874 US6976108B2 (en) 2001-01-31 2001-01-31 System on a chip having a system bus, an external bus, and a bus arbiter with programmable priorities for both buses, software, and method for assigning programmable priorities
US09/773,874 2001-01-31

Publications (2)

Publication Number Publication Date
DE10152970A1 DE10152970A1 (de) 2002-08-14
DE10152970B4 true DE10152970B4 (de) 2008-04-17

Family

ID=25099582

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10152970A Expired - Lifetime DE10152970B4 (de) 2001-01-31 2001-10-19 Halbleiterbauelement mit Systembus und externem Bus sowie Halbleiterchip-Betriebsverfahren und Speichermedium

Country Status (6)

Country Link
US (1) US6976108B2 (de)
JP (1) JP4243927B2 (de)
KR (1) KR100442861B1 (de)
DE (1) DE10152970B4 (de)
FR (1) FR2820225B1 (de)
TW (1) TWI220477B (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100434062B1 (ko) * 2001-08-21 2004-06-04 엘지전자 주식회사 피씨아이 장치의 버스사용 우선권 지정방법
US7020807B2 (en) * 2001-09-19 2006-03-28 Koninklijke Philips Electronics N.V. Data communication bus traffic generator arrangement
US7043599B1 (en) * 2002-06-20 2006-05-09 Rambus Inc. Dynamic memory supporting simultaneous refresh and data-access transactions
KR100486247B1 (ko) * 2002-07-05 2005-05-03 삼성전자주식회사 버스의 사용 빈도를 제어할 수 있는 방법 및 장치
JP4182801B2 (ja) * 2003-04-24 2008-11-19 日本電気株式会社 マルチプロセサシステム
US6954387B2 (en) * 2003-07-15 2005-10-11 International Business Machines Corporation Dynamic random access memory with smart refresh scheduler
US7091743B2 (en) * 2003-10-07 2006-08-15 International Business Machines Corporation Data acknowledgment using impedance mismatching
TWI252468B (en) * 2004-02-13 2006-04-01 Mediatek Inc Wavetable synthesis system with memory management according to data importance and method of the same
KR100583455B1 (ko) * 2004-02-23 2006-05-26 삼성전자주식회사 프로그램 가능한 간단한 하드웨어 구조를 갖는 버스 중재기
JP2005346513A (ja) * 2004-06-04 2005-12-15 Renesas Technology Corp 半導体装置
KR100594943B1 (ko) * 2004-11-30 2006-06-30 리전츠 오브 더 유니버스티 오브 미네소타 원칩시스템에서 데이터 변복조 방법
KR100631202B1 (ko) * 2005-01-11 2006-10-04 삼성전자주식회사 Cdma 버스를 이용한 원칩 시스템 및 그의 데이터전송방법
US20080082622A1 (en) * 2006-09-29 2008-04-03 Broadcom Corporation Communication in a cluster system
US7631150B2 (en) * 2006-09-29 2009-12-08 Broadcom Corporation Memory management in a shared memory system
US7636816B2 (en) * 2006-09-29 2009-12-22 Broadcom Corporation Global address space management
US7698523B2 (en) * 2006-09-29 2010-04-13 Broadcom Corporation Hardware memory locks
CN102937275B (zh) * 2006-10-23 2015-07-29 科锐公司 照明装置和照明装置中光引擎壳体的安装方法
TWI420320B (zh) * 2010-08-02 2013-12-21 O2Micro Int Ltd 位址配置設備、系統及其方法
KR101662029B1 (ko) 2010-11-12 2016-10-06 삼성전자주식회사 버스 중재 장치 및 방법
US8490107B2 (en) 2011-08-08 2013-07-16 Arm Limited Processing resource allocation within an integrated circuit supporting transaction requests of different priority levels
US8737156B2 (en) * 2011-10-24 2014-05-27 Ite Tech. Inc. Mapping between two buses using serial addressing bits
US9436623B2 (en) * 2012-09-20 2016-09-06 Intel Corporation Run-time fabric reconfiguration
CN103246623B (zh) * 2013-05-20 2016-08-31 杭州士兰控股有限公司 Soc计算设备扩展系统
US20160239441A1 (en) * 2015-02-13 2016-08-18 Qualcomm Incorporated Systems and methods for providing kernel scheduling of volatile memory maintenance events
JP6193910B2 (ja) * 2015-04-03 2017-09-06 ファナック株式会社 インタロックバスとスプリットバスを接続するブリッジ回路を備えたバスシステム
KR102373544B1 (ko) 2015-11-06 2022-03-11 삼성전자주식회사 요청 기반의 리프레쉬를 수행하는 메모리 장치, 메모리 시스템 및 메모리 장치의 동작방법
TWI611296B (zh) * 2017-04-13 2018-01-11 慧榮科技股份有限公司 記憶體控制器與資料儲存裝置
US11487605B2 (en) * 2018-03-14 2022-11-01 Advanced Micro Devices, Inc. Preemptive signal integrity control
EP3819778A1 (de) * 2019-11-07 2021-05-12 Ams Ag Bus-system und verfahren zum betrieb eines bus-systems
US11055243B1 (en) * 2020-04-19 2021-07-06 Nuvoton Technology Corporation Hierarchical bandwidth allocation bus arbiter
TWI766497B (zh) * 2020-12-23 2022-06-01 鴻海精密工業股份有限公司 資料存取方法及系統
CN113556294A (zh) * 2021-06-01 2021-10-26 水发兴业能源(珠海)有限公司 数据收发方法、数据收发装置、服务器及存储介质
CN114281726B (zh) * 2022-03-04 2022-05-24 北京紫光青藤微系统有限公司 用于soc芯片的系统架构及外设通信方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0654743A1 (de) * 1993-11-19 1995-05-24 International Business Machines Corporation Rechnersystem mit einem lokalen Bus eines Digitalsignalprozessors
US5517650A (en) * 1994-12-19 1996-05-14 International Business Machines Corporation Bridge for a power managed computer system with multiple buses and system arbitration
US6125412A (en) * 1991-09-19 2000-09-26 Chips & Technologies, Llc System for performing input and output operations to and from a processor

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0444711A3 (en) * 1990-03-02 1994-07-20 Fujitsu Ltd Bus control system in a multi-processor system
US5664142A (en) * 1990-10-01 1997-09-02 International Business Machines Corporation Chained DMA devices for crossing common buses
US5689657A (en) * 1991-03-30 1997-11-18 Deutsche Itt Industries Gmbh Apparatus and methods for bus arbitration in a multimaster system
FR2675286B1 (fr) * 1991-04-15 1993-06-18 Bull Sa Circuit integre arbitreur de bus mca et utilisations d'un tel circuit.
US5553268A (en) * 1991-06-14 1996-09-03 Integrated Device Technology, Inc. Memory operations priority scheme for microprocessors
US5239651A (en) * 1991-12-30 1993-08-24 Sun Microsystems, Inc. Method of and apparatus for arbitration based on the availability of resources
JPH05324544A (ja) * 1992-05-15 1993-12-07 Hitachi Ltd バス制御方法
US5596749A (en) * 1992-09-21 1997-01-21 Texas Instruments Incorporated Arbitration request sequencer
JPH06187257A (ja) * 1992-12-17 1994-07-08 Fujitsu Ltd システムバス制御方式
DE4307139C2 (de) * 1993-03-06 1997-02-13 Ibm Serialisierung von Bedienungsanforderungen in einem Multiprozessor-System
JPH06337838A (ja) * 1993-05-28 1994-12-06 Fujitsu Ltd ユニット実装/非実装検出方法
US5475850A (en) * 1993-06-21 1995-12-12 Intel Corporation Multistate microprocessor bus arbitration signals
US5794070A (en) * 1993-06-30 1998-08-11 Intel Corporation Method and apparatus for fast DMA transfer on an industry standard architecture (ISA) bus
US5524215A (en) * 1993-10-05 1996-06-04 Motorola, Inc. Bus protocol and method for controlling a data processor
JPH07210537A (ja) 1993-12-10 1995-08-11 Advanced Micro Devicds Inc コンピュータシステム
JPH07244635A (ja) * 1994-01-14 1995-09-19 Fujitsu Ltd バス使用権調停回路及び方法
US5828856A (en) * 1994-01-28 1998-10-27 Apple Computer, Inc. Dual bus concurrent multi-channel direct memory access controller and method
US5632020A (en) * 1994-03-25 1997-05-20 Advanced Micro Devices, Inc. System for docking a portable computer to a host computer without suspending processor operation by a docking agent driving the bus inactive during docking
US5526496A (en) * 1994-04-22 1996-06-11 The University Of British Columbia Method and apparatus for priority arbitration among devices in a computer system
US5619726A (en) * 1994-10-11 1997-04-08 Intel Corporation Apparatus and method for performing arbitration and data transfer over multiple buses
US5555383A (en) * 1994-11-07 1996-09-10 International Business Machines Corporation Peripheral component interconnect bus system having latency and shadow timers
EP0718772A1 (de) * 1994-12-14 1996-06-26 International Business Machines Corporation Verfahren zur Verbesserung der Buslatenz und zum Ermöglichen der Stossdatenübertragung von unbekannter Länge
US5625779A (en) * 1994-12-30 1997-04-29 Intel Corporation Arbitration signaling mechanism to prevent deadlock guarantee access latency, and guarantee acquisition latency for an expansion bridge
US5691745A (en) * 1995-01-06 1997-11-25 Microsoft Corporation Low power pixel-based visual display device having dynamically changeable number of grayscale shades
US5559968A (en) * 1995-03-03 1996-09-24 Compaq Computer Corporation Non-conforming PCI bus master timing compensation circuit
US5619727A (en) * 1995-03-08 1997-04-08 United Microelectronics Corp. Apparatus for a multiple channel direct memory access utilizing a virtual array technique
US5528767A (en) * 1995-03-21 1996-06-18 United Microelectronics Corp. Programmable multi-level bus arbitration apparatus in a data processing system
US5815676A (en) * 1995-04-28 1998-09-29 Apple Computer, Inc. Address bus arbiter for pipelined transactions on a split bus
US5708783A (en) * 1995-04-28 1998-01-13 Apple Computer, Inc. Data bus arbiter for pipelined transactions on a split bus
US5901295A (en) * 1995-04-28 1999-05-04 Apple Computer, Inc. Address and data bus arbiter for pipelined transactions on a split bus
US5787264A (en) * 1995-05-08 1998-07-28 Apple Computer, Inc. Method and apparatus for arbitrating access to a shared bus
KR960042387A (ko) * 1995-05-31 1996-12-21 유기범 하이파이플러스 인터럽트버스 중재방법
US5619661A (en) * 1995-06-05 1997-04-08 Vlsi Technology, Inc. Dynamic arbitration system and method
JPH08339346A (ja) * 1995-06-09 1996-12-24 Toshiba Corp バスアービタ
US5933613A (en) * 1995-07-06 1999-08-03 Hitachi, Ltd. Computer system and inter-bus control circuit
DE69632289T2 (de) * 1995-07-25 2005-05-19 Jin-Young Cho Verteiltes serielles schiedsverfahren
FR2737592B1 (fr) * 1995-08-03 1997-10-17 Sgs Thomson Microelectronics Circuit hdlc a bus interne partage
US5850529A (en) * 1995-08-11 1998-12-15 Kabushiki Kaisha Toshiba Method and apparatus for detecting a resource lock on a PCI bus
JP3519182B2 (ja) * 1995-09-05 2004-04-12 株式会社日立製作所 情報処理システムおよびバスアービタならびにバス制御方法
JPH0981504A (ja) * 1995-09-08 1997-03-28 Toshiba Corp コンピュータシステム
JP3123413B2 (ja) * 1995-11-07 2001-01-09 株式会社日立製作所 コンピュータシステム
US5727171A (en) * 1995-11-16 1998-03-10 International Business Machines Corporation Method and apparatus for allowing multi-speed synchronous communications between a processor and both slow and fast computing devices
US5778200A (en) * 1995-11-21 1998-07-07 Advanced Micro Devices, Inc. Bus arbiter including aging factor counters to dynamically vary arbitration priority
US5933616A (en) * 1995-12-11 1999-08-03 Dell Usa, L.P. Multiple bus system bus arbitration according to type of transaction requested and the availability status of the data buffer between the buses
US5652895A (en) * 1995-12-26 1997-07-29 Intel Corporation Computer system having a power conservation mode and utilizing a bus arbiter device which is operable to control the power conservation mode
KR0167726B1 (ko) * 1996-01-30 1999-01-15 김광호 버스의 우선권 선택장치
US5790568A (en) * 1996-01-31 1998-08-04 California Institute Of Technology Spacecraft Reed-Solomon downlink module
US5734846A (en) * 1996-02-26 1998-03-31 International Business Machines Corporation Method for avoiding livelock on bus bridge
US5956493A (en) * 1996-03-08 1999-09-21 Advanced Micro Devices, Inc. Bus arbiter including programmable request latency counters for varying arbitration priority
US5761452A (en) * 1996-03-18 1998-06-02 Advanced Micro Devices, Inc. Bus arbiter method and system
US5717154A (en) * 1996-03-25 1998-02-10 Advanced Micro Devices, Inc. Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory employing a high priority I/O bus request mechanism for improved audio fidelity
US5805840A (en) * 1996-03-26 1998-09-08 Advanced Micro Devices, Inc. Bus arbiter employing a transaction grading mechanism to dynamically vary arbitration priority
US5802330A (en) * 1996-05-01 1998-09-01 Advanced Micro Devices, Inc. Computer system including a plurality of real time peripheral devices having arbitration control feedback mechanisms
US5790811A (en) * 1996-05-17 1998-08-04 Advanced Micro Devices, Inc. System and method for performing data transfers during PCI idle clock cycles
US5845097A (en) * 1996-06-03 1998-12-01 Samsung Electronics Co., Ltd. Bus recovery apparatus and method of recovery in a multi-master bus system
JPH103447A (ja) * 1996-06-18 1998-01-06 Matsushita Electric Ind Co Ltd バスブリッジ装置
US5822549A (en) * 1996-07-15 1998-10-13 Micron Electronics, Inc. Computer system and bus controller for controlling access to a computer bus
US5862355A (en) * 1996-09-12 1999-01-19 Telxon Corporation Method and apparatus for overriding bus prioritization scheme
US5825878A (en) * 1996-09-20 1998-10-20 Vlsi Technology, Inc. Secure memory management unit for microprocessor
US5925118A (en) * 1996-10-11 1999-07-20 International Business Machines Corporation Methods and architectures for overlapped read and write operations
US5870570A (en) * 1996-10-29 1999-02-09 Vlsi Technology, Inc. Multiple bus agent integrated circuit device for connecting to an external bus
KR100205035B1 (ko) * 1996-11-26 1999-06-15 이계철 자기제어형 버스 조정 회로 및 그 방법
JPH10187600A (ja) * 1996-12-26 1998-07-21 Canon Inc バスアービタ
US5951667A (en) * 1997-01-02 1999-09-14 Intel Corporation Method and apparatus for connecting expansion buses to a peripheral component interconnect bus
US5894586A (en) * 1997-01-23 1999-04-13 Xionics Document Technologies, Inc. System for providing access to memory in which a second processing unit is allowed to access memory during a time slot assigned to a first processing unit
TW448363B (en) * 1997-02-17 2001-08-01 Ssd Co Ltd High speed processor system with bus arbitration
US5875309A (en) * 1997-04-18 1999-02-23 3Com Corporation Arbitration system using linked table
US6108738A (en) * 1997-06-10 2000-08-22 Vlsi Technology, Inc. Multi-master PCI bus system within a single integrated circuit
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
US6026464A (en) * 1997-06-24 2000-02-15 Cisco Technology, Inc. Memory control system and method utilizing distributed memory controllers for multibank memory
JP3524337B2 (ja) * 1997-07-25 2004-05-10 キヤノン株式会社 バス管理装置及びそれを有する複合機器の制御装置
US6098133A (en) * 1997-11-28 2000-08-01 Motorola, Inc. Secure bus arbiter interconnect arrangement
WO1999028893A1 (en) 1997-12-01 1999-06-10 Mediaq, Inc. High performance, highly integrated computer architecture with extendible embedded memory
US6081863A (en) * 1998-03-13 2000-06-27 International Business Machines Corporation Method and system for supporting multiple peripheral component interconnect PCI buses by a single PCI host bridge within a computer system
US6260093B1 (en) * 1998-03-31 2001-07-10 Lsi Logic Corporation Method and apparatus for arbitrating access to multiple buses in a data processing system
US6046952A (en) * 1998-12-04 2000-04-04 Advanced Micro Devices, Inc. Method and apparatus for optimizing memory performance with opportunistic refreshing
US6195723B1 (en) * 1998-12-16 2001-02-27 International Business Machines Corporation Method and system for providing peer-to-peer control in an expanded slot environment using a bridge as an agent for controlling peripheral device
US6163826A (en) * 1999-08-23 2000-12-19 Advanced Micro Devices, Inc. Method and apparatus for non-concurrent arbitration of multiple busses
US6738845B1 (en) * 1999-11-05 2004-05-18 Analog Devices, Inc. Bus architecture and shared bus arbitration method for a communication device
US6601126B1 (en) * 2000-01-20 2003-07-29 Palmchip Corporation Chip-core framework for systems-on-a-chip
US7124376B2 (en) * 2000-05-02 2006-10-17 Palmchip Corporation Design tool for systems-on-a-chip

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6125412A (en) * 1991-09-19 2000-09-26 Chips & Technologies, Llc System for performing input and output operations to and from a processor
EP0654743A1 (de) * 1993-11-19 1995-05-24 International Business Machines Corporation Rechnersystem mit einem lokalen Bus eines Digitalsignalprozessors
US5517650A (en) * 1994-12-19 1996-05-14 International Business Machines Corporation Bridge for a power managed computer system with multiple buses and system arbitration

Also Published As

Publication number Publication date
KR20020064129A (ko) 2002-08-07
JP2002244997A (ja) 2002-08-30
DE10152970A1 (de) 2002-08-14
TWI220477B (en) 2004-08-21
US6976108B2 (en) 2005-12-13
US20020138678A1 (en) 2002-09-26
FR2820225B1 (fr) 2004-12-03
FR2820225A1 (fr) 2002-08-02
JP4243927B2 (ja) 2009-03-25
KR100442861B1 (ko) 2004-08-02

Similar Documents

Publication Publication Date Title
DE10152970B4 (de) Halbleiterbauelement mit Systembus und externem Bus sowie Halbleiterchip-Betriebsverfahren und Speichermedium
DE68927375T2 (de) Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-Rechnersystem
DE60037065T2 (de) Übertragungsteuerung mit Naben- und Torachitektur
DE69932400T2 (de) Steuerungsvorrichtung für einen Portverwalter zur Verbindung von verschiedenen Funktionsmodulen
DE69027515T2 (de) Vorrichtung für Prioritätsarbitrierungskonditionierung bei gepufferter Direktspeicheradressierung
DE102019121523A1 (de) Skalierbares netz werk-auf-chip für hochbandbreitenspeicher
DE3853574T2 (de) Steuerung von Benutzerantworten in einem Übertragungsbus.
DE60314347T2 (de) Betriebsmittelverwaltungsgerät
DE68924934T2 (de) Parallelsynchronisationstechnik.
DE69628609T2 (de) Distribuiertes Pipeline-Busarbitrierungssystem
DE2760322C2 (de)
DE68928530T2 (de) Modulare Kreuzschienenzwischenverbindungen in einem digitalen Rechner
DE3586389T2 (de) Dynamisch zugeordnete lokale/globale speicheranordnung.
DE69834519T2 (de) Bussteuerungssystem und -verfahren
DE102013208213B4 (de) System zur Verringerung von Hash-Kollisionen
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE112006001167T5 (de) Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken
EP2030118B1 (de) Mehrprozessor-gateway
DE602005006338T2 (de) Vorrichtung und Verfahren zur Datenübertragungsverarbeitung
EP0929041A2 (de) Verfahren und Anordnung zum Betreiben eines Bussystems
DE69114961T2 (de) Vorrichtung für Zusammenschaltungskanäle.
DE69111764T2 (de) Übereinstimmungsprotokolle für Mehrprozessoren mit gemeinsam genutztem Speicher.
DE69030678T2 (de) Datenübertragungsbetrieb zwischen zwei asynchronen Bussen
DE112012005572B4 (de) Ausgleichen der Bandbreite von Anforderern, die ein gemeinsam genutztes Speichersystem verwenden
DE102004013635B4 (de) Verfahren zur Vergabe von Buszugriffsrechten in Multimaster-Bussystemen, sowie Multimaster-Bussystem zur Durchführung des Verfahrens

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R071 Expiry of right