DE60027748T2 - Busarchitektur und verteiltes busarbitrierungsverfahren für einen kommunikationsprozessor - Google Patents

Busarchitektur und verteiltes busarbitrierungsverfahren für einen kommunikationsprozessor Download PDF

Info

Publication number
DE60027748T2
DE60027748T2 DE60027748T DE60027748T DE60027748T2 DE 60027748 T2 DE60027748 T2 DE 60027748T2 DE 60027748 T DE60027748 T DE 60027748T DE 60027748 T DE60027748 T DE 60027748T DE 60027748 T2 DE60027748 T2 DE 60027748T2
Authority
DE
Germany
Prior art keywords
bus
master
buses
slave
masters
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
DE60027748T
Other languages
English (en)
Other versions
DE60027748D1 (de
Inventor
R. Rainer North Andover HADWIGER
D. Paul Cambridge KRIVACEK
Joern Soerensen
Palle Norwood BIRK
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.)
MediaTek Inc
Original Assignee
Analog Devices Inc
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 Analog Devices Inc filed Critical Analog Devices Inc
Publication of DE60027748D1 publication Critical patent/DE60027748D1/de
Application granted granted Critical
Publication of DE60027748T2 publication Critical patent/DE60027748T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/7846On-chip cache and off-chip main memory
    • 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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W74/00Wireless channel access
    • H04W74/04Scheduled access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Transfer Systems (AREA)
  • Multi Processors (AREA)

Description

  • Hintergrund
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft allgemein kleine Mehrprozessorsysteme, wie beispielsweise Funktelefone mit einem Steuerprozessor und einem Signalprozessor. Die Erfindung betrifft spezifischer Systeme, in welchen einer oder mehrere der Prozessoren ein Softwareprogramm oder eine Sequenz von Schritten ausführt, die von Zeit zu Zeit geändert, modifiziert oder ausgebaut werden könne.
  • 2. Zugehöriger Stand der Technik
  • Ein Kommunikationsgerät, wie beispielsweise Funktelefone, führt eine Vielfalt von Signal- und Datenverarbeitungsfunktionen durch. Bei älteren Systemen verarbeitete ein digitaler Signalprozessor (DSP) digitalisierte Audiosignale und steuerte eine Mikroprozessor-Steuereinheit (MCU) allgemeine Systemoperationen, einschließlich eines Aufbaus und einer Trennung von Kommunikationen, für eine einzelne Geräteeinheit (z.B. ein Telefon). Der DSP und die MCU der einfachsten herkömmlichen Systeme kommunizieren über einen gemeinsam genutzten Speicher mit Einzelport und Mehrfachport, Steuersignale, etc. Jedoch sind zusätzliche Merkmale und Steueroptionen möglich, wenn zugelassen ist, dass der DSP und die MCU miteinander beispielsweise über einen gemeinsam genutzten Speicher kommunizieren. Obwohl Systeme, in welchen der DSP und die MCU nicht miteinander kommunizieren, möglich sind, hat die Entwicklung von zellularen Kommunikationen, um eine Unterstützung für digitale Datenkommunikationen sowie Audiokommunikationen zu enthalten, zu einer größeren Notwendigkeit dafür geführt, dass der DSP und die MCU miteinander kommunizieren.
  • Es haben sich auch Kommunikationsstandards entwickelt und entwickeln sich fortlaufend. Standards sind oft derart entwickelt, dass sie erweiterbar sind, oder neue Merkmale werden klugerweise derart entwickelt, dass sie mit einem existierenden Standard abwärts kompatibel sind, so dass die neuen Merkmale auf dem Gebiet ohne die Notwendigkeit ausgenutzt werden können, jedes Gerätestück zu ersetzen, das es bereits auf dem Gebiet gibt. Um eine solche Entwicklung unterzu bringen, gibt es einen großen Druck, sich weg von in einem Nurlesespeicher (ROM) sitzender Software oder Firmware zu bewegen, um auf dem DSP oder der MCU auszuführen. Ein Modifizieren von ROM-residenter Software oder Firmware ist schwierig, weil allgemein ein ROM nicht beschrieben werden kann, außer einmal zur Zeit einer Herstellung.
  • Letztlich hat der oben beschriebene Druck in der Entwicklung von integrierten Schaltungen einschließlich DSP, MCU, ROM und RAM resultiert. Die geldlichen und größenmäßigen Aufwende für ein Hinzufügen eines RAM zu integrierten Schaltungssystemen haben erzwungen, dass der DSP und die MCU einen RAM gemeinsam nutzen, wann immer es möglich ist. Um eine Kommunikation zwischen dem DSP und der MCU zu ermöglichen und um ein Verschwenden von jedem Speicherplatz zu vermeiden, was, wie es angemerkt wird, vorherrschend ist, nutzen sie einen RAM gemeinsam. Systemsoftware wird in einen RAM geladen, um eine Flexibilität und die Fähigkeit zum Rekonfigurieren von Systemen zu maximieren, um in Entsprechung mit sich entwickelnden Kommunikationsstandards zu bleiben. Wenn jedoch ein Speicher gemeinsam genutzt wird, wie beispielsweise unter Verwendung der in 1 dargestellten Architektur, wird die Speicherzugriffsbandbreite ein ernsthaftes Problem.
  • EP 0924623 offenbart ein Computersystem, das einen Zuteilungsmechanismus enthält, der zulässt, dass mehrere Bus-Master auf einen Grafikbus zugreifen.
  • EP 0702307 offenbart ein Computersystem mit einem Multibuszuteiler zum Zuteilen eines Zugriffs eines Speicherbusses zwischen zwei ungleichen peripheren Bussen.
  • Die Erfindung ist durch eine Vorrichtung gemäß Anspruch 1 und ein Verfahren gemäß Anspruch 19 definiert.
  • Gemäß der Erfindung ist eine Vorrichtung gemäß Anspruch 1 zur Verfügung gestellt.
  • Gemäß der Erfindung ist auch ein Verfahren zum Betreiben eines Buszuteilungsmoduls gemäß Anspruch 19 zur Verfügung gestellt.
  • Gemäß einem Aspekt der Erfindung weist eine integrierte Schaltung folgendes auf: ein erstes Datenverarbeitungsuntersystem mit einem an einen ersten Bus ange schlossenen ersten Prozessor als Bus-Master; ein zweites Datenverarbeitungsuntersystem mit einem an einen zweiten Bus angeschlossenen zweiten Prozessor als Bus-Master; ein erstes Slave-Untersystem mit einer Speichereinheit, die durch einen des ersten und des zweiten Prozessors verwendbar ist, mit einem vierten Bus; und der erste, der zweite, der dritte und der vierte Bus sind über ein Buszuteilungsmodul miteinander verbunden, das angeordnet ist, um den ersten und den zweiten Bus-Master mit dem ersten und dem zweiten Slave-Untersystem ohne Blockierung zu verbinden.
  • Mehrere Varianten in Bezug auf diesen Aspekt der Erfindung sind möglich. Beispielsweise kann das erste Slave-Untersystem einen gemeinsam genutzten Speicher enthalten, der an den dritten Bus angeschlossen ist und durch den ersten Prozessor über den dritten Bus gemeinsam genutzt wird. Es kann auch einen lokalen Speicher geben, der an den ersten Prozessor angeschlossen ist, welcher direkt mit dem lokalen Speicher kommuniziert. Die Schaltung kann auch eine Direktzugriffsspeicher-(DMA-)Steuerung und einen an den dritten Bus und den vierten Bus angeschlossenen DMA-Bus enthalten, wodurch Daten zwischen dem zweiten, dem dritten und dem vierten Bus bewegt werden können, die über ein Buszuteilungsmodul selektiv miteinander verbunden sind, das angeordnet ist, um den ersten und den zweiten Bus-Master mit dem ersten und dem zweiten Slave-Untersystem ohne Blockierung zu verbinden.
  • Gemäß einem weiteren Aspekt der Erfindung weist eine integrierte Schaltung folgendes auf: eine Datenkommunikationsvorrichtung, die ein Kommunikationssystem mit einem ersten internen Bus, ein Überwachungs- und Steuersystem mit einem zweiten internen Bus aufweist; ein erstes Slave-Vorrichtungssystem mit einem dritten internen Bus; ein zweites Slave-Vorrichtungssystem mit einem vierten internen Bus; ein Direktzugriffsspeicher-(DMA-)System mit einem fünften internen Bus; und wobei der erste, der zweite, der dritte, der vierte und der fünfte interne Bus über ein Buszuteilungsmodul (BAM) miteinander verbunden sind.
  • Gemäß einem Aspekt der Erfindung in Bezug auf Telekommunikationssysteme, eine integrierte Schaltungsvorrichtung, die in einem Telefonapparat verwendet wird, kann die Vorrichtung in einer integrierten Schaltung einen DSP, eine MCU, einen gemeinsam genutzten Systemspeicher, einen DSP-Bus, mit welchem der DSP verbunden ist, einen MCU-Bus, mit welchem die MCU verbunden ist, eine periphere Einheit und einen peripheren Bus, mit welchem die periphere Einheit verbunden ist, einen Speicherbus, mit welchem der gemeinsam genutzte Systemspeicher verbunden ist, und ein BAM, das selektiv den DSP-Bus und den MCU-Bus mit dem Speicherbus und dem peripheren Bus verbindet, aufweisen, wobei dann, wenn der DSP und die MCU einen Zugriff auf unterschiedliche Busse anfordern, ein Zugriff ohne Blockierung erfolgt.
  • Mehrere Varianten in Bezug auf die verschiedenen Aspekte der Erfindung sind möglich. Beispielsweise kann das erste Slave-Untersystem einen gemeinsam genutzten Speicher enthalten, der mit dem dritten Bus verbunden ist und durch den ersten Prozessor über den dritten Bus gemeinsam genutzt wird. Es kann auch einen lokalen Speicher geben, der mit dem ersten Prozessor verbunden ist, der direkt mit dem lokalen Speicher kommuniziert. Die Schaltung kann auch eine Direktzugriffsspeicher-(DMA-)Steuerung und einen DMA-Bus enthalten, der mit dem dritten Bus und dem vierten Bus verbunden ist, wodurch Daten zwischen dem ersten Slave-Untersystem und dem zweiten Slave-Untersystem ohne Intervention durch den ersten Prozessor oder den zweiten Prozessor bewegt werden können. Es kann weiterhin eine Speicherzugriffsschnittstelle (MAI) geben, die einen des dritten und des vierten Busses mit dem lokalen Speicher verbindet. Der vierte Bus kann eine Verbindung zu einer externen Vorrichtung enthalten, die eine Speichervorrichtung sein kann.
  • Die integrierte Schaltung von solchen Aspekten der Erfindung kann weiterhin einen Systemspeicher aufweisen, auf den durch sowohl das Datenkommunikationssystem als auch das Überwachungs- und Steuersystem über das BAM und den dritten internen Bus zugegriffen wird.
  • Die Vorrichtung kann so konfiguriert sein, dass das DMA-System Daten direkt zwischen dem Systemspeicher und dem zweiten Slave-Vorrichtungssystem kommuniziert. Das zweite Slave-Vorrichtungssystem kann Systemunterstützungselemente, Kommunikationsunterstützungselemente und Eingabe/Ausgabe-(I/O-)Elemente enthalten. Die Systemunterstützungselemente können eine Unterbrechungssteuerung enthalten, und die Kommunikationsunterstützungselemente und die I/O-Elemente können einen generischen seriellen Port enthalten. Das Kommunikationssystem kann einen digitalen Signalprozessor (DSP) enthalten, während das Überwachungs- und Steuersystem eine Mikroprozessor-Steuereinheit (MCU) enthalten kann. Der DSP und die MCU können jeweils mit einer internen Vorrichtung über den ersten und den zweiten internen Bus kommunizieren, und auch mit dem Systemspeicher über das BAM und den dritten internen Bus. Der vierte Bus kann eine Verbindung zu einer externen Vorrichtung enthalten, die eine Speichervorrichtung sein kann.
  • Bei einer weiteren Variation kann die Vorrichtung weiterhin eine DMA-Steuerung und einen durch die DMA-Steuerung gesteuerten DMA-Bus enthalten, wobei das BAM weiterhin selektiv den DMA-Bus zwischen dem Speicherbus und dem peripheren Bus verbindet. Das periphere Einheitssystem kann auch eines oder mehrere Unterstützungselemente enthalten, einschließlich Systemunterstützungselementen, Kommunikationsunterstützungselementen und I/O-Unterstützungselementen. Bei diesen Variationen können der DSP und die MCU jeweils mit einer lokalen Vorrichtung über jeweils den lokalen Bus des DSP und der MCU kommunizieren, und auch über das BAM und den Speicherbus mit dem Systemspeicher kommunizieren. Es kann auch einen externen Bus geben, der eine Verbindung zu einer externen Vorrichtung, wie beispielsweise einer Speichervorrichtung, enthält. Das Betriebsmittel von einigen Vorrichtungen kann weiterhin einen Speicher aufweisen, der durch wenigstens den ersten und den zweiten der mehreren Bus-Master verwendet wird. Das BAM kann weiterhin einen DMA-Bus aufweisen, der selektiv zwei der mehreren Slave-Busse miteinander verbindet. Die mehreren Betriebsmittel können eines oder mehrere Unterstützungselemente enthalten, einschließlich Systemunterstützungselementen, und als Unterbrechungssteuerung Kommunikationsunterstützungselemente, wie beispielsweise GSM-Kommunikationsunterstützungselemente, und I/O-Unterstützungselementen, wie beispielsweise ein generisches serielles Port. Der erste Bus-Master kann weiterhin einen DSP aufweisen. Der zweite Bus-Master kann weiterhin eine MCU aufweisen. Die Vorrichtung kann weiterhin einen externen Slave-Bus enthalten, der eine Verbindung zu einer externen Vorrichtung enthält, die eine Speichervorrichtung sein kann.
  • Gemäß weiteren Aspekten der Erfindung gibt es Verfahren zum Zuteilen einer Priorität und zum Gewähren von Buszugriffsanforderungen. Ein Verfahren zum Zuteilen einer Priorität zu und zum Gewähren von Buszugriffsanforderungen kann ein Gewähren der Buszugriffsanforderung eines Anfordernden aufweisen, die eine Unterbrechung einer hohen Priorität aktiviert, wenn kein Anfordernder die Unterbrechung hoher Priorität aktiviert, ein Gewähren der Buszugriffsanforderung eines Anfordernden, der im Besitz des aktuellen Anforderungsslots ist. Gemäß dem Verfahren kann ein Zugriff einem Prozessor gewährt werden, der bei einem Echtzeitsignal arbeitet, wenn der Prozessor für eine Auszeitperiode in einem Wartezu stand gewesen ist. Die Auszeitperiode kann programmierbar sein. Die Anzeige, dass der Prozessor länger als für die Auszeitperiode in dem Wartezustand gewesen ist, kann eine Zuteilung einer Unterbrechung hoher Priorität sein. Wenn die Anforderung dem Besitzer des aktuellen Anforderungsslots gewährt wird, kann die Tabelle von Anforderungsslot-Besitzern einem Updaten unterzogen werden. Wenn die Anforderung dem höchsten Eintrag in der Round-Robin-Liste gewährt wird, können sowohl die Round-Robin-Liste als auch die Tabelle von Anforderungsslot-Besitzern einem Update unterzogen werden.
  • Kurze Beschreibung der Zeichnungen
  • In den Zeichnungen, in welchen gleiche Bezugszeichen gleiche Elemente anzeigen, ist folgendes gezeigt:
  • 1 ist ein schematisches Blockdiagramm einer herkömmlichen Busarchitektur mit einem gemeinsam genutzten Speicher;
  • 2 ist ein vereinfachtes schematisches Blockdiagramm einer beispielhaften Busarchitektur, die Aspekte der vorliegenden Erfindung verkörpert;
  • 3 ist ein detaillierteres Blockdiagramm der Busarchitektur der 2; und
  • 4 ist ein Ablaufdiagramm eines beispielhaften Zuteilungsverfahrens, das Aspekte der Erfindung verkörpert.
  • Detaillierte Beschreibung
  • Die vorliegende Erfindung wird beim Lesen der folgenden detaillierten Beschreibung von einigen beispielhaften Ausführungsbeispielen von ihr besser verstanden werden.
  • Ein Überblick über die Architektur eines beispielhaften Ausführungsbeispiels von Aspekten der vorliegenden Erfindung wird nun in Verbindung mit 2 angegeben.
  • Wenn in der folgenden Diskussion ein Bus angegeben ist, hat dies die Bedeutung einer Gruppe von Signalpfaden, die die funktionellen Einheiten der Schaltung, des Systems oder der Vorrichtung, die oder das gerade diskutiert wird, verbindet. Ein Bus kann eine Adressierkomponente und eine Datenträgerkomponente enthalten, die jeweils manchmal einzeln als Bus bezeichnet sind. Im Allgemeinsten sind Busse konfiguriert, um zwei oder mehrere parallele Signalpfade zu haben, die Daten- und Adresseninformation mit einer Breite von mehreren Bits tragen, obwohl auch serielle Busse bekannt sind.
  • 2 zeigt eine Vorrichtung 200, die beispielsweise als integrierte Schaltung implementiert ist. Die Vorrichtung enthält ein Untersystem 200 eines digitalen Signalprozessors (DSP) und ein Untersystem 202 einer Mikrosteuerungseinheit (MCU). Innerhalb des DSP-Untersystems 201 ist ein lokaler Bus (nicht gezeigt), an welchen ein Prozessor angeschlossen ist. Ein Bus 203 stellt eine externe (zu dem DSP-Untersystem 201) Verbindung zu dem DSP-Untersystem 201 für andere Elemente der Vorrichtung 200 zur Verfügung; der Bus 203 kann auch der lokale Bus innerhalb des DSP-Untersystems 201 sein. Gleichermaßen enthält das MCU-Untersystem 202 einen lokalen Bus, nämlich den MCU-Bus 204, der eine externe (zu dem MCU-Untersystem 202) Verbindung des MCU-Untersystems 202 zu anderen Elementen der Vorrichtung 200 zur Verfügung stellt. Jedes der Untersysteme 201 und 202, die bislang diskutiert sind, enthält einen Prozessor, um dadurch die Vorrichtung 200 mit mehreren Prozessoren zu versehen. Um die Leistungsfähigkeit jedes Prozessors zu verbessern, ist ihm sein eigenes Untersystem (201, 202) zusammen mit seinem eigenen lokalen Bus (jeweils 203, 204) zugeteilt worden. Diese werden nachfolgend detaillierter diskutiert werden. Wie es oben angegeben ist, enthalten das DSP-Untersystem 201 und das MCU-Untersystem 202 einen DSP (der nachfolgend diskutiert wird) bzw. eine MCU (die nachfolgend diskutiert wird). Der DSP und die MCU ist jeweils ein Bus-Master, was bedeutet, dass sie jeweils einen Zugriff über ihren jeweiligen lokalen Bus auf andere Elemente der Vorrichtung 200 anfordern können. Sie können auch jeweils mehrere interne Busse enthalten, wenn Aufbauanforderungen durch eine solche Struktur besser erfüllt werden.
  • Die Vorrichtung 200 enthält weiterhin drei andere Busse 205, 206 und 207, mit welchen verschiedene zusätzliche Elemente verbunden sind. Die anderen Elemente der Vorrichtung 200 sind Bus-Slaves, die auf Anforderungen für einen Zugriff von den Bus-Mastern reagieren. Ein Speicher, wie beispielsweise ein statischer Direktzugriffsspeicher (SRAM), der als gemeinsam genutzter Systemspeicher verwendet werden kann, ist mit einem Bus 205 verbunden. Verschiedene periphere Vorrichtungen, durch welche die Vorrichtung 200 ihre nötigen Funktionen durchführen kann, sind in einem peripheren Untersystem 209 enthalten, das mit einem peripheren Bus 206 verbunden ist. Schließlich sind externe Vorrichtungen 210, wie beispielsweise ein Flash-ROM, mit einem externen Bus 207 verbunden. Die Aufteilung von Funktionen auf die verschiedenen Vorrichtungen und Busse, die oben vorzugsweise angegeben sind, wird durch den Entwickler für irgendeinen bestimmten Zweck optimiert. Bei dem gegenwärtig beschriebenen Ausführungsbeispiel ist veranlasst worden, dass verschiedene Optimierungsauswahlen die Vorrichtung 200 geeignet für eine Verwendung als das Kernstück von drahtlosen Mobilfunkkommunikationsvorrichtungen geeignet ist, wie beispielsweise ein Telefon für ein globales System für Mobilfunkkommunikationen (GSM), ein Telefon, das ein anderes Kommunikationsprotokoll unterstützt, wie beispielsweise einen Codevielfachzugriff (CDMA), oder Vorrichtungen, die das drahtlose Anwendungsprotokoll (WAP) unterstützen.
  • Die Busse 203, 204, 205, 206 und 207, die oben beschrieben sind, sind über ein Buszuteilungsmodul (BAM) 211 miteinander verbunden, das ein Direktzugriffsspeicher-(DMA)-Untersystem (nicht gezeigt) enthält. Die Konfiguration und der Betrieb des BAM 211 wird nachfolgend detaillierter beschrieben. Diese Konfiguration und dieser Betrieb bestimmen, welche Busse miteinander kommunizieren können, und zu welchen Zeiten. Der Aufbau und der Betrieb des BAM 211 ist optimiert, um eine konfigurierbare minimale Zugriffsbandbreite durch das DSP-Untersystem 201 und das MCU-Untersystem 202 zu irgendeinem der anderen erforderlichen Systemelemente zu garantieren und um zu verhindern, dass ein Untersystem 201, 202 das andere Untersystem 201, 202 sperrt.
  • Bei dem illustrativen Ausführungsbeispiel der Vorrichtung 200 verwenden alle Bus-Master, einschließlich des DSP-Untersystems 201 und des MCU-Untersystems 202, einen gemeinsamen vereinheitlichten Adressenraum. Eine Anzahl von wichtigen Vorteilen kann durch eine Verwendung eines vereinheitlichten Adressenraums erhalten werden. Beispielsweise können das DSP-Untersystem 201 und das MCU-Untersystem 202 Daten oder einen Code im SRAM 208 lediglich durch Führen eines Zeigers zu den Daten oder zu dem Code, die bzw. der auszutauschen ist, austauschen, durch Schreiben des Zeigers zu einer global bekannten Stelle. Gemäß einem weiteren Vorteil eines vereinheitlichten Adressenraums wird die für eine Adressendecodierung im BAM 211 erforderliche Logik stark vereinfacht, weil dasselbe Decodieren ungeachtet dessen erforderlich ist, welcher Bus-Master oder Bus-Slave bei einer bestimmten Transaktion beteiligt ist. Gemäß einem weiteren Vorteil des vereinheitlichten Adressenraums wird ein äußerst symmetrisches System erreicht. Da sowohl der DSP als auch die MCU denselben Adressenraum verwenden, kann ein Code einfacher von einer Vorrichtung zur anderen portiert werden. Daher kann der Entwickler einen Code besser zwischen dem DSP und der MCU aufteilen, was kritische Pfadprobleme und eine Prozessorüberlast vermeidet.
  • Das illustrative Ausführungsbeispiel wird nun detaillierter in Verbindung mit 3 beschrieben. Zuerst wird das DSP-Untersystem 201 beschrieben.
  • Bei dem Kernstück des DSP-Untersystems 201 ist ein Kern 301 Analog Devices 218X DSP. Andere Typen eines DSP-Kerns 301 könnten verwendet werden, einschließlich derjenigen, die als Teil einer MCU implementiert sind, oder anderer Vorrichtungen, die DSP-Fähigkeiten in Hardware oder Software implementieren. Ebenso sind im DSP-Untersystem 201 ein Speichermanagementsystem 302 mit einer Steuerung für ein Herunterladen, einer Cache- und Scratch-Speichersteuerung und eines Cachespeichers, und DSP-spezifische periphere Einheiten, einschließlich eines Viterbi-Coprozessors 303 und einer generischen Verschlüsselungsmaschine 304 enthalten. Die Funktionalität von solchen DSP-spezifischen peripheren Geräten könnten in dem DSP oder als externe Hardware und/oder Software implementiert sein.
  • Bemerkenswerterweise ist bei dem DSP-Untersystem 201 kein interner Nurlesespeicher (ROM) vorhanden. Stattdessen wird ein DSP-Code dynamisch in den DSP-Cachespeicher 305 heruntergeladen oder in den Cache gespeichert. Durch Verwenden eines Cachespeichers 305 erfolgt das Herunterladen eines DSP-Codes für den Anwender transparent. Durch Verwenden herkömmlicher Cachespeicherungstechniken muss nicht der gesamte des DSP-Codes, der für eine bestimmte Funktion erforderlich ist, wie beispielsweise einen Sprachcodierer, bei jedem bestimmten Zeitpunkt heruntergeladen werden. Vielmehr müssen nur diejenigen Bruchteile heruntergeladen werden, die sofort zur Verwendung durch den DSP nötig sind, was darin resultiert, dass weniger Speicher innerhalb des DSP-Untersystems 201 erforderlich ist. Obwohl die vorangehende Diskussion zeigt, dass das DSP-Untersystem 201 keinen internen ROM erfordert, könnte einer enthalten sein, wenn es erwünscht ist, ohne von dem Sinngehalt der Erfindung abzuweichen.
  • Ein DSP-Code kann in den Cache von entweder einem internen Systemspeicher 208 oder von einem externen Speicher, wie beispielsweise einen Flash-ROM, der als externe Vorrichtung 210 an dem Bus 207 angeschlossen ist, geladen werden. Eine Vorteilnahme einer solchen Flexibilität minimiert Konflikte zwischen dem DSP-Untersystem 201 und dem MCU-Untersystem 202 in Bezug auf einen Speicherzugriff. Ein kritischer Code sollte platziert werden, wo der minimale Zusatz und die minimale Latenz während eines aktuellen Systembetriebs auferlegt sein werden.
  • Für eine maximale Flexibilität in Bezug auf eine Softwareaufteilung sind alle Bussysteme 204, 205, 206 und 207 durch das DSP-Untersystem 201 über den DSP-Bus 203 und das BAM 211 zugreifbar.
  • Das DSP-Untersystem 201 hat auch einen internen statischen RAM 305, der für einen Code mit kritischen Zeitgabeanforderungen und für Daten verwendet werden kann. Der interne statische RAM 305 des DSP 301 ist auch für das MCU-Untersystem 202 über ein Speicherzugriffsschnittstellen-(MAI-)Modul 306 zugreifbar, das mit dem peripheren Bus 206 verbunden ist.
  • Das MCU-Untersystem 202 enthält einen MCU-Kern 307 ARM7TDM1 (von ARM Ltd. aus dem Vereinigten Königreich) oder einen anderen geeigneten MCU-Zugriff. Das MCU-Untersystem 202 enthält weiterhin Takterzeugungsschaltungen 308 und einen kleinen ROM 309, der einen Ureingabecode bzw. Bootstrap-Code zum Laden extern gespeicherter Software enthält.
  • Der Speicher 208 des illustrativen Ausführungsbeispiels ist ein interner statischer RAM (SRAM) zum Speichern von Daten und eines Codes. Er ist für sowohl das DSP-Untersystem 201 als auch das MCU-Untersystem 202 über ihre jeweiligen Busse 203 und 204 zugreifbar, wenn sie über das BAM 211 mit dem Speicherbus 205 verbunden sind. Ein zeitkritischer MCU-Untersystemcode kann in diesem Speicher platziert werden, um ihn von dem zeitkritischen Code für das DSP-Untersystem zu trennen. Ein weniger zeitkritischer DSP-Code kann auch im statischen RAM 208 gespeichert werden.
  • Das periphere Untersystem 209 enthält eine generische Unterbrechungssteuerung 310, einen generischen Zeitgeber 311, ein generisches serielles Port 312, ein Eingabe/Ausgabe-(GPIO-)Port 313 für allgemeine Zwecke und ein GSM-I/O-System 314. Die generische Unterbrechungssteuerung 310 sammelt alle durch das System empfangenen Unterbrechungen, gruppiert sie zusammen in softwarekonfigurierbaren Gruppen und ordnet sie einer Prioritätsebene zu. Somit wird ein voll ständig programmierbares Unterbrechungsprioritätsschema implementiert. Bei dem illustrativen Ausführungsbeispiel existieren auch drei unabhängige Unterbrechungssteuerungen (nicht gezeigt), und zwar eine für jedes des DSP-Untersystems 201, des MCU-Untersystems 202 und intern zu dem BAM 211. Das generische Zeitgebermodul 311 ist ein vollständig softwarekonfigurierbares Zeitgebermodul, das zum Halten einer Systemzeitgabe verwendet wird. Das Zeitgebermodul kann Unterbrechungen erzeugen und externe Verbindungen zu der Vorrichtung 200 einstellen oder löschen. Das generische serielle Port 312 ist eine vollständig softwareprogrammierbare Ablaufsteuerung mit spezifischer Hardware zum Implementieren von Standards für serielle Ports. Das generische serielle Port 312 kann programmiert werden, um die meisten bekannten seriellen Standards zu bedienen. Somit kann jeder Anwender der Vorrichtung 200 eindeutige hardwarespezifische serielle Schnittstellen erzeugen, ohne irgendeine der internen Strukturen der Vorrichtung 200 zu modifizieren. Die Funktionalität des GPIO 313 lässt zu, dass verschiedene externe Verbindungen zu der Vorrichtung 200 für irgendwelche bestimmten eindeutigen hardware- oder softwarespezifischen Schnittstellenanforderungen verwendet werden.
  • Der externe Bus 207 stellt einen Hochgeschwindigkeitsanschluss zu der Vorrichtung 200 zur Verfügung, der zum Anschließen von Elementen, wie beispielsweise einem Flash-ROM geeignet ist, die eine parallele Schnittstelle erfordern.
  • Wie es oben beschrieben ist, werden alle Busse 203, 204, 205, 206 und 207 über das Buszuteilungsmodul (BAM) 211 miteinander verbunden. Das Buszuteilungsmodul enthält drei Zuteilungseinheiten 314, 315 und 316 und ein Direktzugriffsspeicher-(DMA-)Untersystem mit einem DMA-Bus 317 und einer DMA-Steuerung 318, die unten beschrieben sind. wie es nachfolgend beschrieben werden wird, ist teilweise dadurch, dass man eine separate Zuteilungseinheit für jeden Slave-Bus hat, das BAM 211 derart aufgebaut und angeordnet, dass ein Blockieren vermieden wird, wenn mehrere Bus-Master jeweils einen Zugriff auf Betriebsmittel anfordern, die an die unterschiedlichen Slave-Busse angeschlossen sind.
  • Die drei Buszuteilungseinheiten 314, 315 und 316 entsprechen jeweils einem der drei Hauptsystembusse, nämlich dem Speicherbus 205, dem peripheren Bus 206 bzw. dem externen Bus 207. Die drei Zuteilungseinheiten 314, 315 und 316 sind strukturmäßig identisch (die Zuteilungsverfahren können unterschiedlich sein), sind aber jeweils für ihren eigenen Bus 205, 206 und 207 bestimmt.
  • Eine Zuteilungseinheit 314 verbindet selektiv den Speicherbus 205 mit einem des DSP-Busses 203, des MCU-Busses 204, des DMA-Busses (der nachfolgend diskutiert wird) oder des DSP-Caches.
  • Eine zweite Zuteilungseinheit 315 verbindet selektiv den peripheren Bus 206 mit einem des DSP-Busses 203, des MCU-Busses 204 und des DMA-Busses (der nachfolgend diskutiert ist).
  • Eine dritte Zuteilungseinheit 316 verbindet selektiv den externen Bus 207 mit einem des DSP-Busses 203, des MCU-Busses 204, des DMA-Busses (der nachfolgend diskutiert ist) und des DSP-Caches.
  • Es sollte offensichtlich sein, dass die in 3 dargestellte Struktur nicht blockierend ist, wie es nun diskutiert wird. Bus-Master, wie z.B. der DSP-Kern 301 und die MCU 307, sind jeweils mit ihrem eigenen Bus verbunden. Eine lokale Kommunikation durch einen Bus-Master auf seinem eigenen Bus ist vollständig unabhängig von einer lokalen Kommunikation durch einen anderen Bus-Master auf seinem eigenen Bus. Betriebsmittel, d.h. Bus-Slaves sind unter mehrere Slave-Busse verteilt, wie z.B. die Busse 205, 206, 207. Wenn ein Bus-Master einen Zugriff auf ein Betriebsmittel an einem Slave-Bus anfordert und ein anderer Bus-Master einen Zugriff auf ein anderes Betriebsmittel an einem anderen Slave-Bus anfordert, tritt kein Blockieren auf, weil unabhängige Zuteilungseinheiten die getrennten Anforderungen handhaben. Somit kann der Entwickler den Aufbau durch Trennen von gemeinsam genutzten Betriebsmitteln demgemäß optimieren, welcher Bus-Master der primäre Nutzer des Betriebsmittels ist. Andere nicht blockierende Strukturen sind möglich, und unter Verwendung von beispielsweise einem Mehrfachport kann eine nicht blockierende parallele Schaltstruktur verwendet werden.
  • Die Trennung gemeinsam genutzter Betriebsmittel kann wie folgt durchgeführt werden. Wenn der DSP-Kern 301 ein erstes Betriebsmittel mehr als die MCU 307 verwendet, aber die MCU 307 ein zweites Betriebsmittel mehr als der DSP-Kern 301 verwendet, dann sollten das erste und das zweite Betriebsmittel an unterschiedliche Slave-Busse angebracht werden.
  • Jede Zuteilungseinheit 314, 315, 316 gewährt einen Zugriff auf ihren Bus 205, 206, 207 gemäß dem nachfolgend beschriebenen Verfahren. Ein aktives Busauswahl signal von einem Anfordernden zu der Zuteilungseinheit 314, 315, 316 zeigt eine Anforderung für einen Zugriff und eine Zuteilung an. Die Zuteilungseinheit 314, 315, 316 bringt entweder ein Wartesignal zum Verzögern eines Zugriffs zurück oder gewährt den Zugriff. Wenn das Busauswahlsignal eines Anfordernden, der einen Zugriff gewährte, inaktiv wird, zeigt es der Zuteilungseinheit an, dass der nächste Zuteilungszyklus beginnen kann.
  • Um die Leistungsfähigkeit der Vorrichtung 200 zu maximieren, kann der DSP-Cachezugriff in einem Blockmode unter einem Lesen von (beispielsweise) bis zu 12 Worten gleichzeitig durchgeführt werden. Bei dem illustrativen Ausführungsbeispiel sind Worte 16 Bits lang, jedoch können andere Längen verwendet werden, wie es durch bestimmte Busentwicklungen erforderlich ist, die im Stand der Technik bekannt sind. Somit kann ein voller Vorteil aus der zur Verfügung gestellten Bandbreite dadurch gezogen werden, dass beispielsweise ein Flash-ROM als externe Vorrichtung 210 mit dem externen Bus 207 verbunden ist. Das Verfahren einer Zuteilung wird nachfolgend detaillierter diskutiert.
  • Das DMA-Untersystem des Buszuteilungsmoduls enthält einen DMA-Bus 317 und eine Mehrkanal-DMA-Steuerung 318. Bei dem illustrativen Ausführungsbeispiel wird eine 16-Kanal-DMA-Steuerung 318 verwendet. Die DMA-Steuerung 318 ist ein Bus-Master, wie der DSP-Kern 301 und die MCU 307. Der DMA-Bus 317 verbindet die drei Zuteilungseinheiten 314, 315, 316 miteinander, so dass ein DMA zwischen Vorrichtungen durchgeführt werden kann, die mit irgendeinem der drei Busse, nämlich dem Speicherbus 205, dem peripheren Bus 206 und dem externen Bus 207, verbunden sind. Daten oder ein Code können von irgendeiner Adressenstelle auf einem der drei Busse 205, 206 und 207 zu irgendeiner Adressenstelle auf einem anderen der drei Busse 205, 206 und 207 transferiert werden. Die DMA-Steuerung 318 enthält ein Wort eines Transferspeichers, der der Speicher ist, der zum Durchführen des Transfers verwendet wird, der oben angegeben ist und nachfolgend detailliert beschrieben wird. Die DMA-Steuerung 318 enthält auch einen anderen Speicher, der zu Zwecken verwendet wird, die im Stand der Technik bekannt sind. Andere Speichergrößen könnten verwendet werden, wenn es für einen bestimmten Zweck erwünscht ist. Die DMA-Steuerung 318 liest ein Wort von einer Quellenstelle während eines ersten Speicherzyklus ein, schreibt dann das Wort zu einer Zielortstelle während eines zweiten darauf folgenden Speicherzyklus aus.
  • Die DMA-Steuerung 318 steuert den Betrieb des DMA-Busses 317. Die DMA-Steuerung 318 handhabt Datentransfers für sowohl durch eine Unterbrechung angetriebene I/O-Vorrichtungen als auch für Speichervorrichtungen. Die DMA-Steuerung 318 enthält separate Vollduplexkanäle mit identischer Funktionalität. Jeder Kanal wird durch entweder das MCU-Untersystem 202 oder das DSP-Untersystem 201 über den peripheren Bus 206 gesteuert und konfiguriert. Nachdem die DMA-Steuerung 318 eine programmierbare Anzahl von Adressenstellen transferiert, teilt sie der Unterbrechungssteuerung 310 eine Unterbrechung zu.
  • Die DMA-Steuerung 318 kann die folgenden Aufgaben durchführen, die dem System eine zusätzliche Funktionalität geben. Ein RAM-Puffer kann zwischen einer I/O-Vorrichtung und beispielsweise dem MCU-Untersystem 202 erzeugt werden. Somit kann die Anzahl von Unterbrechungen, die zum Handhaben von I/O-Daten erforderlich sind, reduziert werden. In einem solchen Fall transferiert die DMA-Steuerung einen Block einer vorbestimmten oder programmierbaren Anzahl von Worten von Daten zwischen einem Speichermodul, wie beispielsweise dem SRAM 208, und der I/O-Peripherieeinheit innerhalb des peripheren Untersystems 209. Die DMA-Steuerung kann einen Block von Daten, wie beispielsweise eine Tabelle oder ein Programm, von einem Flash-ROM unter den externen Vorrichtungen 210 zu dem Datenspeicher, dem Programmspeicher oder dem Cache des internen DSP-Untersystems bewegen. Schließlich kann die DMA-Steuerung das Kopieren von irgendwelchen großen Speicherblöcken von einer Stelle zu einer anderen im System bewirken, wie es erforderlich sein kann.
  • Als Nächstes wird das Zuteilungsverfahren des illustrativen Ausführungsbeispiels in Verbindung mit 4 diskutiert. Bei der illustrativen Vorrichtung 200 sind das DSP-Untersystem 201, das MCU-Untersystem 202 und die DMA-Steuerung 318 Bus-Master.
  • Gemäß einem einfachen Zuteilungsverfahren hat jede Vorrichtung eine eindeutige Prioritätsebene zugeordnet. In einem solchen System wird der Vorrichtung mit der höchsten Priorität, die einen Zugriff auf einen Bus anfordert, immer ein Zugriff zugeteilt. Jedoch kann ein solches Schema in einem Hungern nach Bandbreite für Vorrichtungen niedriger Priorität resultieren, wenn die Vorrichtungen höherer Priorität konstant einen Zugriff fordern. Ein weiteres allgemeines Zuteilungsverfahren ist das Round-Robin-Zuteilungsverfahren, bei welchem jeder Vorrichtung eine Priorität zugeteilt wird, die von der Platzierung der Vorrichtung auf einer Rotationsliste abhängt. Die anfordernde Vorrichtung bei der höchsten Position in der Liste empfängt den angeforderten Zugriff. Typischerweise wird die oberste Vorrichtung in der Prioritätsliste dann zu dem untersten Teil der Liste bewegt. Keines dieser herkömmlichen Verfahren erfüllt alle Anforderungen der hierin beschriebenen Vorrichtung.
  • Da die Bandbreitenanforderungen des peripheren Untersystems 209 nicht sehr hoch sind, wird eine Zuteilung für den peripheren Bus 206 durch das Round-Robin-Verfahren durchgeführt. Es kann angenommen werden, dass es keine Rückseite-an-Rückseite-Anforderungen durch einen Bus-Master für den peripheren Bus gibt.
  • In Bezug auf den externen Bus 207 und den Speicherbus 205 müssen die erwarteten Bandbreitenerfordernisse des DSP-Busses 203, des MCU-Busses 204 und des DMA-Busses 317 berücksichtigt werden. Eine Round-Robin-Tabelle ist mit einer festen Tabelle mit 15 programmierbaren Slots kombiniert. In Abhängigkeit von den relativen Bandbreitenerfordernissen des DSP-Untersystems 201, des MCU-Untersystems 202 und der DMA-Steuerung 318 sind die 15 Slots geeignet auf die drei Bus-Master verteilt.
  • Das resultierende zusammengesetzte Zuteilungsverfahren wird wie folgt durchgeführt. Die Zuteilungseinheiten (3, 314, 315, 316) warten darauf, dass Busanforderungen ankommen, 401. dann prüft die Zuteilungseinheit auf Unterbrechungen hoher Priorität, 405. Wenn beispielsweise das DSP-Untersystem 201 in einen Wartezustand versetzt worden ist, kann es die seriellen Ports nicht handhaben, was zum Verarbeiten erforderlich ist. Daher wird dann, wenn ein solcher Wartezustand des DSP-Untersystems 201 auftritt, eine Unterbrechung hoher Priorität ausgegeben. Wenn eine solche Unterbrechung hoher Priorität auftritt und erfasst wird, 402, wird ein Zugriff auf den Bus-Master gewährt, der verantwortlich dafür ist, dass die Unterbrechung hoher Priorität ausgegeben worden ist, 403. Nachdem der Zugriff beendet ist, nimmt die Zuteilungseinheit wieder ein Warten auf Busanforderungen auf, 401. Als Nächstes wird eine Bestimmung durch Bezugnahme auf die feste Tabelle programmierbarer Slots diesbezüglich durchgeführt, ob einer der Anfordernden der aktuelle Besitzer des Zugriffsslots ist, 404. Wenn es so ist, wird bei 405 dem aktuellen Slot-Besitzer ein Zugriff gewährt und wird die Slot-Tabelle einem Updaten unterzogen, so dass der Slot-Besitzer nun der nächste darin aufgelistete Bus-Master ist, 406. Wenn der gegenwärtige Slot-Besitzer nicht einer der Anfordernden ist, 404, dann wird die Anforderung gemäß dem aktuellen Zustand der Round-Robin-Tabelle gewährt, 407. Dann wird die Round-Robin-Tabelle einem Updaten unterzogen, 408, wie es für die Slot-Besitzertabelle erfolgt, 406.
  • Wesentliche Teile des beschriebenen Zuteilungsverfahrens werden asynchron durchgeführt, wie beispielsweise durch eine asynchrone Logik. Durch Verwenden asynchroner Prozesse verarbeitet das Zuteilungsverfahren Busanforderungen sofort, ohne Buszyklen zu verlieren. Nur die Updates 406, 408 werden auf einer Taktzyklusbasis durchgeführt. Die Updates 406, 408 erfolgen bei dem Taktzyklus, in welchem ein Buszugriff gewährt ist.
  • Es ist möglich, bei einem solchen Zuteilungsverfahren mehrere Vorrichtungen zu haben, die Unterbrechungen hoher Priorität erzeugen können, aber in dem Fall muss zwischen ihnen eine Hilfs-Prioritätszuteilung durchgeführt werden, in welchem zwei oder mehrere Unterbrechungen hoher Priorität gleichzeitig erfasst werden.
  • Die vorliegende Erfindung ist nun in Verbindung mit einer Anzahl von spezifischen Ausführungsbeispielen davon beschrieben worden. Jedoch sollten nun zahlreiche Modifikationen, die derart angesehen werden, dass sie in den Schutzumfang der vorliegenden Erfindung fallen, Fachleuten auf dem Gebiet offensichtlich sein. Daher ist beabsichtigt, dass der Schutzumfang der vorliegenden Erfindung nur durch den Schutzumfang der hierzu beigefügten Ansprüche beschränkt ist.

Claims (27)

  1. Vorrichtung (200), die folgendes aufweist: mehrere Master-Busse (203, 204, 317); mehrere Bus-Master (201, 202, 301, 307, 318), die jeweils an einem entsprechenden der mehreren Master-Busse angeschlossen sind; mehrere Slave-Busse (205, 206, 207); mehrere Betriebsmittel (208, 209, 210), die durch die mehreren Bus-Master verwendet werden, wobei jedes der mehreren Betriebsmittel an einen entsprechenden der mehreren Slave-Busse angeschlossen ist; ein Buszuteilungsmodul BAM (211), das zum selektiven Anschließen von irgendeinem der mehreren Master-Busse (203, 204, 317) an irgendeinen der mehreren Slave-Busse (305, 206, 207) konfiguriert ist, so dass kein Blockieren auftritt, wenn die mehreren Bus-Master (201, 202, 301, 307, 318) jeweils auf unterschiedliche der mehreren Betriebsmittel (208, 209, 210) zugreifen, wobei das Buszuteilungsmodul dadurch gekennzeichnet ist, dass es mehrere Zuteilungseinheiten (314316) enthält, wobei jede der Zuteilungseinheiten zu einem jeweiligen Slave-Bus gehört, wobei jede Zuteilungseinheit angeordnet und eingerichtet ist, um ihren zugehörigen Slave-Bus selektiv an irgendeinen der mehreren Master-Busse anzuschließen, wobei die Buszuteilungseinheit weiterhin zum selektiven Garantieren einer konfigurierbaren minimalen Zugriffsbandbreite durch jeden der mehreren Bus-Master (201, 202, 301, 307, 318) zu wenigstens einem ersten der mehreren Slave-Busse (205, 206, 207) konfiguriert ist, wobei das Buszuteilungsmodul (211) ein programmierbares Element aufweist, das selektiv konfiguriert sein kann, um die relativen garantierten minimalen Zugriffsbandbreitenwerte der mehreren Bus-Master (201, 202, 301, 307, 318) zu dem ersten der mehreren Slave-Busse (205, 206, 207) zu bestimmen.
  2. Vorrichtung nach Anspruch 1, die in einer einzelnen integrierten Schaltung enthalten ist, und wobei: der erste der mehreren Bus-Master ein erstes Datenverarbeitungsuntersystem (201) mit einem ersten Prozessor aufweist; und der zweite der mehreren Bus-Master ein zweites Datenverarbeitungsuntersystem (202) mit einem zweiten Prozessor aufweist.
  3. Vorrichtung nach Anspruch 1 oder 2, die in einer Datenkommunikationsvorrichtung enthalten ist, und wobei: der erste der mehreren Bus-Master ein Kommunikationssystem aufweist; und der zweite der mehreren Bus-Master ein Überwachungs- und Steuersystem aufweist.
  4. Vorrichtung nach einem der Ansprüche 1 bis 3, die in einer einzelnen integrierten Schaltung enthalten ist, die in einem Telefonhörer verwendet wird, und wobei: der erste der mehreren Bus-Master einen digitalen Signalprozessor (DSP) aufweist; und der zweite der mehreren Bus-Master eine Mikroprozessorsteuereinheit (MCU) aufweist.
  5. Vorrichtung nach einem der Ansprüche 1 bis 4, wobei die mehreren Betriebsmittel einen Speicher (208) aufweisen, der durch wenigstens den ersten und den zweiten der mehreren Bus-Master verwendet wird.
  6. Vorrichtung nach einem der Ansprüche 1 bis 5, wobei: die mehreren Bus-Master zusätzlich zum ersten und zum zweiten der mehreren Bus-Master weiterhin eins Direktzugriffsspeicher-(DMA-)Steuerung (318) aufweisen; die mehreren Master-Busse weiterhin einen DMA-Bus (317) aufweisen, an dem die DMA-Steuerung angeschlossen ist; und das Buszuteilungsmodul konfiguriert ist, um den DMA-Bus selektiv mit zweien der mehreren Slave-Busse gleichzeitig zu koppeln, um zu ermöglichen, dass die DMA-Steuerung veranlasst, dass Daten zwischen zweien der mehreren Betriebsmittel transferiert werden.
  7. Vorrichtung nach einem der Ansprüche 1 bis 6, wobei die mehreren Betriebsmittel Systemunterstützungselemente, Kommunikationsunterstützungselemente und Eingabe/Ausgabe-(I/O-)Elemente aufweisen.
  8. Vorrichtung nach Anspruch 7, wobei die Systemunterstützungselemente eine Unterbrechungssteuerung enthalten, die Kommunikationsunterstützungselemente Kommunikationsunterstützungselemente für ein globales System für Mobilfunk GSM enthalten und die I/O-Elemente einen allgemeinen seriellen Anschluss enthalten.
  9. Vorrichtung nach einem der Ansprüche 1 bis 3 und 5 bis 8, wobei der erste der mehreren Bus-Master einen digitalen Signalprozessor DSP aufweist.
  10. Vorrichtung nach einem der Ansprüche 1 bis 3 und 5 bis 9, wobei der zweite der mehreren Bus-Master eine Mikroprozessorsteuereinheit MCU aufweist.
  11. Vorrichtung nach einem der Ansprüche 1 bis 10, wobei die mehreren Slave-Busse einen externen Slave-Bus (207) mit einem Anschluss zu einer externen Vorrichtung (210) aufweisen.
  12. Vorrichtung nach Anspruch 11, wobei die externe Vorrichtung eine Speichervorrichtung enthält.
  13. Vorrichtung nach einem der Ansprüche 1 bis 12, die weiterhin folgendes aufweist: einen lokalen Speicher, der zur Kommunikation direkt mit ihm und nicht über das Buszuteilungsmodul an den ersten der mehreren Bus-Master angeschlossen ist
  14. Vorrichtung nach Anspruch 13, die weiterhin folgendes aufweist: eine Speicherzugriffsschnittstelle MAI, die einen von mehreren Slave-Bussen an den lokalen Speicher anschließt.
  15. Vorrichtung nach Anspruch 14, wobei der eine der mehreren Slave-Busse einen Anschluss an eine externe Vorrichtung enthält.
  16. Vorrichtung nach Anspruch 15, wobei die externe Vorrichtung, an die einer der mehreren Slave-Busse angeschlossen ist, eine Speichervorrichtung enthält.
  17. Vorrichtung nach einem der Ansprüche 1 bis 16, wobei: das programmierbare Element eine programmierbare Tabelle von Slots aufweist, die den mehreren Bus-Mastern zugeordnet sind; und die garantierte minimale Zugriffsbandbreite durch den ersten der mehreren Bus-Master zu dem ersten der mehreren Slave-Busse und die garantierte minimale Zugriffsbandbreite durch den zweiten der mehreren Bus-Master zu dem ersten der mehreren Slave-Busse basierend auf der Anzahl von Slots bestimmt sind, die jeweils dem ersten und dem zweiten der mehreren Bus-Master zugeordnet sind.
  18. Vorrichtung nach Anspruch 17, wobei die programmierbare Tabelle so konfiguriert sein kann, dass der erste der mehreren Bus-Master einer größeren Anzahl von Slots in der Tabelle als der zweite der mehreren Bus-Master zugeordnet ist.
  19. Verfahren zum Betreiben eines Buszuteilungsmoduls BAM (211) zum Steuern eines Zugriffs auf ein erstes und ein zweites Betriebsmittel (208, 209, 210), die mit einem ersten und einem zweiten Slave-Bus (205, 206, 207) gekoppelt sind, durch wenigstens einen ersten und einen zweiten Bus-Master (201, 202, 301, 307, 318), die jeweils mit einem ersten und einem zweiten Master-Bus (203, 204, 317) gekoppelt sind, wobei das Buszuteilungsmodul mehrere Zuteilungseinheiten (314316) enthält, wobei jede der Zuteilungseinheiten zu einem jeweiligen Slave-Bus gehört, welches Verfahren folgendes aufweist: Betreiben des Buszuteilungsmoduls (211) so, dass jede Zuteilungseinheit ihren zugehörigen Slave-Bus selektiv an irgendeinen der mehreren Master-Busse anschließt, so dass kein Blockieren auftritt, wenn der erste und der zweite Bus-Master (201, 202, 301, 307, 318) jeweils auf ein anderes des ersten und des zweiten Betriebsmittels (208, 209, 210) zugreift; und Konfigurieren eines programmierbaren Elements zum selektiven Bestimmen einer garantierten minimalen Zugriffsbandbreite für jeden des ersten und des zweiten Bus-Masters (201, 202, 301, 307, 318) zu dem ersten Slave-Bus (205, 206, 207).
  20. Verfahren nach Anspruch 19, wobei das programmierbare Element eine Tabelle von Slots aufweist, die den Bus-Mastern zugeordnet sind, wobei einer der Slots als Zugriffsslot dient und wobei wenigstens einer der Bus-Master mehreren Slots zugeordnet ist, und wobei das Verfahren weiterhin folgendes aufweist: Gewähren einer Buszugriffsanforderung eines Bus-Masters, der eine Unterbrechung hoher Priorität aktiviert; wenn kein Bus-Master eine Unterbrechung hoher Priorität aktiviert, Bestimmen, ob ein Bus-Master, der eine Buszugriffsanforderung durchführt, gegenwärtig dem Zugriffsslot in der Tabelle zugeordnet ist, und Gewähren der Buszugriffsanforderung dieses Bus-Masters, wenn bestimmt wird, dass der Bus-Master gegenwärtig dem Zugriffsslot in der Tabelle zugeordnet ist; und wenn kein Bus-Master eine Unterbrechung hoher Priorität aktiviert und kein Bus-Master, der eine Anforderung durchführt, dem Zugriffsslot zugeordnet ist, Gewähren einer Buszugriffsanforderung eines Bus-Masters, der in einer Round-Robin-Prioritätsliste der höchste ist.
  21. Verfahren nach Anspruch 20, wobei der Schritt zum Gewähren einer Buszugriffsanforderung eines Bus-Masters, der eine Unterbrechung hoher Priorität aktiviert, weiterhin folgendes aufweist: Erzeugen der Unterbrechung hoher Priorität für einen Prozessor, der bei einem Echtzeitsignal arbeitet, wenn der Prozessor für eine Auszeitperiode in einem Wartezustand gewesen ist.
  22. Verfahren nach Anspruch 21, wobei die Auszeitperiode programmierbar ist.
  23. Verfahren nach einem der Ansprüche 20 bis 22, wobei das programmierbare Element so konfiguriert sein kann, dass der erste Bus-Master mehr Slots in der Tabelle als der zweite Bus-Master zugeordnet wird.
  24. Verfahren nach einem der Ansprüche 20 bis 23, wobei der Schritt zum Bestimmen, ob ein Bus-Master, der eine Buszugriffsanforderung durchführt, gegenwärtig zugeordnet ist, weiterhin folgendes aufweist: wenn die Buszugriffsanforderung eines Bus-Masters, der dem Zugriffsslot zugeordnet ist, gewährt wird, Aktualisieren der Tabelle, so dass ein anderer der Bus-Mastereinträge in der Tabelle dem Zugriffsslot zugeordnet wird.
  25. Verfahren nach einem der Ansprüche 20 bis 24, wobei der Schritt zum Gewähren einer Buszugriffsanforderung eines Bus-Masters, der in einer Round-Robin-Prioritätsliste der höchste ist, weiterhin folgendes aufweist: wenn die Buszugriffsanforderung eines Bus-Masters, der in der Round-Robin-Prioritätsliste der höchste ist, gewährt wird, Aktualisieren der Round- Robin-Prioritätsliste und auch Aktualisieren der Tabelle, so dass ein anderer der Bus-Mastereinträge in der Tabelle dem Zugriffsslot zugeordnet wird.
  26. Verfahren nach einem der Ansprüche 20 bis 25, das weiterhin folgendes aufweist: Zuordnen einer Anzahl von Slots in der Tabelle zu jedem Bus-Master basierend auf den relativen Bandbreitenerfordernissen der Bus-Master.
  27. Verfahren nach einem der Ansprüche 20 bis 26, das weiterhin folgendes aufweist: Konfigurieren des programmierbaren Elements, um eine garantierte minimale Zugriffsbandbreite durch jeden des ersten und des zweiten Bus-Masters zu dem zweiten Slave-Bus zu bestimmen.
DE60027748T 1999-11-05 2000-11-03 Busarchitektur und verteiltes busarbitrierungsverfahren für einen kommunikationsprozessor Expired - Lifetime DE60027748T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16381699P 1999-11-05 1999-11-05
US163816P 1999-11-05
PCT/US2000/030305 WO2001035210A2 (en) 1999-11-05 2000-11-03 Bus architecture and shared bus arbitration method for a communication processor

Publications (2)

Publication Number Publication Date
DE60027748D1 DE60027748D1 (de) 2006-06-08
DE60027748T2 true DE60027748T2 (de) 2007-04-05

Family

ID=22591705

Family Applications (3)

Application Number Title Priority Date Filing Date
DE60027748T Expired - Lifetime DE60027748T2 (de) 1999-11-05 2000-11-03 Busarchitektur und verteiltes busarbitrierungsverfahren für einen kommunikationsprozessor
DE60017775T Expired - Lifetime DE60017775T2 (de) 1999-11-05 2000-11-03 Architektur und system von einem generischen und seriellen port
DE2000608139 Expired - Lifetime DE60008139T2 (de) 1999-11-05 2000-11-06 Cachespeicheranordnung für einen digitalen signalprozessor

Family Applications After (2)

Application Number Title Priority Date Filing Date
DE60017775T Expired - Lifetime DE60017775T2 (de) 1999-11-05 2000-11-03 Architektur und system von einem generischen und seriellen port
DE2000608139 Expired - Lifetime DE60008139T2 (de) 1999-11-05 2000-11-06 Cachespeicheranordnung für einen digitalen signalprozessor

Country Status (5)

Country Link
EP (3) EP1226505B1 (de)
CN (3) CN100353349C (de)
AU (3) AU1458501A (de)
DE (3) DE60027748T2 (de)
WO (3) WO2001035234A1 (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6768358B2 (en) * 2001-08-29 2004-07-27 Analog Devices, Inc. Phase locked loop fast power up methods and apparatus
GB0122401D0 (en) * 2001-09-17 2001-11-07 Ttp Communications Ltd Interfacing processors with external memory
GB2388929B (en) 2002-05-23 2005-05-18 Advanced Risc Mach Ltd Handling of a multi-access instruction in a data processing apparatus
KR100532416B1 (ko) * 2003-01-18 2005-11-30 삼성전자주식회사 다중 소스의 다중 채널로의 할당 방법 및 시스템
KR100463205B1 (ko) * 2003-02-13 2004-12-23 삼성전자주식회사 시퀀셜 버퍼를 내장하여 디에스피의 데이터 억세스 성능을향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터억세스 방법
US20050154928A1 (en) * 2004-01-08 2005-07-14 International Business Machines Corporation Remote power-on functionality in a partitioned environment
CN1661576B (zh) * 2004-02-25 2010-04-28 中国科学院计算技术研究所 Soc架构下的高速总线动态变频装置和处理器核接口
US7957428B2 (en) * 2004-05-21 2011-06-07 Intel Corporation Methods and apparatuses to effect a variable-width link
CN100389413C (zh) * 2004-09-15 2008-05-21 北京中星微电子有限公司 串行通信总线外部设备接口
CN100388251C (zh) * 2004-12-24 2008-05-14 刘龙威 外部数据存储设备共享切换电路及其应用系统
US7348799B2 (en) * 2005-01-11 2008-03-25 Hewlett-Packard Development Company, L.P. System and method for generating a trigger signal
US7428603B2 (en) 2005-06-30 2008-09-23 Sigmatel, Inc. System and method for communicating with memory devices via plurality of state machines and a DMA controller
JP4747896B2 (ja) * 2006-03-17 2011-08-17 ソニー株式会社 情報処理装置および方法、並びにプログラム
US7930576B2 (en) * 2007-04-10 2011-04-19 Standard Microsystems Corporation Sharing non-sharable devices between an embedded controller and a processor in a computer system
CN101840385B (zh) * 2009-03-19 2012-07-18 承景科技股份有限公司 数据存取系统
CN102654853B (zh) * 2011-03-04 2015-03-04 上海华虹集成电路有限责任公司 一种采用两个微处理器的Nandflash控制器
CN102662911A (zh) * 2012-03-19 2012-09-12 中国科学院上海技术物理研究所 一种板级重构红外信号处理机的控制方法
US9129072B2 (en) * 2012-10-15 2015-09-08 Qualcomm Incorporated Virtual GPIO
US9946675B2 (en) * 2013-03-13 2018-04-17 Atieva, Inc. Fault-tolerant loop for a communication bus
CN104216857B (zh) * 2013-05-31 2017-09-22 英业达科技有限公司 多工切换装置及其切换方法
FR3026869B1 (fr) * 2014-10-07 2016-10-28 Sagem Defense Securite Systeme embarque sur puce a haute surete de fonctionnement
US9450582B2 (en) 2015-02-03 2016-09-20 Freescale Semiconductor, Inc. Programmable buffer system
KR102160414B1 (ko) * 2016-01-22 2020-09-28 주식회사 소니 인터랙티브 엔터테인먼트 하위 호환성을 위한 레거시 버스 동작 시뮬레이션
GB2553338B (en) * 2016-09-02 2019-11-20 Advanced Risc Mach Ltd Serial communication control
CN106980577B (zh) * 2017-03-20 2020-04-28 华为机器有限公司 输入输出处理方法、装置及终端
US10558604B2 (en) * 2017-12-20 2020-02-11 Qualcomm Incorporated Communication interface transaction security
CN109725250B (zh) * 2019-01-04 2021-07-13 珠海亿智电子科技有限公司 一种片上系统芯片模拟电路的测试系统及测试方法
CN111045980A (zh) * 2019-12-24 2020-04-21 广东嘉泰智能技术有限公司 一种多核处理器
CN114297105B (zh) * 2021-12-29 2024-04-05 合肥市芯海电子科技有限公司 一种直接存储器访问的嵌入式控制电路、芯片和电子设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4630267A (en) * 1983-12-23 1986-12-16 International Business Machines Corporation Programmable timing and synchronization circuit for a TDMA communications controller
US4831520A (en) * 1987-02-24 1989-05-16 Digital Equipment Corporation Bus interface circuit for digital data processor
EP0426413B1 (de) * 1989-11-03 1997-05-07 Compaq Computer Corporation Multiprozessorarbitrierung in für Einzelprozessor bestimmten Arbitrierungsschemas
EP0665502B1 (de) * 1994-01-27 2002-06-12 Sun Microsystems, Inc. Asynchrone serielle kommunickationsschaltung
US5628030A (en) * 1994-03-24 1997-05-06 Multi-Tech Systems, Inc. Virtual modem driver apparatus and method
US5598542A (en) * 1994-08-08 1997-01-28 International Business Machines Corporation Method and apparatus for bus arbitration in a multiple bus information handling system using time slot assignment values
DE69634358T2 (de) * 1995-06-07 2005-12-29 Samsung Electronics Co., Ltd., Suwon Verzögerungsverringerung in der übertragung von gepufferten daten zwischenzwei gegenseitig asynchronen bussen
US5809091A (en) * 1996-06-04 1998-09-15 Ericsson, Inc. Timing signal generator for digital communication system
US5805844A (en) * 1996-10-07 1998-09-08 Gustin; Jay W. Control circuit for an interface between a PCI bus and a module bus
US5987568A (en) * 1997-01-10 1999-11-16 3Com Corporation Apparatus and method for operably connecting a processor cache and a cache controller to a digital signal processor
DE19713178A1 (de) * 1997-03-27 1998-10-01 Siemens Ag Schaltungsanordnung mit einem Prozessor und einem Datenspeicher
US5974486A (en) * 1997-08-12 1999-10-26 Atmel Corporation Universal serial bus device controller comprising a FIFO associated with a plurality of endpoints and a memory for storing an identifier of a current endpoint
GB9724030D0 (en) * 1997-11-13 1998-01-14 Advanced Telecommunications Mo Peripheral servicing
EP0924623A3 (de) * 1997-12-22 2000-07-05 Compaq Computer Corporation Rechnersystem mit Arbitrierungsvorrichtung, die mehrere Bus-Master befähigt, auf einen Grafikbus zuzugreifen

Also Published As

Publication number Publication date
DE60027748D1 (de) 2006-06-08
WO2001035210A2 (en) 2001-05-17
CN100353349C (zh) 2007-12-05
CN1387645A (zh) 2002-12-25
WO2001035234A9 (en) 2002-05-30
CN1399743A (zh) 2003-02-26
DE60008139T2 (de) 2004-11-18
WO2001035246A3 (en) 2002-07-11
DE60017775T2 (de) 2006-01-12
WO2001035210A3 (en) 2002-01-17
AU1458501A (en) 2001-06-06
DE60008139D1 (de) 2004-03-11
EP1226505B1 (de) 2005-01-26
CN100336046C (zh) 2007-09-05
CN1387646A (zh) 2002-12-25
WO2001035234A1 (en) 2001-05-17
EP1226493A2 (de) 2002-07-31
AU1465001A (en) 2001-06-06
EP1236122A2 (de) 2002-09-04
EP1236122B1 (de) 2004-02-04
WO2001035246A2 (en) 2001-05-17
EP1226493B1 (de) 2006-05-03
DE60017775D1 (de) 2005-03-03
CN1279472C (zh) 2006-10-11
AU1458801A (en) 2001-06-06
EP1226505A1 (de) 2002-07-31

Similar Documents

Publication Publication Date Title
DE60027748T2 (de) Busarchitektur und verteiltes busarbitrierungsverfahren für einen kommunikationsprozessor
DE60037065T2 (de) Übertragungsteuerung mit Naben- und Torachitektur
DE69027515T2 (de) Vorrichtung für Prioritätsarbitrierungskonditionierung bei gepufferter Direktspeicheradressierung
DE69322310T2 (de) Busarchitektur für integrierten Daten/- und Videospeicher
DE69628609T2 (de) Distribuiertes Pipeline-Busarbitrierungssystem
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE69322248T2 (de) Reservierung, die den normalen vorrang von mikroprozessoren in multiprozessorrechnersystemen annulliert
DE3782335T2 (de) Speichersteuersystem.
DE69021603T2 (de) Buszugriffsarbitrierung in digitalen Rechnern.
DE69312192T2 (de) Aufteilung des buszugriffs zwischen mehreren endlichen automaten mit minimaler wartezeit und priorisierung von ähnlichen zyklustypen
DE3889366T2 (de) Interface für ein Rechnersystem mit reduziertem Befehlssatz.
DE68928530T2 (de) Modulare Kreuzschienenzwischenverbindungen in einem digitalen Rechner
DE69127101T2 (de) System für verteilte mehrfachrechnerkommunikation
DE3486299T2 (de) Bus-Arbitrierungssystem.
DE60223555T2 (de) Verfahren und apparat zur takt- und leistungssteuerung in drahtlosen systemen
DE69231500T2 (de) Ein-Chip-Mikrorechner
DE69935852T2 (de) Host-Zugriff zu gemeinschaftlichem Speicher mit Hochprioritätsbetriebsart
DE69307717T2 (de) Priorisierung von mikroprozessoren in multiprozessorrechnersystemen
DE69634182T2 (de) Direktspeicherzugriffssteuerung mit programmierbarer Zeitsteuerung
DE60118622T2 (de) Benutzer-konfigurierbares on-chip speichersystem
DE69523395T2 (de) Datenprozessor mit gesteuertem Stoss-Speicherzugriff und Vorrichtung dafür
DE3606211A1 (de) Multiprozessor-computersystem
DE68928040T2 (de) Pufferspeichersubsystem für Peripheriesteuerungen und Verfahren
DE60132424T2 (de) Taktschutz für gemeinsame Komponenten einer Multiprozessor-DSP Vorrichtung
DE69111764T2 (de) Übereinstimmungsprotokolle für Mehrprozessoren mit gemeinsam genutztem Speicher.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: MEDIATEK INC., HSINCHU, TW