DE10360637A1 - Programmgesteuerte Einheit - Google Patents

Programmgesteuerte Einheit Download PDF

Info

Publication number
DE10360637A1
DE10360637A1 DE2003160637 DE10360637A DE10360637A1 DE 10360637 A1 DE10360637 A1 DE 10360637A1 DE 2003160637 DE2003160637 DE 2003160637 DE 10360637 A DE10360637 A DE 10360637A DE 10360637 A1 DE10360637 A1 DE 10360637A1
Authority
DE
Germany
Prior art keywords
data
bus
program
controlled unit
unit according
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.)
Granted
Application number
DE2003160637
Other languages
English (en)
Other versions
DE10360637B4 (de
Inventor
Jens Dr. Barrenscheen
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE2003160637 priority Critical patent/DE10360637B4/de
Publication of DE10360637A1 publication Critical patent/DE10360637A1/de
Application granted granted Critical
Publication of DE10360637B4 publication Critical patent/DE10360637B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/21Pc I-O input output
    • G05B2219/21097DMA
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23391Each module can transfer data to I-O or other module and has parameter memory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25143Buffer for communication between two cpu
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25276Fifo

Abstract

Es wird eine programmgesteuerte Einheit beschrieben, mit wenigstens einem Bus und mit über den wenigstens einen Bus miteinander verbundenen Einrichtungen, DOLLAR A - wobei die über den wenigstens einen Bus miteinander verbundenen Einrichtungen erste Einrichtungen umfassen, DOLLAR A - die an eine der jeweils anderen Einrichtungen, die über den wenigstens einen Bus miteinander verbunden sind, Daten übertragen und/oder DOLLAR A - an die von einer der jeweils anderen Einrichtungen, die über den wenigstens einen Bus miteinander verbunden sind, Daten übertragen werden und DOLLAR A - wobei Pufferspeicher zur Zwischenspeicherung von zu übertragenden oder übertragenen Daten vorgesehen sind. DOLLAR A Die beschriebene programmgesteuerte Einheit zeichnet sich dadurch aus, daß die Übertragung von Daten von und/oder zu einer ersten Einrichtung über eine außerhalb der ersten Einrichtung vorgesehene und ebenfalls zu den mit über den wenigstens einen Bus miteinander verbundenen Einrichtungen gehörende zweite Einrichtung erfolgt und daß diese zweite Einrichtung als vollständiger oder teilweiser Ersatz für die ansonsten in den ersten Einrichtungen vorzusehenden Pufferspeicher verwendet wird, so daß die ersten Einrichtungen ohne oder mit kleineren internen Pufferspeichern auskommen, als es ohne die zweite Einrichtung der Fall wäre.

Description

  • Die vorliegende Erfindung betrifft eine Vorrichtung gemäß dem Oberbegriff des Patentanspruchs 1, d.h. eine programmgesteuerte Einheit mit wenigstens einem Bus, und mit über den wenigstens einen Bus miteinander verbundenen Einrichtungen,
    • – wobei die über den wenigstens einen Bus miteinander verbundenen Einrichtungen erste Einrichtungen umfassen,
    • – die an eine der jeweils anderen Einrichtungen, die über den wenigstens einen Bus miteinander verbunden sind, Daten übertragen, und/oder
    • – an die von einer der jeweils anderen Einrichtungen, die über den wenigstens einen Bus miteinander verbunden sind, Daten übertragen werden, und
    • – wobei Pufferspeicher zur Zwischenspeicherung von zu übertragenden oder übertragenen Daten vorgesehen sind.
  • Bei der programmgesteuerten Einheit handelt es sich um eine ein Programm ausführende Vorrichtung wie beispielsweise einen Mikroprozessor, einen Mikrocontroller, einen Signalprozessor oder dergleichen.
  • Der prinzipielle Aufbau einer programmgesteuerten Einheit ist in 4 veranschaulicht. Die 4 zeigt einen Mikrocontroller. Der Vollständigkeit halber sei bereits an dieser Stelle angemerkt, daß hier nur die vorliegend besonders interessierenden Komponenten des Mikrocontrollers gezeigt und beschrieben sind.
  • Der in der 4 gezeigte Mikrocontroller enthält einen Bus 401 und über den Bus miteinander verbundene Einrichtungen 402-1 bis 402-n.
  • Die Einrichtungen 402-1 bis 402-n umfassen beispielsweise eine CPU, einen I/O-Controller, einen Analog/Digital-Wandler, einen oder mehrere Timer, einen DMA-Controller, eine oder mehrere Speichereinrichtungen, etc.
  • Im allgemeinen ist es so, daß jede der am Bus 401 angeschlossenen Einrichtungen 402-1 bis 402-n an wenigstens eine der jeweils anderen Einrichtungen über den Bus 401 Daten ausgibt und/oder von wenigstens einer der jeweils anderen Einrichtungen über den Bus 401 Daten zugeführt bekommt.
  • Insbesondere
    • – Einrichtungen, die über den Bus 401 an eine andere der am Bus angeschlossenen Einrichtungen Daten zu übertragen haben, aber die zu übertragenden Daten nicht genau in dem Takt erzeugen oder zugeführt bekommen, in welchem die Daten auf den Bus 401 ausgegeben werden müssen oder können, und/oder
    • – Einrichtungen, die über den Bus 401 von einer anderen der am Bus angeschlossenen Einrichtungen Daten zugeführt bekommen, aber die zugeführten Daten nicht genau in dem Takt verarbeiten oder weiterleiten können, in welchem sie die Daten zugeführt bekommen,
    enthalten im allgemeinen einen oder mehrere Pufferspeicher, in welchen die auszugebenden Daten oder die empfangenen Daten zwischengespeichert werden. Das Vorsehen von solchen Pufferspeichern ist beispielsweise, aber bei weitem nicht ausschließlich in I/O-Controllern und Analog/Digital-Wandlern üblich und notwendig.
  • Der prinzipielle Aufbau eines I/O-Controllers und eines A/D-Wandlers sind in 5 veranschaulicht. Dabei sei angenommen daß die in der 4 (und auch in der 5) mit dem Bezugszeichen 402-2 bezeichnete Einrichtung ein I/O-Controller sei, und daß die in der 4 (und auch in der 5) mit dem Bezugszeichen 402-4 bezeichnete Einrichtung ein Analog/Digital-Wandler sei.
  • Der I/O-Controller 402-2 enthält ein Ausgangsregister 403, in welchem das als nächstes auf den Bus 401 auszugebende Datenwort gespeichert wird, einen dem Ausgangsregister 403 vorgeschalteten Sendepuffer 404, in welchem mehrere weitere der danach auf den Bus 401 auszugebende Datenworte speicherbar sind, ein Eingangsregister 405, in welchem ein über den Bus 401 empfangenes Datenwort speicherbar ist, einen dem Eingangsregister 405 nachgeschalteten Empfangspuffer 406, in welchem mehrere weitere der zuvor über den Bus 401 empfangene Datenworte speicherbar sind, und eine den I/O-Controller steuernde Steuereinrichtung 407. Der I/O-Controller 402-2 ist über in den Figuren nicht mit Bezugszeichen bezeichnete Leitungen oder Busse mit dem Bus 401 verbunden, und über eine Leitung oder einen Bus 408 mit einer außerhalb des Mikrocontrollers vorgesehenen Einrichtung verbunden.
  • Aufgabe des I/O-Controller 402-2 ist es, über den Bus 401 von einer anderen der am Bus angeschlossenen Einrichtungen erhaltene Daten über die Leitung 408 an die externe Einrichtung weiterzuleiten, und/oder über die Leitung 408 von der externen Einrichtung erhaltene Daten über den Bus 401 an eine andere der am Bus angeschlossenen Einrichtungen weiterzuleiten. Dabei werden über den Bus 401 empfangene Daten, die nicht sofort an der externe Einrichtung weitergeleitet werden sollen, können oder dürfen, im Empfangspuffer 406 zwischengespeichert, und von der externen Einrichtung empfangene Daten, die nicht sofort auf den Bus 401 ausgegeben werden sollen, können oder dürfen, im Sendepuffer 404 zwischengespeichert.
  • Der Analog/Digital-Wandler 402-4 enthält ein Ausgangsregister 409, in welchem das als nächstes auf den Bus 401 auszugebende Datenwort gespeichert wird, einen dem Ausgangsregister 409 vorgeschalteten Sendepuffer 410, in welchem mehrere weitere der danach auf den Bus 401 auszugebenden Datenworte speicherbar sind, ein Eingangsregister 411 in welchem ein über den Bus 401 empfangenes Datenwort speicherbar ist, und eine die Analog/Digital-Wandlung durchführende Wandler-Einheit 412. Der Analog/Digital-Wandler 402-4 ist über in den Figuren nicht mit Bezugszeichen bezeichnete Leitungen oder Busse mit dem Bus 401 verbunden, und über eine oder mehrere Leitungen 413 mit einer außerhalb des Mikrocontrollers vorgesehenen Einrichtung verbunden.
  • Aufgabe des Analog/Digital-Wandlers 402-4 ist es, über die Leitung 413 von der externen Einrichtung erhaltene analoge Signale in digitale Signale umzuwandeln und diese über den Bus 401 an eine andere der am Bus angeschlossenen Einrichtungen weiterzuleiten. Dabei werden die digitalen Daten, die nicht sofort auf den Bus 401 ausgegeben werden sollen, können oder dürfen, im Sendepuffer 410 zwischengespeichert. Der Analog/Digital-Wandler 402-4 kann über den Bus 401 auch Daten zugeführt bekommen. Insbesondere kann er durch über den Bus 401 erhaltene Steuerdaten gesteuert werden. Diese Steuerdaten sind beispielsweise Wandlungsanforderungen, durch welche der Analog/Digital-Wandler 402-4 durch die CPU des Mikrocontrollers oder eine sonstige Mikrocontroller-Komponente über den Bus 401 dazu veranlaßt wird, eine Analog/Digital-Wandlung durchzuführen. Da die Übermittlung von Steuerdaten an den Analog/Digital-Wandler 402-4 im allgemeinen jedoch nur relativ selten vorkommt, und die Steuerdaten darüber hinaus im allgemeinen nicht sehr umfangreich sind, besteht häufig keine Notwendigkeit, in einem Analog/Digital-Wandler einen Empfangspuffer vorzusehen. Selbstverständlich kann jedoch auch in einem Analog/Digital-Wandler ein Empfangspuffer vorgesehen werden. In diesem Empfangspuffer könnten die Wandlungsanforderungen oder sonstige Steuerdaten gespeichert werden, die dem Analog/Digital-Wandler über den Bus 401 zugeführt werden.
  • Darüber hinaus können natürlich auch alle anderen der am Bus angeschlossenen Einrichtungen Sendepuffer- und/oder Empfangspuffer enthalten.
  • Die Sendepuffer und die Empfangspuffer werden im allgemeinen durch FIFO-Speicher gebildet, welche die in ihnen gespeicherten Daten automatisch genau in der Reihenfolge ausgeben, in welcher sie ihnen zugeführt wurden (first in first out).
  • Ein großes Problem beim Vorsehen von Sendepuffern und/oder Empfangspuffern besteht darin, daß es bei der Entwicklung von Mikrocontrollern im allgemeinen nicht möglich ist, die optimale Größe der Sendepuffer und/oder Empfangspuffer festzulegen. Wie groß die Sendepuffer und die Empfangspuffer im Idealfall sind, hängt nämlich von der jeweiligen Anwendung des Mikrocontrollers ab, wobei es jedoch für die meisten Mikrocontroller nahezu unbegrenzt viele Anwendungsmöglichkeiten gibt. Sieht man zu kleine Sendepuffer oder Empfangspuffer vor, können Daten verlorengehen; sieht man zu große Sendepuffer oder Empfangspuffer vor, wird der Mikrocontroller dadurch unnötig groß und teuer. Im allgemeinen neigt man dazu, die Sendepuffer und die Empfangspuffer so groß zu machen, daß die für die meisten Anwendungen ausreichend groß sind. Dies bedeutet aber, daß die Sendepuffer und die Empfangspuffer für sehr viele Anwendungen zu groß sind, und der Mikrocontroller dadurch unnötig groß und teuer wird. Andererseits können die Sendepuffer und die Empfangspuffer für bestimmte Anwendungen auch zu klein sein.
  • Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, die programmgesteuerte Einheit gemäß dem Oberbegriff des Patentanspruchs 1 derart weiterzubilden, daß sich innerhalb der programmgesteuerten Einheit auftretende Datenverluste, die durch zu kleine Sendepuffer oder Empfangspuffer entstehen können, mit geringem Aufwand vermeiden lassen.
  • Diese Aufgabe wird erfindungsgemäß durch die in Patentanspruch 1 beanspruchte programmgesteuerte Einheit gelöst.
  • Die erfindungsgemäße programmgesteuerte Einheit zeichnet sich dadurch aus, daß die Übertragung von Daten von und/oder zu einer ersten Einrichtung über eine außerhalb der ersten Einrichtung vorgesehene und ebenfalls zu den mit über den wenigstens einen Bus miteinander verbundenen Einrichtungen gehörende zweite Einrichtung erfolgt, und daß diese zweite Einrichtung als vollständiger oder teilweiser Ersatz für die ansonsten in den ersten Einrichtungen vorzusehenden Pufferspeicher verwendet wird, so daß die ersten Einrichtungen ohne oder mit kleineren internen Pufferspeichern auskommen als es ohne die zweite Einrichtung der Fall wäre.
  • Diese zweite Einrichtung kann gleichzeitig oder abwechselnd von verschiedenen ersten Einrichtungen als Sendepuffer und/oder als Empfangspuffer verwendet werden. Dabei kann die Speicherkapazität der zweiten Einrichtung erheblich geringer sein als die Summe der Speicherkapazitäten der durch die zweite Einrichtung ersetzten Pufferspeicher, denn es ist höchst unwahrscheinlich, daß sämtliche Pufferspeicher, die in den ersten Einrichtungen vorzusehen wären, wenn keine zweite Einrichtung vorgesehen wäre, voll belegt sind. Dadurch lassen sich solche Mikrocontroller kleiner und billiger herstellen als herkömmliche Mikrocontroller mit vergleichbarer Leistungsfähigkeit. Wählt man die Speicherkapazität der zweiten Einrichtung größer als die Speicherkapazität des größten ersetzten Sendepuffers oder Empfangspuffers, so sinkt trotz des geringeren Hardware-Aufwandes sogar die Wahrscheinlichkeit von Datenverlusten.
  • Vorteilhafte Weiterbildungen der Erfindung sind der folgenden Beschreibung, den Figuren und den Unteransprüchen entnehmbar.
  • Die Erfindung wird nachfolgend anhand von Ausführungsbeispielen unter Bezugnahme auf die Figuren näher erläutert. Es zeigen
  • 1 einen die Besonderheiten der hier vorgestellten programmgesteuerten Einheit veranschaulichenden Teil derselben,
  • 2 eine alternative Ausführungsform des in der 1 gezeigten Teils der programmgesteuerten Einheit,
  • 3 eine weitere alternative Ausführungsform des in der 1 gezeigten Teils der programmgesteuerten Einheit,
  • 4 den prinzipiellen Aufbau einer programmgesteuerten Einheit, und
  • 5 den Aufbau eines herkömmlichen I/O-Controllers und eines herkömmlichen Analog/Digital-Wandlers.
  • Bei den im folgenden beschriebenen programmgesteuerten Einheiten handelt es sich um Mikrocontroller. Es könnte sich jedoch auch um beliebige andere programmgesteuerte Einheiten wie Mikroprozessoren oder Signalprozessoren handeln.
  • Die im folgenden beschriebenen Mikrocontroller entsprechen weitgehend dem eingangs unter Bezugnahme auf die 4 und 5 gezeigten und unter Bezugnahme darauf beschriebenen Mikrocontroller. Insbesondere weisen auch die im folgenden beschriebenen Mikrocontroller wenigstens einen Bus und über den wenigstens einen Bus miteinander verbundene Einrichtungen auf, wobei die über den wenigstens einen Bus miteinander verbundenen Einrichtungen erste Einrichtungen umfassen,
    • – die an eine der jeweils anderen Einrichtungen, die über den wenigstens einen Bus miteinander verbunden sind, Daten übertragen, und/oder
    • – an die von einer der jeweils anderen Einrichtungen, die über den wenigstens einen Bus miteinander verbunden sind, Daten übertragen werden.
  • Darüber hinaus sind auch in den im folgenden beschriebenen Mikrocontrollern Pufferspeicher zur Zwischenspeicherung von zu übertragenden oder übertragenen Daten vorgesehen.
  • Allerdings unterscheiden sich der Aufbau und das Verhalten der ersten Einrichtungen der im folgenden beschriebenen Mikrocontroller vom Aufbau und vom Verhalten der entsprechenden Einrichtungen des Mikrocontrollers gemäß den 4 und 5. Insbesondere weisen die ersten Einrichtungen der im folgenden beschriebenen Mikrocontroller keine oder zumindest erheblich kleinere Sendepuffer und/oder Empfangspuffer zur Zwischenspeicherung der von den ersten Einrichtungen auszugebenden oder empfangenen Daten auf. Statt dessen erfolgt die Übertragung von Daten von und/oder zu einer ersten Einrichtung über eine außerhalb der ersten Einrichtung vorgesehene und ebenfalls zu den mit über den wenigstens einen Bus miteinander verbundenen Einrichtungen gehörende zweite Einrichtung, und wird diese zweite Einrichtung als vollständiger oder teilweiser Ersatz für die ansonsten in den ersten Einrichtungen vorzusehenden Pufferspeicher verwendet, so daß die ersten Einrichtungen ohne oder mit kleineren internen Pufferspeichern auskommen als es ohne die zweite Einrichtung der Fall wäre.
  • Es sei bereits an dieser Stelle erwähnt, daß von den im folgenden vorgestellten Mikrocontrollern nur die vorliegend besonders interessierenden Komponenten gezeigt und beschrieben sind.
  • Der in der 1 gezeigte Mikrocontroller enthält einen Bus 101 und über den Bus 101 miteinander verbundene Einrichtungen 102-1 bis 102-n, wobei die Einrichtung 102-1 eine CPU sei, die Einrichtung 102-2 ein I/O-Controller sei, die Einrichtung 102-4 ein Analog/Digital-Wandler sei, die Einrichtung 102-n ein Pufferspeicher sei, und die restlichen der am Bus 101 angeschlossenen Einrichtungen beliebige andere Mikrocontroller-Komponenten seien, und beispielsweise einen DMA-Controller, eine oder mehrere Speichereinrichtungen, einen oder mehrere Timer, Digital/Analog-Wandler, etc. umfassen. Der Vollständigkeit halber sei darauf hingewiesen, daß über den Bus 101 auch mehr Einrichtungen, oder weniger Einrichtungen, und/oder andere Einrichtungen miteinander verbunden sein können. Insbesondere besteht auch keine Einschränkung darauf, daß die Einrichtung 102-2 ein I/O-Controller ist, und daß die Einrichtung 102-4 ein Analog/Digital-Wandler ist. Diese Einrichtungen können auch beliebige andere Einrichtungen sein, die an eine der jeweils anderen Einrichtungen, die über den Bus 101 miteinander verbunden sind, Daten übertragen, und/oder an die von einer der jeweils anderen Einrichtungen, die über den Bus 101 miteinander verbunden sind, Daten übertragen werden.
  • Die Einrichtungen 102-4 bis 102-4 sind Einrichtungen, die nicht Bus-Master werden können, also Bus-Slaves sind. Im betrachteten Beispiel sei angenommen, daß nur die CPU 102-1 des Mikrocontrollers Bus-Master ist. Beim Bus 101 könnte es sich aber auch um einen Multi-Master-Bus handeln, bei welchem beispielsweise zusätzlich ein DMA-Controller Bus-Master werden könnte.
  • Zumindest ein Teil der Einrichtungen, die an eine der jeweils anderen Einrichtungen, die über den Bus 101 miteinander verbunden sind, Daten übertragen können, und/oder an die von einer der jeweils anderen Einrichtungen, die über den Bus 101 miteinander verbunden sind, Daten zugeführt bekommen können, im betrachteten Beispiel der I/O-Controller 102-2 und der A/D-Wandler 102-4, sind über zusätzliche Leitungen oder Busse ein zweites Mal mit dem Pufferspeicher 102-n verbunden. Genauer gesagt ist der I/O-Controller 102-2 über eine zusätzliche Leitung oder einen zweiten Bus 103 und eine beispielsweise durch einen Multiplexer gebildete Umschalteinrichtung 104 ein zweites Mal mit dem Pufferspeicher 102-n verbunden, und ist der Analog/Digital-Wandler 102-4 über eine zusätzliche Leitung oder einen dritten Bus 105 und die Umschalteinrichtung 104 ein zweites Mal mit dem Pufferspeicher 102-n verbunden. Im folgenden sei angenommen, daß es sich bei den mit den Bezugszeichen 103 und 105 bezeichneten Mikrocontroller-Bestandteile um Busse handelt.
  • Der Pufferspeicher 102-n wird im betrachteten Beispiel durch ein oder mehrere FIFOs oder durch eine sich wie ein oder mehrere FIFOs verhaltende Einrichtung gebildet.
  • Der Pufferspeicher 102-n dient im betrachteten Beispiel als Ersatz für die bisher in den Einrichtungen 102-2 und 102-4 vorgesehenen Sendepuffer und/oder Empfangspuffer. Dadurch können die in herkömmlichen I/O-Controllern vorgesehenen Sende- und/oder Empfangspuffer (Bezugszeichen 404 und 406 in 5), und die in herkömmlichen Analog/Digital-Wandlern vorgesehenen Sendepuffer (Bezugszeichen 419 in 5) entfallen. Im betrachteten Beispiel weisen der I/O-Controller 102-2 und der Analog/Digital-Wandler 102-4 auch keine Eingangs- und Ausgangsregister (Bezugszeichen 403, 405, 409, und 411 in 5) auf. Der I/O-Controller 102-2 besteht nur aus einer Steuereinrichtung, die weitgehend der Steuereinrichtung 407 (5) entspricht, und der Analog/Digital-Wandler 102-4 besteht nur aus einer Wandler-Einheit, die weitgehend der Wandler-Einheit 412 (5) entspricht. Es sei jedoch darauf hingewiesen, daß es sich als vorteilhaft erweisen kann, wenn der I/O-Controller 102-2 und der Analog/Digital-Wandler 102-4 den Eingangs- und Ausgangsregistern 403, 405, 409, und 411 (5) entsprechende Eingangs- und Ausgangsregister aufweisen. Darüber hinaus kann es sich als vorteilhaft erweisen, wenn der I/O-Controller 102-2 und der Analog/Digital-Wandler 102-4 auch noch kleine Sende- und Empfangspuffer aufweisen, wobei diese Sende- und Empfangspuffer jedoch sehr viel kleiner sein können als die Sende- und Empfangspuffer 404, 406, und 410 (5) von herkömmlichen I/O-Controllern und Analog/Digital-Wandlern, und beispielsweise zur Speicherung von nur einem einzigen Datenwort ausgelegt sind.
  • Es sei nun zunächst angenommen,
    • – der I/O-Controller 102-2 von außerhalb des Mikrocontrollers empfangene Daten an die CPU 102-1 weiterleiten muß,
    • – daß der I/O-Controller 102-2 von der CPU 102-1 aus dem Mikrocontroller auszugebende Daten zugeführt bekommt, und
    • – daß der Pufferspeicher 102-n den Sendepuffer und den Empfangspuffer des I/O-Controllers 102-2 ersetzt.
  • Der Vollständigkeit halber sei angemerkt, daß es nicht die CPU 102-1 sein muß, an welche der I/O-Controller 102-2 die empfangenen Daten weiterleitet, und von welcher der I/O-Controller 102-2 die aus dem Mikrocontroller auszugebenden Daten zugeführt bekommt. Hierbei kann es sich auch um eine beliebige andere der über den Bus 101 miteinander verbundenen Einrichtungen handeln. Die Einrichtung, an welche der I/O-Controller 102-2 die empfangenen Daten weiterleitet, und die Einrichtung, von welcher der I/O-Controller 102-2 die auszugebenden Daten zugeführt bekommt, können auch verschiedene Einrichtungen sein.
  • Wenn der Pufferspeicher 102-n den Sendepuffer und den Empfangspuffer des I/O-Controllers 102-2 ersetzen soll, stellt die CPU 102-1 oder eine sonstige Mikrocontroller-Komponente die Umschalteinrichtung 104 so ein, daß der I/O-Controller 102-2 über den zweiten Bus 103 mit dem Pufferspeicher 102-n verbunden ist.
  • Wenn der I/O-Controller 102-2 von außerhalb des Mikrocontrollers an die CPU 102-1 weiterzuleitende Daten empfangen hat, leitet er diese Daten über den zweiten Bus 103 und die Umschalteinrichtung 104 an den Pufferspeicher 102-n weiter. Der Pufferspeicher 102-n speichert diese Daten zwischen, bis sie an die CPU 102-1 weitergeleitet werden können.
  • Für die Weiterleitung der Daten zur CPU 102-1 existieren mehrere Möglichkeiten. Allen Möglichkeiten ist gemeinsam, daß die Daten vom Pufferspeicher 102-n über den Bus 101 zur CPU übertragen werden, und daß die Daten in der Reihenfolge zur CPU 102-1 übertragen werden, in welcher sie vom I/O-Controller 102-2 zum Pufferspeicher übertragen wurden. Darüber hinaus ist es bei allen nachfolgend beschriebenen Möglichkeiten so, daß die im Pufferspeicher 102-n zwischengespeicherten und an die CPU 102-1 weiterzuleitenden Daten nach der Übertragung der Daten an die CPU 102-1 aus dem Pufferspeicher 102-n gelöscht oder zum Überschreiben durch neue Daten freigegeben werden.
  • Die erste Möglichkeit zur Weiterleitung der im Pufferspeicher 102-n zwischengespeicherten Daten zur CPU 102-1 besteht darin, daß der Pufferspeicher 102-n zunächst wartet bis die CPU 102-1 einen Lesezugriff auf den Pufferspeicher 102-n durchführt, und daß der Pufferspeicher 102-n daraufhin die an die CPU 102-1 weiterzuleitenden Daten auf den Bus 101 ausgibt. Hierbei kann, muß aber nicht vorgesehen werden, daß der Pufferspeicher 102-n der CPU 102-1 beispielsweise durch die Ausgabe eines entsprechenden Interrupt-Request-Signals an die CPU signalisiert, wenn in ihm für die CPU 102-1 bestimmte Daten zur Abholung bereitstehen. Die CPU 102-1 könnte aber auch von sich aus in mehr oder weniger großen zeitlichen Abständen Lesezugriffe auf den Pufferspeicher 102-n durchführen und gegebenenfalls vorhandene Daten abholen (Polling).
  • Die zweite Möglichkeit zur Weiterleitung der im Pufferspeicher 102-n zwischengespeicherten Daten zur CPU 102-1 besteht darin, daß der Pufferspeicher 102-2 dann, wenn in ihm für die CPU 102-1 bestimmte Daten zur Abholung bereitstehen, einen ebenfalls am Bus 101 angeschlossenen DMA-Controller dazu veranlaßt, die im Pufferspeicher 102-n zur Abholung bereitstehenden Daten abzuholen und über den Bus 101 zur CPU 102-1 zu übertragen. Voraussetzung hierfür ist natürlich, daß der Mikrocontroller einen DMA-Controller enthält, beispielsweise daß die Einrichtung 102-3 ein DMA-Controller ist.
  • Eine weitere Möglichkeit zur Weiterleitung der im Pufferspeicher 102-n zwischengespeicherten Daten zur CPU 102-1 besteht darin, daß der Pufferspeicher 102-2 die für die CPU 102-1 bestimmten Daten selbständig, d.h. ohne vorhergehende Anforde rung durch die CPU 102-1, den DMA-Controller 102-3 oder eine sonstige Mikrocontroller-Komponente über den Bus 101 zur CPU 102-1 überträgt. Voraussetzung hierfür ist natürlich, daß der Pufferspeicher 102-n Master am Bus 101 werden kann.
  • Der Pufferspeicher 102-n enthält vorzugsweise eine Füllstandslogik, durch welche der Umfang der im Pufferspeicher 102-n zwischengespeicherten Daten ermittelbar ist. Das Ergebnis dieser Ermittlung kann zur Ablaufsteuerung verwendet werden. Insbesondere kann vorgesehen werden,
    • – daß durch die Füllstandslogik überprüft wird, ob im Pufferspeicher 102-n mindestens eine vorgegebene Menge von für die CPU 102-1 bestimmten Daten gespeichert ist, und daß der Pufferspeicher 102-n eine Übertragung von Daten an die CPU 102-1 nur dann durchführt oder veranlaßt, wenn im Pufferspeicher 102-n mindestens die vorgegebene Menge von für die CPU 102-1 bestimmten Daten gespeichert ist, und/oder
    • – daß durch die Füllstandslogik überprüft wird, ob im Pufferspeicher 102-n mehr als eine vorgegebene Menge von für die CPU 102-1 bestimmten Daten gespeichert ist, und daß der Pufferspeicher 102-n dann, wenn in ihm mehr als die vorgegebene Menge von für die CPU 102-1 bestimmten Daten gespeichert ist, dem I/O-Controller signalisiert, daß der Pufferspeicher 102-n nicht mehr zur Aufnahme weiterer Daten vom I/O-Controller 102-2 bereit ist, und/oder
    • – daß durch die Füllstandslogik überprüft wird, ob im Pufferspeicher 102-n weniger als eine vorgegebene Menge von für die CPU 102-1 bestimmten Daten gespeichert ist, und daß der Pufferspeicher 102-n dann, wenn im Pufferspeicher 102-n weniger als die vorgegebene Menge von für die CPU 102-1 bestimmten Daten gespeichert ist, dem I/O-Controller 102-2 signalisiert, daß der Pufferspeicher 102-n zur Aufnahme weiterer Daten vom I/O-Controller 102-2 bereit ist.
  • Wenn die CPU 102-1 an den I/O-Controller 102-2 durch diesen aus dem Mikrocontroller auszugebende Daten zu übertragen hat, überträgt sie diese Daten über den Bus 101 an den Pufferspei cher 102-n. Der Pufferspeicher 102-n speichert diese Daten zwischen, bis sie an den I/O-Controller 102-2 weitergeleitet werden können.
  • Für die Weiterleitung der Daten zum I/O-Controller 102-2 gibt es mehrere Möglichkeiten.
  • Eine dieser Möglichkeiten besteht darin, daß die für den I/O-Controller 102-2 bestimmten Daten durch den I/O-Controller 102-2 aus dem Pufferspeicher 102-n ausgelesen werden. Wenn der I/O-Controller 102-2 einen Lesezugriff auf den Pufferspeicher 102-n ausführt, gibt der Pufferspeicher 102-n die in ihm zwischengespeicherten und für den I/O-Controller bestimmten Daten über die Umschalteinrichtung 104 und den zweiten Bus 1O3 an den I/O-Controller 102-2 aus. Hierbei kann vorgesehen werden, daß der Pufferspeicher 102-n dem I/O-Controller 102-2 durch Übermittlung eines entsprechenden Signals an den I/O-Ccntroller signalisiert, daß im Pufferspeicher 102-n für den I/O-Controller 102-2 bestimmte Daten zur Abholung bereitstehen. Der I/O-Controller könnte aber auch von sich aus in mehr oder weniger großen zeitlichen Abständen Lesezugriffe auf den Pufferspeicher 102-n durchführen und gegebenenfalls vorhandene Daten abholen (Polling).
  • Eine weitere Möglichkeit für die Weiterleitung der im Pufferspeicher 102-n gespeicherten Daten zum I/O-Controller 102-2 besteht darin, daß der I/O-Controller 102-2 dem Pufferspeicher 102-n signalisiert, ob er zur Entgegennahme von Daten bereit ist, und daß der Pufferspeicher 102-n dann, wenn der I/O-Controller 102-2 Daten entgegennehmen kann, die im Pufferspeicher 102-n zwischengespeicherten und für den I/O-Controller bestimmten Daten über den zweiten Bus 103 zum I/O-Controller überträgt.
  • Die vom Pufferspeicher 102-n zum I/O-Controller 102-2 übertragenen Daten werden in der Reihenfolge zum I/O-Controller übertragen, in welcher sie dem Pufferspeicher 102-n von der CPU 102-1 zugeführt wurden. Die im Pufferspeicher 102-n zwischengespeicherten und an den I/O-Controller 102-2 weiterzuleitenden Daten werden nach der Übertragung der Daten an den I/O-Controller 102-2 aus dem Pufferspeicher 102-n gelöscht oder zum Überschreiben durch neue Daten freigegeben.
  • Die Abläufe die der Übertragung von Daten von der CPU 102-1 zum I/O-Controller können abhängig vom Ermittlungsergebnis der vorstehend bereits erwähnten Füllstandslogik gesteuert werden. Insbesondere kann vorgesehen werden,
    • – daß durch die Füllstandslogik überprüft wird, ob im Pufferspeicher 102-n mindestens eine vorgegebene Menge von für den I/O-Controller bestimmten Daten gespeichert ist, und daß die Signalisierung, daß Daten zur Abholung bereitstehen nur dann erfolgt, wenn im Pufferspeicher 102-n mindestens die vorgegebene Menge von für den I/O-Controller bestimmten Daten gespeichert ist, und/oder
    • – daß durch die Füllstandslogik überprüft wird, ob im Pufferspeicher 102-n mehr als eine vorgegebene Menge von für den I/O-Controller bestimmten Daten gespeichert ist, und daß der Pufferspeicher 102-n dann, wenn im Pufferspeicher mehr als die vorgegebene Menge von für den I/O-Controller 102-n bestimmten Daten gespeichert ist, der CPU 102-1 signalisiert, daß der Pufferspeicher 102-n nicht mehr zur Aufnahme weiterer Daten bereit ist.
  • Wenn
    • – der Analog/Digital-Wandler 102-4 von ihm erzeugte digitale Daten an die CPU 102-1 oder eine sonstige der am Bus 101 angeschlossenen Mikrocontroller-Komponenten weiterleiten muß, und
    • – der Analog/Digital-Wandler 102-4 von der CPU 102-1 oder einer sonstigen der am Bus 101 angeschlossenen Mikrocontroller-Komponenten (Steuer-)Daten zugeführt bekommt, und
    • – der Pufferspeicher 102-n den Sendepuffer und den Empfangspuffer des Analog/Digital-Wandlers 102-4 ersetzt,
    wird entsprechend vorgegangen. Unterschiedlich ist lediglich, daß die CPU 102-1 die Umschalteinrichtung 104 so ansteuert, daß der Analog/Digital-Wandler 102-4 über den dritten Bus 105 mit dem Pufferspeicher 102-n verbunden ist.
  • Die Ansteuerung der Umschalteinrichtung 104 kann während des Betriebes des Mikrocontrollers dynamisch verändert werden, so daß der Pufferspeicher 102-n abwechselnd als Ersatz für den Sendespeicher und den Empfangsspeicher des I/O-Controllers 102-2 und den Sendespeicher und den Empfangsspeicher des Analog/Digital-Wandlers 102-4 verwendet werden kann. Es dürfte einleuchten und bedarf keiner näheren Erläuterung, daß nicht nur der I/O-Controller 102-2 und der Analog/Digital-Wandler 102-4 den Pufferspeicher als Sende- und/oder Empfangsspeicher benutzen können, sondern auch beliebige andere der über den Bus 101 miteinander verbundenen Einrichtungen. Darüber hinaus können auch mehr als zwei der über den Bus 101 miteinander verbundenen Einrichtungen über separate (vierte, fünfte ...) Busse und die Umschalteinrichtung 104 mit dem Pufferspeicher 102-n verbunden sein und diesen als Ersatz für deren Sende- und/oder Empfangspuffer verwenden.
  • Darüber hinaus ist es auch möglich, daß der I/O-Controller 102-2 und der Analog/Digital-Wandler 102-4 oder andere und/oder weitere der über den Bus 101 miteinander verbundenen Einrichtungen den Pufferspeicher 102-n gleichzeitig als Ersatz für deren Sende- und/oder Empfangspuffer benutzen. Dies ist beispielsweise dadurch möglich, daß man die Umschalteinrichtung 104 wegläßt und Pufferspeicher 102-n direkt mit diese benutzenden Einrichtungen verbindet.
  • Damit der Pufferspeicher 102-n in diesem Fall zuordnen kann, von welcher Einrichtung die jeweiligen Lese- oder Schreibzugriffe auf den Pufferspeicher stammen, kann vorgesehen werden,
    • – daß die zweiten, dritten,... Busse über verschiedene Anschlüsse des Pufferspeichers 102-n mit diesem verbunden sind, oder
    • – daß die dem Pufferspeicher 102-n zugeführten Daten und Leseanforderungen zusammen mit einem Identifier übertragen werden, anhand dessen der Pufferspeicher 102-n die auf diesen zugreifende Einrichtung identifizieren kann.
  • Ferner müßte in diesem Fall vorgesehen werden, daß der Pufferspeicher 102-n über den Bus 101 durch verschiedene Adressen ansprechbar ist, wobei für jede der über den zweiten, dritten,... Bus mit dem Pufferspeicher verbundenen Einrichtungen eine eigene Adresse oder ein eigener Adreßbereich reserviert ist. Dann kann die CPU 102-1 dem Pufferspeicher 102-n mittels der Adresse, unter Verwendung welcher sie auf den Pufferspeicher 102-n zugreift, signalisieren, welche Daten sie auslesen möchte bzw. für welche Einrichtung die dem Pufferspeicher 102-n zugeführten Daten bestimmt sind.
  • Unabhängig von alledem ist es auch möglich, daß Pufferspeicher 102-n nicht sowohl den Sendepuffer als auch den Empfangspuffer der den Pufferspeicher verwendenden Einrichtungen ersetzt, sondern nur den Sendepuffer oder nur den Empfangspuffer. Beispielsweise könnte vorgesehen werden, daß der Pufferspeicher 102-n vom Analog/Digital-Wandler 102-4 nur den Sendepuffer ersetzt, nicht aber auch den Empfangspuffer des Analog/Digital-Wandlers. In diesem Fall müßte der Analog/Digital-Wandler 102-4 einen wie in herkömmlichen Analog/Digital-Wandlern dimensionierten internen Empfangspuffer aufweisen, und würden an den Analog/Digital-Wandler 102-4 zu übertragende Daten nicht über den Pufferspeicher 102-n, sondern direkt zum Analog/Digital-Wandler übertragen werden.
  • Aus den vorstehenden Erläuterungen ist ersichtlich, daß der Pufferspeicher 102-n gleichzeitig oder abwechselnd die Sendepuffer und/oder die Empfangspuffer von einer Vielzahl von über den Bus 101 miteinander verbundenen Einrichtungen er setzen kann. Da die durch den Pufferspeicher 102-n ersetzten Sende- und/oder Empfangsspeicher eines herkömmlichen Mikrocontrollers in der Praxis nie gleichzeitig voll belegt sein werden, kann die Speicherkapazität des Pufferspeichers kleiner sein als die Summe der Speicherkapazitäten der durch den Puffer gleichzeitig ersetzbaren Sende- und/oder Empfangspuffer. Wählt man die Speicherkapazität des Pufferspeichers 102-n größer als die Speicherkapazität des größten ersetzten Sendepuffers oder Empfangspuffers, so sinkt trotz des geringeren Hardware-Aufwandes sogar die Wahrscheinlichkeit von Datenverlusten.
  • Exakt die selben Vorteile lassen sich durch den in der 2 ausschnittsweise dargestellten Mikrocontroller erzielen.
  • Der in der 2 gezeigte Mikrocontroller enthält einen Bus 201 und über den Bus 201 miteinander verbundene Einrichtungen 202-1 bis 202-n, wobei die Einrichtung 202-1 eine CPU sei, die Einrichtung 202-2 ein I/O-Controller sei, die Einrichtung 202-3 ein DMA-Controller sei, die Einrichtung 202-4 ein Analog/Digital-Wandler sei, die Einrichtung 202-n ein Pufferspeicher sei, und die restlichen der am Bus 201 angeschlossenen Einrichtungen beliebige andere Mikrocontroller-Komponenten seien, und beispielsweise eine oder mehrere Speichereinrichtungen, einen oder mehrere Timer, Digital-Analog-Wandler, etc. umfassen. Der Vollständigkeit halber sei darauf hingewiesen, daß über den Bus 201 auch mehr Einrichtungen, oder weniger Einrichtungen, und/oder andere Einrichtungen miteinander verbunden sein können. Insbesondere besteht auch keine Einschränkung darauf, daß die Einrichtung 202-2 ein I/O-Controller ist, und daß die Einrichtung 202-4 ein Analog/Digital-Wandler ist. Diese Einrichtungen können auch beliebige andere Einrichtungen sein, die an eine der jeweils anderen Einrichtungen, die über den Bus 201 miteinander verbunden sind, Daten übertragen, und/oder an die von einer der jeweils anderen Einrichtungen, die über den Bus 201 miteinander verbunden sind, Daten übertragen werden.
  • Die Einrichtungen 202-2 und 202-4 sind im betrachteten Beispiel Einrichtungen, die nicht Bus-Master werden können, also Bus-Slaves sind. Im betrachteten Beispiel sei angenommen, daß nur die CPU 202-1 und der DMA-Controller 202-3 des Mikrocontrollers Bus-Master werden können. Beim Bus 201 könnte es sich aber prinzipiell auch um einen Single-Master-Bus handeln.
  • Der Bus 201 und die daran angeschlossenen Einrichtungen 202-1 bis 202-n entsprechen, soweit im folgenden nichts Gegenteiliges erwähnt wird, dem Bus 101 und den daran angeschlossenen Einrichtungen 102-1 bis 102-n.
  • Der I/O-Controller 202-2 weist ein Ausgangsregister 203, ein Eingangsregister 205, und eine Steuereinrichtung 207 auf, welche dem Ausgangsregister 403, dem Eingangsregister 405, und der Steuereinrichtung 407 des in der 5 gezeigten herkömmlichen I/O-Controllers 402-2 entsprechen. Wie der I/O-Controller 102-2 des in der 1 gezeigten Mikrocontrollers weist aber auch der I/O-Controller 202-2 keine oder allenfalls sehr kleine Sende- und Empfangspuffer auf.
  • Der Analog/Digital-Wandler 202-4 weist ein Ausgangsregister 209, ein Eingangsregister 211, und eine Wandler-Einheit 212 auf, welche dem Ausgangsregister 409, dem Eingangsregister 411, und der Wandler-Einheit 412 des in der 5 gezeigten herkömmlichen Analog/Digital-Wandlers 402-4 entsprechen. Wie der Analog/Digital-Wandler 102-4 des in der 1 gezeigten Mikrocontrollers weist aber auch der I/O-Controller 202-4 keine oder allenfalls sehr kleine Sende- und Empfangspuffer auf.
  • Der Pufferspeicher 202-n besteht aus einem Ausgangsregister 214, einem Eingangsregister 215, und einer Speichereinrichtung 216, wobei die Speichereinrichtung 216 durch ein oder mehreren FIFOs, oder durch eine sich wie ein oder mehrere FIFOs verhaltende Einrichtung gebildet wird.
  • Der I/O-Controller 202-2 und der Analog/Digital-Wandler 202-4 sind nur über den Bus 201 mit dem Pufferspeicher 202-n verbunden. Anders als beim Mikrocontroller gemäß 1 sind kein zweiter Bus 103, kein dritter Bus 105, und keine Umschalteinrichtung 104 vorgesehen.
  • Der in der 2 gezeigte Mikrocontroller arbeitet weitestgehend wie der zuvor beschriebene Mikrocontroller gemäß 1. Insbesondere erfolgt die Übertragung von Daten zwischen dem I/O-Controller 202-2 bzw. dem Analog/Digital-Wandler 202-4 und der CPU 202-1 oder einer sonstigen der über den Bus 201 miteinander verbundenen Einrichtung über den Pufferspeicher 202-n, und benutzen der I/O-Controller 202-2 und der Analog/Digital-Wandler 202-4 den Pufferspeicher 202-n als Ersatz für die bisher innerhalb des I/O-Controllers 202-2 und des Analog/Digital-Wandlers 202-4 vorgesehenen Sende- und/oder Empfangspuffer.
  • Unterschiedlich ist aber die Art und Weise, wie die zwischen dem I/O-Controller 202-2 und dem Pufferspeicher 202-n und die zwischen dem Analog/Digital-Wandler 202-4 und dem Pufferspeicher 202-n zu übertragenden Daten übertragen werden.
  • Diese Daten werden bei dem in der 2 gezeigten Mikrocontroller über den Bus 201 übertragen.
  • Genauer gesagt ist es so, daß der I/O-Controller 202-2 dann, wenn er an die CPU 202-1 Daten zu übertragen hat, den DMA-Controller 202-3 dazu veranlaßt, diese Daten vom I/O-Controller 202-2 abzuholen und über den Bus 201 an den Pufferspeicher 202-n zu übertragen. Der Pufferspeicher 202-n speichert diese Daten zwischen und leitet diese sofort oder später über den Bus 201 an die CPU 202-1 weiter, wobei bei der Übertragung der Daten vom Pufferspeicher 202-n zur CPU 202-1 genau so vorgegangen wird wie es bei dem in der 1 gezeigten Mikrocontroller der Fall ist.
  • Wenn die CPU 202-1 an den I/O-Controller 202-2 Daten zu übertragen hat, überträgt sie diese über den Bus 201 an den Pufferspeicher 202-n, wobei auch hierbei genau so vorgegangen werden kann wie es bei dem in der 1 gezeigten Mikrocontroller der Fall ist. Der Pufferspeicher 202-n speichert die ihm von der CPU 202-1 zugeführten Daten zwischen und leitet diese sofort oder später über den Bus 201 an den I/O-Controller 202-2 weiter.
  • Für die Weiterleitung der Daten zum I/O-Controller 202-2 gibt es mehrere Möglichkeiten.
  • Eine dieser Möglichkeiten besteht darin, daß der I/O-Controller 202-2 den DMA-Controller 202-3 dazu veranlaßt, die für den I/O-Controller 102-2 bestimmten Daten aus dem Pufferspeicher 102-n auszulesen und über den Bus 201 zum I/O-Controller 202-2 zu übertragen. Hierbei kann vorgesehen werden, daß der Pufferspeicher 202-n dem I/O-Controller 202-2 durch Übermittlung eines entsprechenden Signals an den I/O-Controller signalisiert, daß im Pufferspeicher 202-n für den I/O-Controller 202-2 bestimmte Daten zur Abholung bereitstehen. Der I/O-Controller könnte aber auch von sich aus in mehr oder weniger großen zeitlichen Abständen den DMA-Controller 202-3 dazu veranlassen, daß dieser gegebenenfalls vorhandene Daten abholt (Polling).
  • Eine weitere Möglichkeit für die Weiterleitung der im Pufferspeicher 202-n gespeicherten Daten zum I/O-Controller 202-2 besteht darin, daß der I/O-Controller 202-2 dem Pufferspeicher 202-n signalisiert, ob er zur Entgegennahme von Daten bereit ist, und daß der Pufferspeicher 202-n dann, wenn der I/O-Controller 202-2 Daten entgegennehmen kann, die im Pufferspeicher 102-n zwischengespeicherten und für den I/O-Controller bestimmten Daten über den Bus 201 zum I/O-Con troller überträgt, oder den DMA-Controller veranlaßt, dies zu tun.
  • Die Abläufe bei der Übertragung von Daten zwischen der CPU 202-1 und dem I/O-Controller 202-2 können abhängig vom Ermittlungsergebnis der vorstehend bereits erwähnten Füllstandslogik gesteuert werden. Diesbezüglich wird auf die entsprechenden Ausführungen in der sich auf die 1 beziehenden Beschreibung verwiesen; die dortigen Ausführungen gelten für den in der 2 gezeigten Mikrocontroller entsprechend.
  • Wenn
    • – der Analog/Digital-Wandler 202-4 von ihm erzeugte digitale Daten an die CPU 202-1 oder eine sonstige der am Bus 201 angeschlossenen Mikrocontroller-Komponenten weiterleiten muß, und
    • – der Analog/Digital-Wandler 202-4 von der CPU 202-1 oder einer sonstige der am Bus 201 angeschlossenen Mikrocontroller-Komponenten (Steuer-)Daten zugeführt bekommt, und
    • – der Pufferspeicher 102-n den Sendepuffer und den Empfangspuffer des Analog/Digital-Wandlers 102-4 ersetzt,
    wird vorgegangen wie bei den vorstehend beschriebenen Datentransfers zwischen dem I/O-Controller 202-2 und der CPU 202-1. Unterschiedlich sind lediglich die Adressen, unter Verwendung welcher über den Bus 201 auf den Pufferspeicher zugegriffen wird; der Pufferspeicher 202-n ist über verschiedene Adressen ansprechbar, wobei die zu verwendenden Adressen davon abhängen, von welcher Einrichtung die durch den Pufferspeicher 202-n weiterzuleitenden Daten stammen und/oder für welche Einrichtung die durch den Pufferspeicher 202-n weiterzuleitenden Daten bestimmt sind.
  • Die 3 zeigt eine modifizierte Ausführungsform des in der 2 gezeigten Mikrocontrollers.
  • Der in der 3 gezeigte Mikrocontroller enthält einen Bus 301 und über den Bus 301 miteinander verbundene Einrichtungen 302-1 bis 302-n, wobei die Einrichtung 302-1 eine CPU sei, die Einrichtung 302-2 ein I/O-Controller sei, die Einrichtung 302-3 ein DMA-Controller sei, die Einrichtung 302-4 ein Analog/Digital-Wandler sei, die Einrichtung 302-n eine beispielsweise durch ein RAM gebildete Speichereinrichtung mit wahlfreiem Zugriff sei, und die restlichen der am Bus 301 angeschlossenen Einrichtungen beliebige andere Mikrocontroller-Komponenten seien, und beispielsweise eine oder mehrere weitere Speichereinrichtungen, einen oder mehrere Timer, Digital-Analog-Wandler, etc. umfassen. Der Vollständigkeit halber sei darauf hingewiesen, daß über den Bus 301 auch mehr Einrichtungen, oder weniger Einrichtungen, und/oder andere Einrichtungen miteinander verbunden sein können. Insbesondere besteht auch keine Einschränkung darauf, daß die Einrichtung 302-2 ein I/O-Controller ist, und daß die Einrichtung 302-4 ein Analog/Digital-Wandler ist. Diese Einrichtungen können auch beliebige andere Einrichtungen sein, die an eine der jeweils anderen Einrichtungen, die über den Bus 301 miteinander verbunden sind, Daten übertragen, und/oder an die von einer der jeweils anderen Einrichtungen, die über den Bus 301 miteinander verbunden sind, Daten übertragen werden.
  • Die Einrichtungen 302-2 und 302-4 sind im betrachteten Beispiel Einrichtungen, die nicht Bus-Master werden können, also Bus-Slaves sind. Im betrachteten Beispiel sei angenommen, daß nur die CPU 302-1 und der DMA-Controller 302-3 des Mikrocontrollers Bus-Master werden können. Beim Bus 201 könnte es sich aber prinzipiell auch um einen Single-Master-Bus handeln.
  • Der I/O-Controller 302-2 weist ein Ausgangsregister 303, einen dem Ausgangsregister 303 vorgeschalteten Sendepuffer 304, ein Eingangsregister 305, einen dem Eingangsregister 305 nachgeschalteten Empfangspuffer 306, und eine Steuereinrichtung 307 auf. Von den genannten Komponenten des I/O-Con trollers 302-2 entsprechen das Ausgangsregister 303, das Eingangsregister 305, und die Steuereinrichtung 307 dem Ausgangsregister 203, dem Eingangsregister 205, und der Steuereinrichtung 207 des in der 2 gezeigten I/O-Controllers 202-2. Der Sendepuffer 304 und der Empfangspuffer 306 entsprechen dem Sendepuffer 404 und dem Empfangspuffer 406 des in der 5 veranschaulichten herkömmlichen I/O-Controllers 402-2, wobei jedoch der Sendepuffer 304 und der Empfangspuffer 306 sehr viel kleiner sind als der Sendepuffer 404 und der Empfangspuffer 406, und beispielsweise nur zur Speicherung eines einzigen oder einiger weniger Datenworte ausgelegt sind.
  • Der Analog/Digital-Wandler 302-4 weist ein Ausgangsregister 309, einen dem Ausgangsregister 309 vorgeschalteten Sendepuffer 310, ein Eingangsregister 311, einen dem Eingangsregister 311 nachgeschalteten Empfangspuffer 313, und eine Wandler-Einheit 312 auf. Von den genannten Komponenten des Analog/Digital-Wandlers 302-4 entsprechen das Ausgangsregister 309, das Eingangsregister 311, und die Wandler-Einheit 312 dem Ausgangsregister 209, dem Eingangsregister 211, und der Wandler-Einheit 212 des in der 2 gezeigten Analog/Digital-Wandlers 202-4. Der Sendepuffer 310 entspricht dem Sendepuffer 410 des in der 5 veranschaulichten herkömmlichen Analog/Digital-Wandlers 402-4, wobei jedoch der Sendepuffer 310 sehr viel kleiner als der Sendepuffer 410 sein kann, und beispielsweise nur zur Speicherung eines einzigen oder einiger weniger Datenworte ausgelegt sind. Der Empfangspuffer 313 ist ebenfalls sehr viel kleiner als herkömmliche Sendepuffer und ist ebenfalls zur Speicherung von nur einem einzigen oder einiger weniger Datenworten ausgelegt.
  • Die Speichereinrichtung 302-n ist im betrachteten Beispiel ein frei adressierbarer Arbeitsspeicher, der prinzipiell von beliebigen Einrichtungen 302-1 bis 302-n-1 für beliebige Zwecke benutzt werden kann. Die Speichereinrichtung 302-n oder ein bestimmter Teil davon wird zur Zwischenspeicherung der Daten verwendet, die über den Bus 301 von und/oder zum I/O-Controller 302-2 und/oder vom und/oder zum Analog/Digital-Wandler 302-4 übertragen werden, kann also wie auch die Pufferspeicher 102-n und 202-n der in den 1 und 2 gezeigten Mikrocontroller als vollständiger oder teilweiser Ersatz für die in herkömmlichen I/O-Controllern und Analog/Digital-Wandlern oder sonstigen Einrichtungen vorgesehenen Sende- und/oder Empfangspuffer verwendet werden. Zumindest der Teil der Speichereinrichtung 302-n, der als Ersatz für die Sende- und/oder Empfangspuffer des I/O-Controllers 302-2 und/oder des Analog/Digital-Wandlers 302-4 verwendet wird, wird so betrieben, daß er sich wie ein oder mehrere FIFOs verhält. Hierzu wird dieser Teil Speichereinrichtung 302-n so verwaltet, daß dieser Speicherteil wie ein oder mehrere zyklische Puffer arbeitet, auf welche mittels Schreibzeiger und Lesezeiger schreibend und lesend zugegriffen werden kann. Hierzu ist eine Einrichtung zur Schreibzeiger-Verwaltung und zur Lesezeiger-Verwaltung erforderlich, und diese Zeigerverwaltungseinrichtung ist im betrachteten Beispiel Bestandteil des DMA-Controllers 302-3.
  • Zumindest auf den Teil der Speichereinrichtung 302-n, der als Ersatz für die Sende- und/oder Empfangspuffer des I/O-Controllers 302-2 und/oder des Analog/Digital-Wandlers 302-4 verwendet wird, wird ausschließlich über den DMA-Controller 302-3 zugegriffen. Wenn der DMA-Controller 302-2 dazu veranlaßt wird, einen Schreibzugriff oder einen Lesezugriff auf die Speichereinrichtung 302-n auszuführen, ermittelt der DMA-Controller anhand der von ihm verwalteten Schreibzeiger und Lesezeiger auf welche Stelle innerhalb der Speichereinrichtung zugegriffen werden muß.
  • Die Speichereinrichtung 302-n und die Zeigerverwaltungseinrichtung des DMA-Controllers 302-3 verhalten sich zusammen genau so wie der Pufferspeicher 202-n des in der 2 veranschaulichten Mikrocontrollers. Allerdings ist die Kombina tion aus Speichereinrichtung 302-n und Zeigerverwaltungseinrichtung des DMA-Controllers 302-3 erheblich flexibler einsetzbar. Insbesondere können durch die Speichereinrichtung 302-n auf sehr einfache Art und Weise die Sende- und/oder Empfangspuffer einer Vielzahl von verschiedenen Einrichtungen ersetzt werden, und kann die Größe der die jeweiligen Sende- und Empfangspuffer ersetzenden Bereiche der Speichereinrichtung 302-n sehr einfach individuell an die jeweiligen Bedürfnisse angepaßt werden.
  • Die Übertragung von Daten von und zum I/O-Controller 302-2 und von und zum Analog/Digital-Wandler 302-4 erfolgt wie die Übertragung von Daten von und zum I/O-Controller 202-2 und von und zum Analog/Digital-Wandler 202-4 des Mikrocontrollers gemäß 2. Unterschiedlich ist nur, daß die Übertragung von Daten von und zu der Speichereinrichtung 302-n ausschließlich über den DMA-Controller 302-3 erfolgen.
  • Bei dem in der 3 gezeigten Mikrocontroller ist wie auch bei den in den 1 und 2 gezeigten Mikrocontrollern eine Füllstandslogik vorgesehen, durch welche die Füllstände der die Sendepuffer und die Empfangspuffer ersetzenden Bereiche der Speichereinrichtung 302-n ermittelt und entsprechende Signale erzeugt. Diese Füllstandslogik arbeitet wie die Füllstandslogik des in der 2 gezeigten Mikrocontrollers, ist aber im DMA-Controller 302-3 untergebracht, da dieser über die Informationen verfügt, welcher Bereich der Speichereinrichtung 302-n welche Sendepuffer bzw. welchen Empfangspuffer ersetzt.
  • Insbesondere der Pufferspeicher 202-n des in der 2 gezeigten Mikrocontrollers könnte, wenn er geringfügig modifiziert wird, auch als Bus Bridge verwendet werden, über welche der (erste) Bus 201 mit einem in den Figuren nicht gezeigten zweiten Bus verbunden ist. Eine programmgesteuerte Einheit, bei welcher von dieser Möglichkeit Gebrauch gemacht wird, wäre eine programmgesteuerte Einheit mit
    • – einem ersten Bus,
    • – über den ersten Bus miteinander verbundenen Einrichtungen,
    • – einem zweiten Bus,
    • – über den zweiten Bus miteinander verbundenen Einrichtungen, und
    • – einer sowohl mit dem ersten Bus als auch mit dem zweiten Bus verbundenen Bus Bridge zur Übertragung von Daten zwischen einer an einem der Busse angeschlossenen ersten Einrichtung und einer am anderen Bus angeschlossenen zweiten Einrichtung, wobei die von der ersten Einrichtung zur zweiten Einrichtung zu übertragenden Daten über den einen Bus, die Bus Bridge, und den anderen Bus zur zweiten Einrichtung übertragen werden.
  • Der Pufferspeicher 202-n könnte wie in der 2 gezeigt am ersten Bus 203 angeschlossen bleiben und müßte zusätzlich mit dem zweiten Bus verbunden werden, und zwar beispielsweise derart, daß das Ausgangsregister 214 und das Eingangsregister 215 zusätzlich auch mit dem zweiten Bus verbunden sind. Damit festgelegt bzw. erkannt werden kann, von welchem Bus der Bus Bridge Daten zugeführt werden, und an welchen Bus die von der Bus Bridge ausgegebenen Daten ausgegeben werden, kann beispielsweise vorgesehen werden, daß dem Eingangsregister 215 ein erster Multiplexer vorgeschaltet wird und dem Ausgangsregister 214 ein zweiter Multiplexer nachgeschaltet wird, wobei es von der Ansteuerung des ersten Multiplexers abhängt, ob die Bus Bridge eingangsseitig mit dem ersten Bus oder mit dem zweiten Bus verbunden ist, und wobei es von der Ansteuerung des zweiten Multiplexers abhängt, ob die Bus Bridge ausgangsseitig mit dem ersten Bus oder mit dem zweiten Bus verbunden ist, und wobei die Multiplexer beispielsweise durch das vom Mikrocontroller ausgeführte Programm gesteuert werden und vorzugsweise während des Betriebes des Mikrocontrollers dynamisch umschaltbar sind. Es wäre aber beispielsweise auch denkbar, daß die Bus Bridge zwei Eingangsregister und zwei Ausgangsregister enthält, wobei ein Eingangsregister und ein Ausgangsregister mit dem ersten Bus verbunden sind, und das andere Eingangsregister und das andere Ausgangsregister mit dem zweiten Bus verbunden sind. Es dürfte einleuchten und bedarf keiner näheren Erläuterung, daß auch noch weitere Möglichkeiten zum Anschluß der Bus Bridge an die Busse existieren.
  • Wenn nun beispielsweise der im folgenden als erste Einrichtung bezeichnete I/O-Controller 202-2 an eine am zweiten Bus angeschlossene und im folgenden als zweite Einrichtung bezeichnete Einrichtung Daten zu übertragen hat, veranlaßt er den DMA-Controller 202-3, diese Daten über den Bus 201 an die Bus Bridge zu übertragen.
  • Da die hier vorgestellte Bus Bridge durch den Pufferspeicher 202-n gebildet wird oder eine auf dem Pufferspeicher 202-n basierende Einrichtung ist, enthält sie eine Füllstandslogik, die bei Verwendung des Pufferspeichers 202-n als Bus Bridge so arbeitet, daß sie überwacht, ob im Pufferspeicher für die zweite Einrichtung bestimmte Daten oder eine bestimmte Mindestmenge von für die zweite Einrichtung bestimmten Daten zwischengespeichert sind, und daß sie dann, wenn dies der Fall ist, einer der am anderen Bus angeschlossenen Einrichtungen signalisiert, daß in der Bus Bridge Daten zur Abholung bereitstehen.
  • Die Einrichtung, der durch die Bus Bridge signalisiert wurde, daß in ihr Daten zur Abholung bereitstehen, ist vorzugsweise eine Einrichtung, die am zweiten Bus Bus-Master ist oder werden kann, also beispielsweise eine CPU oder ein DMA-Controller, und muß nicht die zweite Einrichtung sein, für welche die in der Bus Bridge zur Abholung bereitstehenden Daten bestimmt sind. Diese, im folgenden als Signalisierungs-Empfänger bezeichnete Einrichtung liest daraufhin die zur Abholung bereitstehenden Daten sofort oder später aus der Bus Bridge aus und verarbeitet diese entweder selbst weiter (wenn sie selbst die zweite Einrichtung ist), oder leitet sie über den zweiten Bus an die zweite Einrichtung weiter (wenn sie nicht selbst die zweite Einrichtung ist).
  • Vorzugsweise werden die in der Bus Bridge zur Abholung bereitstehenden Daten erst dann ausgelesen, wenn die zweite Einrichtung weitere Daten entgegennehmen kann. Die zweite Einrichtung signalisiert dem Signalisierungsempfänger, wann dies der Fall ist.
  • Somit kann die Bus Bridge (genau wie auch die zuvor beschriebenen Pufferspeicher 102-n, 202-n, und 302-n) als vollständiger oder teilweiser Ersatz für den Sendepuffer der die Daten ausgebenden ersten Einrichtung und als Ersatz für den Empfangspuffer der zweiten Einrichtung verwendet werden, für welche die Daten bestimmt sind.
  • Damit der Signalisierungs-Empfänger weiß, für welche Einrichtung die in der Bus Bridge zur Abholung bereitstehenden Daten bestimmt sind, kann vorgesehen werden,
    daß die Bus Bridge dem Signalisierungs-Empfänger die Adresse zuführt, die bei der Weiterleitung der in der Bus Bridge zur Abholung bereitstehenden Daten an die zweite Einrichtung zusammen mit diesen Daten auf den Bus auszugeben ist. Diese Adresse kann in Abhängigkeit von der Adresse generiert werden, unter Verwendung welcher auf die Bus Bridge zugegriffen wurde, als ihr die zur Abholung bereitstehenden Daten zugeführt wurden. Die Bildung dieser Adresse kann unter Verwendung einer in der Bus Bridge gespeicherten Mapping-Vorschrift erfolgen, wobei es vorzugsweise so ist, daß diese Mapping-Vorschrift durch den Benutzer der programmgesteuerte Einheit, beispielsweise durch das von der programmgesteuerten Einheit ausgeführte Programm, vorgebbar ist und während des Betriebes der programmgesteuerten Einheit dynamisch veränderbar ist.
  • Die Adresse, die bei der Weiterleitung der in der Bus Bridge zur Abholung bereitstehenden Daten an die zweite Einrichtung zusammen mit diesen Daten auf den Bus auszugeben ist, könnte aber auch eine vorbestimmte Adresse sein, die im Signalisierungs-Empfänger gespeichert ist. Auch in diesem Fall ist es vorzugsweise so, daß die Adresse durch den Benutzer der programmgesteuerte Einheit, beispielsweise durch das von der programmgesteuerten Einheit ausgeführte Programm, vorgebbar ist und während des Betriebes der programmgesteuerten Einheit dynamisch veränderbar ist.
  • Darüber hinaus könnten über die durch den Pufferspeicher 202-n gebildete oder auf dem Pufferspeicher 202-n basierende Bus Bridge auch Daten von einer Einrichtung zu einer anderen Einrichtung, die am selben Bus angeschlossen ist wie eine Einrichtung, übertragen werden.
  • Ein solche Bus Bridge könnte somit die Sendepuffer und/oder die Empfangspuffer sowohl von am ersten Bus angeschlossenen Einrichtungen als auch von am zweiten Bus angeschlossenen Einrichtungen ersetzen.
  • Darüber hinaus hätte eine solche Bus Bridge auch den Vorteil, daß sie an keinem der Busse Bus-Master sein muß, so daß die über die Bus Bridge miteinander verbundenen Busse Single-Master-Busse sein können und dementsprechend einfach aufgebaut sein können.
  • 101
    Bus
    102-x
    an 101 angeschlossene Einrichtung
    102-1
    CPU
    102-2
    I/O-Controller
    102-4
    Analog/Digital-Wandler
    102-n
    Pufferspeicher
    103
    Leitung oder zweiter Bus
    104
    Umschalteinrichtung
    105
    Leitung oder dritter Bus
    201
    Bus
    202-x
    an 201 angeschlossene Einrichtung
    202-1
    CPU
    202-2
    I/O-Controller
    202-3
    DMA-Controller
    202-4
    Analog/Digital-Wandler
    202-n
    Pufferspeicher
    203
    Ausgangsregister
    205
    Eingangsregister
    207
    Steuereinrichtung
    209
    Ausgangsregister
    211
    Eingangsregister
    212
    Wandler-Einheit
    214
    Ausgangsregister
    215
    Eingangsregister
    216
    Speichereinrichtung
    301
    Bus
    302-x
    an 201 angeschlossene Einrichtung
    302-1
    CPU
    302-2
    I/O-Controller
    302-3
    DMA-Controller
    302-4
    Analog/Digital-Wandler
    302-n
    Speichereinrichtung
    303
    Ausgangsregister
    304
    Sendepuffer
    305
    Eingangsregister
    306
    Empfangspuffer
    307
    Steuereinrichtung
    309
    Ausgangsregister
    310
    Sendepuffer
    311
    Eingangsregister
    312
    Wandler-Einheit
    313
    Empfangspuffer
    401
    Bus
    402-x
    an 401 angeschlossene Einrichtung
    402-2
    I/O-Controller
    402-4
    Analog/Digital-Wandler
    403
    Ausgangsregister
    404
    Sendepuffer
    405
    Eingangsregister
    406
    Empfangspuffer
    407
    Steuereinrichtung
    408
    Leitung oder Bus
    409
    Ausgangsregister
    410
    Sendepuffer
    411
    Eingangsregister
    412
    Wandler-Einheit
    413
    Leitung

Claims (30)

  1. Programmgesteuerte Einheit mit wenigstens einem Bus (101; 201; 301), und mit über den wenigstens einen Bus miteinander verbundenen Einrichtungen (102-x; 202-x; 302-x), – wobei die über den wenigstens einen Bus miteinander verbundenen Einrichtungen erste Einrichtungen umfassen, – die an eine der jeweils anderen Einrichtungen, die über den wenigstens einen Bus miteinander verbunden sind, Daten übertragen, und/oder – an die von einer der jeweils anderen Einrichtungen, die über den wenigstens einen Bus miteinander verbunden sind, Daten übertragen werden, und – wobei Pufferspeicher zur Zwischenspeicherung von zu übertragenden oder übertragenen Daten vorgesehen sind, dadurch gekennzeichnet, daß die Übertragung von Daten von und/oder zu einer ersten Einrichtung über eine außerhalb der ersten Einrichtung vorgesehene und ebenfalls zu den mit über den wenigstens einen Bus miteinander verbundenen Einrichtungen gehörende zweite Einrichtung (102-n; 202-n; 302-n) erfolgt, und daß diese zweite Einrichtung als vollständiger oder teilweiser Ersatz für die ansonsten in den ersten Einrichtungen vorzusehenden Pufferspeicher verwendet wird, so daß die ersten Einrichtungen ohne oder mit kleineren internen Pufferspeichern auskommen als es ohne die zweite Einrichtung der Fall wäre.
  2. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, daß die Einrichtungen, zwischen welchen Daten zu transferieren sind, am selben Bus angeschlossene Einrichtungen sind.
  3. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, daß die Einrichtungen, zwischen welchen Daten zu transferieren sind, an verschiedenen Bussen angeschlossene Einrichtun gen sind, wobei die verschiedenen Busse über eine Bus Bridge miteinander verbunden sind.
  4. Programmgesteuerte Einheit nach Anspruch 3, dadurch gekennzeichnet, daß die zweite Einrichtung (102-n; 202-n; 302-n) als die die Busse miteinander verbindende Bus Bridge verwendet wird.
  5. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, daß die zweite Einrichtung (102-n; 202-n; 302-n) durch einen oder mehrere FIFO-Speicher gebildet wird.
  6. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, daß die zweite Einrichtung (102-n; 202-n; 302-n) durch eine sich wie ein oder mehrere FIFO-Speicher verhaltende Einrichtung gebildet wird.
  7. Programmgesteuerte Einheit nach Anspruch 6, dadurch gekennzeichnet, daß die zweite Einrichtung (102-n; 202-n; 302-n) durch einen zyklischen Puffer gebildet wird.
  8. Programmgesteuerte Einheit nach Anspruch 7, dadurch gekennzeichnet, daß der zyklische Puffer durch einen Speicher oder einen Teil eines Speichers mit wahlfreiem Zugriff, und eine Zeigerverwaltungseinrichtung gebildet wird, durch welche ein Schreibzeiger und ein Lesezeiger verwaltet wird.
  9. Programmgesteuerte Einheit nach Anspruch 6, dadurch gekennzeichnet, daß das Einschreiben von Daten in den zyklischen Puffer und das Auslesen von Daten aus dem zyklischen Puffer durch einen am Bus angeschlossenen DMA-Controller (102-3; 202-3; 302-3) erfolgt, und daß die Zeigerverwaltungseinrichtung Bestandteil des DMA-Controllers ist.
  10. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, daß die zweite Einrichtung (102-n; 202-n; 302-n) gleichzeitig oder abwechselnd als Sendepuffer und als Empfangspuffer für eine der ersten Einrichtungen verwendbar ist.
  11. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, daß die zweite Einrichtung (102-n; 202-n; 302-n) gleichzeitig oder abwechselnd als Sendepuffer und/oder als Empfangspuffer für verschiedene erste Einrichtungen verwendbar ist.
  12. Programmgesteuerte Einheit nach Anspruch 10 oder 11, dadurch gekennzeichnet, daß einstellbar ist, wofür die zweite Einrichtung (102-n; 202-n; 302-n) verwendet wird.
  13. Programmgesteuerte Einheit nach Anspruch 12, dadurch gekennzeichnet, daß die Einstellung während des Betriebes der programmgesteuerten Einheit dynamisch veränderbar ist.
  14. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, – daß eine erste Einrichtung, deren Sendepuffer ganz oder teilweise durch die zweite Einrichtung (102-n; 202-n; 302-n) ersetzt ist, an eine andere Einrichtung zu übertragende Daten an die zweite Einrichtung überträgt, und – daß die zweite Einrichtung die betreffenden Daten an die andere Einrichtung überträgt.
  15. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, – daß eine erste Einrichtung, deren Sendepuffer ganz oder teilweise durch die zweite Einrichtung (102-n; 202-n; 302-n) ersetzt ist, an eine andere Einrichtung zu übertragende Daten an die zweite Einrichtung überträgt, – daß die zweite Einrichtung dann, wenn in ihr für die andere Einrichtung bestimmte Daten gespeichert sind, der anderen Einrichtung diesen Umstand signalisiert, und – daß die andere Einrichtung daraufhin die für sie bestimmten Daten aus der zweiten Einrichtung abholt oder die Abholung veranlaßt.
  16. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, – daß eine erste Einrichtung, deren Sendepuffer ganz oder teilweise durch die zweite Einrichtung (102-n; 202-n; 302-n) ersetzt ist, an eine andere Einrichtung zu übertragende Daten an die zweite Einrichtung überträgt, und – daß die zweite Einrichtung dann, wenn in ihr für die andere Einrichtung bestimmte Daten gespeichert sind, einen am Bus angeschlossenen DMA-Controller dazu veranlaßt, die für die andere Einrichtung bestimmten Daten von der zweiten Einrichtung abzuholen und an die andere Einrichtung zu übertragen.
  17. Programmgesteuerte Einheit nach einem der Ansprüche 14 bis 16, dadurch gekennzeichnet, – daß die zweite Einrichtung (102-n; 202-n; 302-n) eine Füllstandslogik enthält, durch welche überprüft wird, ob in der zweiten Einrichtung mindestens eine vorgegebene Menge von für die andere Einrichtung bestimmten Daten gespeichert ist, und – daß die Übertragung von Daten an die andere Einrichtung, bzw. die Signalisierung, daß Daten zur Abholung bereitstehen, bzw. die Veranlassung des DMA-Controllers zur Übertragung dieser Daten an die andere Einrichtung nur dann erfolgen, wenn in der zweiten Einrichtung mindestens die vorge gebene Menge von für die andere Einrichtung bestimmten Daten gespeichert ist.
  18. Programmgesteuerte Einheit nach einem der Ansprüche 14 bis 16, dadurch gekennzeichnet, – daß die zweite Einrichtung (102-n; 202-n; 302-n) eine Füllstandslogik enthält, durch welche überprüft wird, ob in der zweiten Einrichtung mehr als eine vorgegebene Menge von für die andere Einrichtung bestimmten Daten gespeichert ist, und – daß die zweite Einrichtung dann, wenn in der zweiten Einrichtung mehr als die vorgegebene Menge von für die andere Einrichtung bestimmten Daten gespeichert ist, der ersten Einrichtung signalisiert, daß sie nicht mehr zur Aufnahme weiterer Daten bereit ist.
  19. Programmgesteuerte Einheit nach einem der Ansprüche 14 bis 16, dadurch gekennzeichnet, – daß die zweite Einrichtung eine Füllstandslogik enthält, durch welche überprüft wird, ob in der zweiten Einrichtung weniger als eine vorgegebene Menge von für die andere Einrichtung bestimmten Daten gespeichert ist, und – daß die zweite Einrichtung dann, wenn in der zweiten Einrichtung weniger als die vorgegebene Menge von für die andere Einrichtung bestimmten Daten gespeichert ist, der ersten Einrichtung signalisiert, daß sie zur Aufnahme weiterer Daten bereit ist.
  20. Programmgesteuerte Einheit nach einem der Ansprüche 14 bis 16 in Verbindung mit Anspruch 9, dadurch gekennzeichnet, daß die Füllstandslogik Bestandteil des DMA-Controllers ist.
  21. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, – daß dann, wenn einer ersten Einrichtung, deren Empfangspuffer ganz oder teilweise durch die zweite Einrichtung ersetzt ist, von einer anderen Einrichtung Daten zuzuführen sind, die andere Einrichtung die an die erste Einrichtung zu übertragenden Daten an die zweite Einrichtung (102-n; 202-n; 302-n) überträgt, und – daß die zweite Einrichtung die betreffenden Daten an die erste Einrichtung überträgt.
  22. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, – daß dann, wenn einer ersten Einrichtung, deren Empfangspuffer ganz oder teilweise durch die zweite Einrichtung ( 102-n; 202-n; 302-n) ersetzt ist, von einer anderen Einrichtung Daten zuzuführen sind, die andere Einrichtung die an die erste Einrichtung zu übertragenden Daten an die zweite Einrichtung überträgt, und – daß die zweite Einrichtung dann, wenn in ihr für die erste Einrichtung bestimmte Daten gespeichert sind, einen am Bus angeschlossenen DMA-Controller dazu veranlaßt, die für die erste Einrichtung bestimmten Daten von der zweiten Einrichtung abzuholen und an die erste Einrichtung zu übertragen.
  23. Programmgesteuerte Einheit nach Anspruch 21 oder 22, dadurch gekennzeichnet, daß die erste Einrichtung der zweiten Einrichtung (102-n; 202-n; 302-n) signalisiert, ob sie Daten entgegennehmen kann, und daß die zweite Einrichtung eine Datenübertragung zur ersten Einrichtung nur durchführt oder veranlaßt, wenn die erste Einrichtung Daten entgegennehmen kann.
  24. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, – daß dann, wenn einer ersten Einrichtung, deren Empfangspuffer ganz oder teilweise durch die zweite Einrichtung (102-n; 202-n; 302-n) ersetzt ist, von einer anderen Einrichtung Daten zuzuführen sind, die andere Einrichtung die an die erste Einrichtung zu übertragenden Daten an die zweite Einrichtung überträgt, – daß die zweite Einrichtung dann, wenn in ihr für die erste Einrichtung bestimmte Daten gespeichert sind, der ersten Einrichtung diesen Umstand signalisiert, und – daß die erste Einrichtung daraufhin die für sie bestimmten Daten aus der zweiten Einrichtung abholt.
  25. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, – daß dann, wenn einer ersten Einrichtung, deren Empfangspuffer ganz oder teilweise durch die zweite Einrichtung (102-n; 202-n; 302-n) ersetzt ist, von einer anderen Einrichtung Daten zuzuführen sind, die andere Einrichtung die an die erste Einrichtung zu übertragenden Daten an die zweite Einrichtung überträgt, – daß die zweite Einrichtung dann, wenn in ihr für die erste Einrichtung bestimmte Daten gespeichert sind, der ersten Einrichtung diesen Umstand signalisiert, und – daß die erste Einrichtung daraufhin einen DMA-Controller veranlaßt, die für sie bestimmten Daten aus der zweiten Einrichtung abzuholen.
  26. Programmgesteuerte Einheit nach einem der Ansprüche 21 bis 25, dadurch gekennzeichnet, – daß die zweite Einrichtung (102-n; 202-n; 302-n) eine Füllstandslogik enthält, durch welche überprüft wird, ob in der zweiten Einrichtung mindestens eine vorgegebene Menge von für die erste Einrichtung bestimmten Daten gespeichert ist, und – daß die Übertragung von Daten an die erste Einrichtung, bzw. die Signalisierung, daß Daten zur Abholung bereitstehen, bzw. die Veranlassung des DMA-Controllers zur Übertragung dieser Daten an die ersten Einrichtung nur dann erfolgen, wenn in der zweiten Einrichtung mindestens die vorge gebene Menge von für die erste Einrichtung bestimmten Daten gespeichert ist.
  27. Programmgesteuerte Einheit nach einem der Ansprüche 21 bis 25, dadurch gekennzeichnet, – daß die zweite Einrichtung (102-n; 202-n; 302-n) eine Füllstandslogik enthält, durch welche überprüft wird, ob in der zweiten Einrichtung mehr als eine vorgegebene Menge von für die erste Einrichtung bestimmten Daten gespeichert ist, und – daß die zweite Einrichtung dann, wenn in der zweiten Einrichtung mehr als die vorgegebene Menge von für die erste Einrichtung bestimmten Daten gespeichert ist, der anderen Einrichtung signalisiert, daß sie nicht mehr zur Aufnahme weiterer Daten bereit ist.
  28. Programmgesteuerte Einheit nach einem der Ansprüche 21 bis 25 in Verbindung mit Anspruch 9, dadurch gekennzeichnet, daß die Füllstandslogik Bestandteil des DMA-Controllers (102-3; 202-3; 302-3) ist.
  29. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, daß die Übertragung der Daten zwischen der ersten Einrichtung und der zweiten Einrichtung (102-n; 202-n; 302-n) über den Bus erfolgt.
  30. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, daß die Übertragung der Daten zwischen der ersten Einrichtung und der zweiten Einrichtung (102-n; 202-n; 302-n) über einen die erste Einrichtung und die zweite Einrichtung miteinander verbindenden zweiten Bus oder eine nicht zum ersten Bus gehörende Leitung erfolgt.
DE2003160637 2003-12-19 2003-12-19 Programmgesteuerte Einheit Expired - Fee Related DE10360637B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2003160637 DE10360637B4 (de) 2003-12-19 2003-12-19 Programmgesteuerte Einheit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2003160637 DE10360637B4 (de) 2003-12-19 2003-12-19 Programmgesteuerte Einheit

Publications (2)

Publication Number Publication Date
DE10360637A1 true DE10360637A1 (de) 2005-07-21
DE10360637B4 DE10360637B4 (de) 2010-10-07

Family

ID=34683780

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2003160637 Expired - Fee Related DE10360637B4 (de) 2003-12-19 2003-12-19 Programmgesteuerte Einheit

Country Status (1)

Country Link
DE (1) DE10360637B4 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3514640A1 (de) * 2018-01-18 2019-07-24 Gebr. Saacke GmbH & Co.KG Vorrichtung und verfahren zur bereitstellung von maschinendaten

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781799A (en) * 1995-09-29 1998-07-14 Cirrus Logic, Inc. DMA controller arrangement having plurality of DMA controllers and buffer pool having plurality of buffers accessible to each of the channels of the controllers
DE69328841T2 (de) * 1992-01-10 2001-01-11 Compaq Computer Corp Mehrfachprozessorrechnersystem
WO2001004770A2 (en) * 1999-07-13 2001-01-18 Alteon Web Systems, Inc. Method and architecture for optimizing data throughput in a multi-processor environment using a ram-based shared index fifo linked list
US6219737B1 (en) * 1998-12-10 2001-04-17 International Business Machines Corporation Read request performance of a multiple set buffer pool bus bridge

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2365443C (en) * 2001-02-13 2008-12-09 Heidelberger Druckmaschinen Ag Raster generation system and method of processing raster data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69328841T2 (de) * 1992-01-10 2001-01-11 Compaq Computer Corp Mehrfachprozessorrechnersystem
US5781799A (en) * 1995-09-29 1998-07-14 Cirrus Logic, Inc. DMA controller arrangement having plurality of DMA controllers and buffer pool having plurality of buffers accessible to each of the channels of the controllers
US6219737B1 (en) * 1998-12-10 2001-04-17 International Business Machines Corporation Read request performance of a multiple set buffer pool bus bridge
WO2001004770A2 (en) * 1999-07-13 2001-01-18 Alteon Web Systems, Inc. Method and architecture for optimizing data throughput in a multi-processor environment using a ram-based shared index fifo linked list

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3514640A1 (de) * 2018-01-18 2019-07-24 Gebr. Saacke GmbH & Co.KG Vorrichtung und verfahren zur bereitstellung von maschinendaten

Also Published As

Publication number Publication date
DE10360637B4 (de) 2010-10-07

Similar Documents

Publication Publication Date Title
EP0951682B1 (de) IO- UND SPEICHERBUSSYSTEM FÜR DFPs SOWIE BAUSTEINE MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN
DE60314347T2 (de) Betriebsmittelverwaltungsgerät
DE3146356C2 (de) Vorrichtung zur Steuerung der Übertragung von Gerätesteuerinformation in einem Datenendgerät
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
WO2006079651A1 (de) Verfahren zum übertragen von daten in botschaften über eine kommunikationsverbindung eines kommunikationssystems, sowie kommunikationsbaustein, teilnehmer eines kommunikationssystems und kommunikationssystem zur realisierung dieses verfahrens
WO2006015911A1 (de) Verfahren und vorrichtung zum zugriff auf daten eines botschaftsspeichers eines kommunikationsbausteins
DE102005048581B4 (de) Teilnehmerschnittstelle zwischen einem FlexRay-Kommunikationsbaustein und einem FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
DE112010005609T5 (de) Speichern von Daten in einem einer Mehrzahl von Puffern in einer Speichersteuerung
EP0692893A1 (de) Vorrichtung zur Vermittlung in digitalen Datennetzen für asynchronen Transfermodus
EP0739509B1 (de) Anordnung mit master- und slave-einheiten
DE602004008712T2 (de) Speicherbandbreiten-Steuereinrichtung
EP0409330B1 (de) Schaltungsanordnung zum Steuern des Zugriffs auf einen Speicher
DE2749884C2 (de)
DE10360637B4 (de) Programmgesteuerte Einheit
EP1548603B1 (de) Verfahren und Vorrichtung zum Steuern eines Speicherzugriffs
EP1642423A1 (de) Anordnung und verfahren zur verwaltung eines speichers
EP1308846B1 (de) Datenübertragungseinrichtung
DE10027845B4 (de) Submodul für die Kontrolle einer Datenwarteschlange
EP1137997B1 (de) Multimaster-bussystem und verfahren zum betreiben desselben
EP1895428A2 (de) Speicherverwaltungs-Schaltungsanordnung und Speicherverwaltungsverfahren
DE102006000632A1 (de) Speichervorrichtung mit Bauteilen zum synchronen Übertragen und Empfangen von Signalen
DE10360679B4 (de) Programmgesteuerte Einheit
DE3743387C2 (de)
EP1062591B1 (de) Programmgesteuerte einheit mit internen und externen speichern
DE3842100A1 (de) Cache-system sowie steuerungsverfahren hierfuer

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee