-
Die
Erfindung betrifft eine Peripherieschnittstelle, aufweisend einen
Rechneranschluss für
einen Systembus eines Steuerrechners, einen Peripherieanschluss
für ein
Peripheriegerät
und eine Steuereinheit, welche zur unidirektionalen Übertragung
einer vorgebbaren Anzahl von Daten vom Steuerrechner zum Peripheriegerät und/oder
umgekehrt über
den Systembus auf einen ihr vorgebbaren Arbeitsspeicherbereich des
Steuerrechners, der als Puffer dient, zugreift. Daneben betrifft
sie ein Verfahren zum Übermitteln
von Daten von einem Steuerrechner zu einem Peripheriegerät und/oder
umgekehrt.
-
Eine
Peripherieschnittstelle dient der Kommunikation zwischen einem Steuerrechner
und einem oder mehreren Peripheriegeräten durch elektronische Datenübertragung.
Im Stand der Technik werden Peripheriegeräte über Standardschnittstellen
wie USB (engl. „Universal
Serial Bus"), Ethernet
oder Firewire angeschlossen, die auf der Peripherieseite einen separaten
Bus bereitstellen. Die Datenübertragung
der Peripherieschnittstelle wird im wesentlichen von dem Steuerrechner,
genauer gesagt, von dessen Zentraleinheit (engl. „Central
Processing Unit",
CPU), kontrolliert. Dies geschieht in der Regel durch eine von der
Zentraleinheit ausgeführte
Treibersoftware, welche die Zugriffe des Schnittstellenbausteins
auf den Arbeitsspeicher (engl. „random access memory"; RAM) des Steuerrechners
auslöst.
Der Zugriff auf den Arbeitsspeicher erfolgt zyklisch mittels direktem Speicherzugriff
(engl. „direct
memory access";
DMA) über
den Systembus des Steuerrechners. Die Peripherieschnittstelle weist
zu diesen Zweck eine DMA-Steuerung (engl. „DMA controller") auf. Typischerweise
wird von der DMA-Steuerung in jedem DMA-Zyklus ein Datenblock übertragen,
dessen Größe in der
Regel einer einzelnen Speicherseite (engl. „memory page") des Arbeitsspeichers
entspricht. Bei einer großen
Datenmenge ist demnach eine große Anzahl
von Datenblöcken
zu übertragen.
Dadurch wird eine entsprechende Anzahl von DMA-Zyklen notwendig.
-
Die
Treibersoftware meldet jeden DMA-Zyklus bei der DMA-Steuerung des
Peripheriegeräts an.
Der Steuerrechner führt
anschließend
andere Software, beispielsweise ein Anwendungsprogamm mit Benutzerinteraktion,
aus. Er erhält
später
eine Bestätigung
der vollständigen Übertragung
in Form einer Unterbrechungsanforderung (engl. „interrupt request", IRQ). Auf die Unterbrechungsanforderung hin
wird die reguläre Programmausführung unterbrochen
und stattdessen die Treibersoftware ausgeführt, welche die Datenübertragung
durch Auslösen
des nächsten
DMA-Zyklus fortsetzen muss. Um kontinuierlich eine hohe Datenübertragungsgeschwindigkeit zu
erreichen, ist eine sehr kurze Reaktionszeit der Treibersoftware
auf eine solche Unterbrechungsanforderung notwendig, um den nächsten DMA-Zyklus rechtzeitig
auszulösen.
Insbesondere in einem echtzeitkritischen System darf eine maximale
Reaktionszeit nicht überschritten
werden, um eine Lücke
in der Datenübertragung
zu verhindern. Verwendet der Steuerrechner ein nicht echtzeitfähiges Betriebssystem,
so ist eine deterministische Behandlung einer Unterbrechungsanforderung
für einen
DMA-Zyklus jedoch nicht möglich.
Die Reaktionszeit auf eine Unterbrechungsanforderung kann hier nahezu
beliebig ansteigen, wenn die Auslastung des Systems zunimmt oder
wenn es eine Vielzahl gleichzeitiger DMA-Übertragungsvorgänge gibt.
Die Anzahl der gleichzeitigen DMA-Übertragungsvorgänge nimmt mit
der zu erzielenden Datenübertragungsgeschwindigkeit
zu und wird außerdem
durch die Größe der zu übertragenden
Datenmenge bestimmt.
-
Es
sind DMA-Steuerungen bekannt, denen für einen einzelnen DMA-Zyklus
mehrere Speicherzugriffsschritte auf einmal vorgegeben werden können, um
die Anzahl der notwendigen DMA-Zyklen zu reduzieren. Die DMA-Steuerung
der Peripherieschnittstelle arbeitet diese Schritte eigenständig ab
und teilt wiederum deren Fertigstellung der Treibersoftware mittels
einer Unterbrechungsanforderung mit. Hierfür übergibt der Steuerrechner beispielsweise
beim Auslösen
eines DMA-Zyklus eine Liste von zu übertragenden Datenblöcken an
die DMA-Steuerung. Dieses Verfahren wird als „Scatter-Gathering" oder auch „Chained DMA" bezeichnet.
-
Den
vorgenannten Verfahren und Anordnungen ist gemein, dass die Software
des Steuerrechners detaillierte Abarbeitungsschritte für die DMA-Steuerung
der Peripherieschnittstelle festlegen und diese der Hardware rechtzeitig
mitteilen muss, bevor die noch laufende Datenübertragung endet, damit der
Datenstrom nicht abbricht. Die Antwortzeit eines Peripheriegeräts auf zu übertragende
Instruktionen des Steuerrechners und die Antwortzeit des Steuerrechners
auf eine zu übertragende
Zustandsänderung
des Peripheriegeräts
werden also insbesondere von der Datenübertragungsrate der betreffenden
Peripherieschnittstelle bestimmt, die wiederum unter anderem davon
abhängt,
wie oft der Steuerrechner in den Ablauf der Datenübertragung
eingreifen muss.
-
Im
Stand der Technik ist es bekannt, die Zentraleinheit des Steuerrechners
durch spezielle Ein-/Ausgabe-Prozessoren, beispielsweise den Typ 8089,
zur Abwicklung von Datenübertragungsvorgängen zu
entlasten. Zu diesem Zweck können
die Steuerungsaufgaben der Datenübertragung
teilweise von einem solchen E/A-Prozessor anstelle der von der Zentraleinheit
ausgeführten
Software übernommen
werden. E/A-Prozessoren können
zur eigenständigen Übertragung
von Daten zwischen einzelnen Mitgliedern des Systembusses ohne Zutun
des Hauptprozessors programmiert werden. Ihr Einsatz ist jedoch
kostenaufwendig und erfordert relativ viel Bauraum. Außerdem ist
ihre Programmierung aufwendig und unflexibel. Auch ein E/A-Prozessor
erzeugt am Ende einer Übertragung
eine Unterbrechungsanforderung an die Zentraleinheit des Steuerrechners,
die darauf zeitkritisch reagieren muss, damit der Datenstrom nicht
abbricht. Für
zeitkritische Datenübertragungen
muss also dennoch ein echtzeitfähiges
Betriebssystem verwendet werden.
-
Bei
bekannten Verfahren zur Steuerung und Datenaufnahme von Laser-Scanning-Mikroskopen (LSM)
betragen die in Form eines Datenstroms lückenlos zu übertragenden Datensegmente,
deren Übertragung
jeweils neu ausgelöst
werden muss, jeweils nur etwa 10 Kilobytes. Die Größe dieser
Datensegmente wird im wesentlichen von der Speichergröße der notwendigen
Pufferbausteine des Steuerrechners und der Peripherieschnittstelle
bestimmt. Diese Pufferbausteine mit schnellem, statischem Speicher sind
nur in begrenzter Speichergröße verfügbar und sehr
kostenaufwendig. Dabei sind maximale Reaktionszeiten auf Unterbrechungsanforderungen
von unter 200 μs
notwendig, in denen gegebenenfalls neue Daten berechnet und nachgeliefert
werden müssen. Die
bekannten Peripherieschnittstellen, die in LSM-Systemen eingesetzt
werden, erzeugen also auf der Seite des Steuerrechners einen hohen
Bedienaufwand in Form von kurzer Reaktionszeit der Treibersoftware
gepaart mit häufigen
Unterbrechungsanforderungen. Reagiert die Treibersoftware, also
der Steuerrechner, zu langsam, kommt kein konsistenter Steuerungsdatenstrom
zustande beziehungsweise die eingehenden Daten gehen verloren. Bei
abbrechendem Steuerdatenstrom können
Komponenten des LSM, beispielsweise die Scannerspiegel, beschädigt werden,
was zu vermeiden ist. Diese hohen Anforderungen an ein LSM-System
konnten bislang nur mit Hilfe eines echtzeitfähigen Betriebssystems erfüllt werden.
Bei Verwendung eines nicht echtzeitfähigen Betriebssystems musste
eine deutlich geringere Datenübertragungsgeschwindigkeit verwendet
werden. In der Konsequenz konnten Abtastvorgänge (engl. „scanning") an einer Probe nur mit geringer Geschwindigkeit durchgeführt werden muss
oder es konnte nur eine geringe Anzahl von Detektionskanälen verwendet
werden.
-
Der
Erfindung liegt die Aufgabe zugrunde, eine Peripherieschnittstelle
der eingangs genannten Art zu verbessern, so dass insbesondere bei
einem nicht echtzeitfähigen
Betriebssystem des Steuerrechners unter geringem Aufwand Daten mit
hoher Übertragungsgeschwindigkeit
lückenlos
und ohne Verluste zwischen Steuerrechner und Peripheriegerät übertragen
werden können.
Insbesondere soll die schnelle Übertragung
von großen
Datenmengen in LSM-Systemen ermöglicht
werden.
-
Die
Aufgabe wird gelöst
durch eine Peripherieschnittstelle, welche die in Anspruch 1 angegebenen
Merkmale aufweist, und durch Verfahren, welche die in Anspruch 11
und 15 angegebenen Merkmale aufweisen.
-
Vorteilhafte
Ausgestaltungen der Erfindung sind Gegenstand der jeweiligen Unteransprüche.
-
Erfindungsgemäß ist vorgesehen,
dass die Steuereinheit dem Steuerrechner während der Übertragung einen Fortschritt
der Übertragung
zum Abruf bereitstellt und dass der Steuereinheit vom Steuerrechner,
also von dessen Zentraleinheit, ein Fortschritt der Bearbeitung
des Puffers unabhängig
von der Übertragung
mitteilbar ist, wobei sie den Fortschritt der Bearbeitung beim Zugriff
auf den Puffer berücksichtigt.
Die Bereitstellung des Übertragungsfortschritts
kann kontinuierlich oder auf Anforderung des Steuerrechners erfolgen.
Die Steuereinheit der Peripherieschnittstelle arbeitet dabei unabhängig von der
Zentraleinheit des Steuerrechners. Die Steuereinheit ist von der
Zentraleinheit des Steuerrechners räumlich getrennt angeordnet
und über
den Systembus mit ihr verbindbar. Der Speicherzugriff der Steuereinheit
auf den Arbeitsspeicher des Steuerrechners kann dabei unmittelbar
oder mittelbar über
den Systembus erfolgen, vorzugsweise durch direkten Speicherzugriff.
Ein indirekter Speicherzugriff liegt beispielsweise vor, wenn der
Arbeitsspeicher oder zumindest Teile des Arbeitsspeichers in einem
anderen Bereich zwischengepuffert werden muss, bevor dieser an sei
eigentliches Ziel transferiert werden kann. Dies kann beispielsweise
durch die Zentraleinheit oder einen anderen DMA-Controller erfolgen.
-
Diese
Peripherieschnittstelle und das zugehörige Betriebsverfahren weichen
die im Stand der Technik vorhandene strikte Trennung zwischen der Software
des Steuerrechners, ausgeführt
von dessen Zentraleinheit, und der Hardware der Peripherieschnittstelle
auf, indem die Peripherieschnittstelle, nämlich deren Steuereinheit,
klassische Softwareaufgaben übernimmt
und so die Steuerung eines Datenübertragungsvorgangs
nicht mehr alleine der Software überlassen
wird. Die Software, also der Steuerrechner, gibt der Hardware zu
diesem Zweck einen bestimmten Aktionsrahmen vor, innerhalb dessen
dann die Hardware selbständige
Operationen durchführen
kann. Für
eine Datenübertragung
vom Steuerrechner zum Peripheriegerät stellt der Steuerrechner
der Peripherieschnittstelle einen oder mehrere größere Arbeitsspeicherbereiche
als Lesepuffer zur Verfügung.
Der Steuerrechner legt den zu übertragenden
Datenstrom in dem gemeinsam von Steuerrechner und Peripherieschnittstelle
genutzten Speicherbereich ab und teilt ihr diesen Bereich mit. Die
Peripherieschnittstelle kann dann diesen Speicherbereich autark
nutzen ohne weitere Anweisungen des Steuerrechners zu benötigen: Die
Peripherieschnittstelle liest und sendet den im gemeinsamen Speicher
abgelegten Datenstrom automatisch, ohne Zutun des Steuerrechners,
zum Peripheriegerät
und teilt dem Steuerrechner, also der Software, lediglich den Status
des Lesevorgangs mit. Dadurch können
Datenmenge, Übertragungsdauer
und Pufferfüllstand
kontinuierlich variiert werden. Es sind keine zeitkritisch zu beantwortenden
Unterbrechungsanforderungen zur Parametrisierung der Fortsetzung der
Datenübertragung
notwendig, so dass bei ausreichend großem Puffer auf ein echtzeitfähiges Betriebssystem
verzichtet werden kann.
-
Die
Größe der ohne
Unterbrechungsanforderung übertragbaren
Datenmenge (mit anderen Worten, die Länge eines nahtlosen Datenstromabschnitts)
kann vorteilhafterweise mehrere Megabyte betragen, da die Speichergröße der Pufferbausteine
nicht mehr beschränkend
wirkt. Bei herkömmlichen
Verfahren hingegen müsste
etwa alle 10 Kilobyte eine Operation seitens der Software ausgeführt werden,
veranlasst durch eine Unterbrechungsanforderung. Es besteht zwar
auch im Stand der Technik mit den bekannten „Scatter-Gathering"-Verfahren die Möglichkeit,
mit größeren Speicherbereichen
zu arbeiten, um eine vergrößerte Datenmenge
ohne Eingriff der Steuerrechner-Software zu übertragen, eine Flusskontrolle
durch Verlaufsrückmeldung
ist dabei aber nicht möglich.
Die beschränkte
Speichergröße der notwendigen
Pufferbausteine limitiert dabei außerdem, wie eingangs beschrieben,
die Größe der Datensegmente.
Dies trifft auch auf die eingangs beschriebenen E/A-Prozessoren
zu.
-
In
einer ersten Ausgestaltungsmöglichkeit
ist der Steuereinheit von dem Steuerrechner zum einen ein Quell-Arbeitsspeicherbereich
als Lesepuffer und zum anderen als Fortschritt der Pufferbearbeitung eine
Position, insbesondere von zum Peripheriegerät zu übertragenden Daten mitteilbar,
wobei sie die Daten mittels des direkten Speicherzugriffs aus dem Quell-Arbeitsspeicherbereich
liest und über
den Peripherieanschluss überträgt. Vorzugsweise
ist die Position der zu übertragenden
Daten unabhängig
von dem Lesevorgang und insbesondere wiederholt erweiterbar, woraufhin
die Steuereinheit das Lesen und Übertragen
auf die erweiterte Position von Daten ausdehnt.
-
Insbesondere
durch die abrufbaren Verlaufsmeldungen gestattet die erfindungsgemäße Peripherieschnittstelle
beziehungsweise das erfindungsgemäße Verfahren, bereits während der
Datenübertragung
neue Daten in dem Speicherbereich abzulegen und der Peripherieschnittstelle
in Form des Bearbeitungszustands des Puffers das Vorhandensein dieser
neuen Daten mitzuteilen. Dadurch ist die Datenübertragung vom Steuerrechner
zum Peripheriegerät nahtlos
verlängerbar,
und zwar ohne von der Peripherieschnittstelle ausgelöste Unterbrechungsanforderungen,
sondern auf Initiative des Steuerrechners, beispielsweise, wenn
diese einen neuen Steuerdatenstromabschnitt fertiggestellt hat.
Dazu braucht der Peripherieschnittstelle nicht explizit mitgeteilt
zu werden, was wann zum Peripheriegerät übertragen werden muss, da sie
selbst für
die Fortsetzung der Übertragung
zum richtigen Zeitpunkt verantwortlich ist. Die Peripherieschnittstelle
nimmt beispielsweise als veränderten
Bearbeitungszustand unabhängig
vom Lesevorgang lediglich die Startadresse und die Länge der
neuen Daten im Puffer entgegen. Sie fügt diese Informationen an eine
interne Liste der zu übertragenden
Daten an, die sie sequentiell abarbeitet. So ist, wenn die Liste
nicht durch vollständige
Abarbeitung leerläuft,
eine kontinuierliche Übertragung
eines jederzeit erweiterbaren Datenstroms möglich.
-
In
einer zweiten Ausgestaltungsmöglichkeit ist
der Steuereinheit, wie oben beschrieben, von dem Steuerrechner ein
Ziel-Arbeitsspeicherbereich als Schreibpuffer mitteilbar. Die Steuereinheit
kann dann eine Anzahl von vom Peripheriegerät übertragenen Daten mittels des
direkten Speicherzugriffs in den Schreib-Arbeitsspeicherbereich
des Steuerrechners schreiben, wobei ihr als Fortschritt der Pufferbearbeitung
eine Obergrenze für
zu übertragende
Daten mitteilbar ist. Vorzugsweise ist dabei die Obergrenze unabhängig vom
den Schreibvorgang und insbesondere wiederholt erweiterbar, woraufhin
die Steuereinheit das Schreiben bei Bedarf bis zur erweiterten Obergrenze
ausdehnt.
-
Die
Datenübertragung
vom Peripheriegerät zum
Steuerrechner funktioniert äquivalent
zur Gegenrichtung. Die Software, also der Steuerrechner, teilt der
Hardware, also der Peripherieschnittstelle, einen Arbeitsspeicherbereich
als Schreibpuffer mit, in dem die Peripherieschnittstelle ohne Zutun
des Steuerrechners Daten ablegen kann. Dadurch ist die Datenübertragung
vom Peripheriegerät
zum Steuerrechner ohne Unterbrechungsanforderungen nahtlos verlängerbar.
Die Software kann sich auch hier durch Abruf des Übertragungsfortschritts über den
Verlauf informieren und kann anhand dieser Information die gültigen Daten
aus dem gemeinsamen Speicherbereich entnehmen, während die Hardware weiterhin Daten
in dem Speicherbereich ablegt, jedoch in einem Bereich, den der
Steuerrechner mittels des der Peripherieschnittstelle mitgeteilten
Bearbeitungszustands als frei markiert hat. Die Peripherieschnittstelle
stellt dem Steuerrechner daraufhin im Rahmen des Übertragungsfortschritts
die Information bereit, wo sich neue gültige Daten befinden. Diese
Information kann der Steuerrechner unabhängig von der Übertragung
und insbesondere ohne vorherige Unterbrechungsanforderung abrufen.
Beispielsweise kann ein Intervallzeitschalter (engl. „interval
timer") auf Anwendungsebene
zu diesem Zweck eingerichtet werden.
-
Der
Puffer, insbesondere die Lese- und der Schreibpuffer, kann dabei
so gewählt
werden, dass die Reaktionszeiten des Steuerrechners im Sekundenbereich
liegen, ohne dass ein Überlauf
oder ein Leerlaufen des jeweiligen Puffers oder der jeweiligen internen
Liste der Peripherieschnittstelle resultiert. Ein echtzeitfähiges Betriebssystem
wird dann nicht benötigt.
Es ist auf diese Weise auch mit einem nicht echtzeitfähigen Betriebssystem
möglich,
ohne größere Leistungseinbußen oder
Reduktion der Anzahl von Detektionskanälen, die komplexen Steueraufgaben
von LSM-Systemen zu bewältigen.
Durch die Erfindung ist außerdem
eine sehr hohe Datenübertragungsgeschwindigkeit
möglich,
da nur wenig Rechenzeit der Zentraleinheit des Steuerrechners benötigt wird.
Der Steuerrechner hat dafür
im Gegenzug mehr Rechenzeit für
Aufnahme, Bearbeitung und Präsentation
beziehungsweise Aufbereitung und Bereitstellung der Daten. Wird
die Erfindung in LSM-Systemen eingesetzt, so werden bei Verwendung
eines nicht echtzeitfähigen
Betriebssystems des Steuerrechners durch die dynamische Pufferung und
die asynchrone Statusmitteilung Übertragungsgeschwindigkeiten
erreicht, die unter ansonsten gleichen Bedingungen bisher nur mit
echtzeitfähigen
Betriebssystemen möglich
waren.
-
Beide
Ausgestaltungsmöglichkeiten,
sowohl vom Peripheriegerät
zum Steuerrechner als auch umgekehrt, können in derselben Peripherieschnittstelle
parallel realisiert werden, wenn für zwei entgegengesetzte, unidirektionale
Datenübertragungskanäle sowohl
ein Lesepuffer als auch ein Schreibpuffer mit zugehörigen Kommunikationseinrichtungen
für den
Abruf von Verlaufsmeldungen und die Mitteilung von Datenpositionen
eingerichtet wird.
-
Die
erfindungsgemäße Peripherieschnittstelle
beziehungsweise das Übertragungsverfahren
erlangt seine volle Leistungsfähigkeit
nur dann, wenn die Peripherieschnittstelle einen direkten Zugriff
auf den Arbeitsspeicher durchführen
kann. Dies ist nur dann möglich,
wenn die Peripherieschnittstelle direkt an den Systembus, beispielsweise
PCI (engl. „Peripheral
Component Interconnect")
oder PCIe (PCI-Express), angeschlossen ist. Dabei kann ein Brückenbaustein
weitere Systembuskomponenten, beispielsweise ISA (engl. „Industry
Standard Architecture") oder
CardBus, ankoppeln und Speicherzugriffe treiberlos vermitteln.
-
In
einer möglichen
Ausführungsform
der Erfindung spricht die Steuereinheit den jeweiligen Arbeitsspeicherbereich
als Ringpuffer an. Die Verwendung eines solchen FIFO-Puffers (engl. „First
In First Out") erlaubt
einerseits eine einfache Kommunikation zwischen Steuerrechner und
Peripherieschnittstelle und andererseits eine sehr einfache Verwaltung
des Puffers durch die Peripherieschnittstelle.
-
In
der ersten Ausgestaltungsmöglichkeit nimmt
die Steuereinheit vorteilhafterweise für einen Lesepuffer als Mitteilung über die
Anzahl der zu übertragenden
Daten einen ersten Zeiger hinter ein Ende der noch zu übertragenden
Daten von dem Steuerrechner entgegen und stellt dem Steuerrechner
als Mitteilung über
den Fortschritt einen zweiten Zeiger, den sie beim Lesevorgang weiterzählt, auf
einen Beginn der noch zu sendenden Daten zum Abruf bereit. Auf diese
Weise sind für
die gesamte Datenübertragung
in Leserichtung lediglich zwei Zeiger notwendig. Entsprechend gering
ist die zwischen Steuerrechner und Peripherieschnittstelle auszutauschende
Datenmenge zur Einrichtung und Abwicklung der Datenübertragung
vom Peripheriegerät
zum Steuerrechner.
-
In
der zweiten Ausgestaltungsmöglichkeit nimmt
die Steuereinheit vorteilhafterweise für einen Schreibpuffer als Mitteilung über die
Obergrenze der zu übertragenden
Daten von dem Steuerrechner einen ersten Zeiger hinter ein Ende
eines freien Pufferbereichs von dem Steuerrechner entgegen und stellt dem
Steuerrechner als Mitteilung über
den Fortschritt einen zweiten Zeiger, den sie beim Schreibvorgang weiterzählt, auf
einen Beginn der bereits geschriebenen Daten zum Abruf bereit. Auf
diese Weise sind für die
gesamte Datenübertragung
in Schreibrichtung lediglich zwei Zeiger notwendig. Entsprechend
gering ist die zwischen Steuerrechner und Peripherieschnittstelle
auszutauschende Datenmenge zur Auslösung und Erweiterung der Datenübertragung vom
Peripheriegerät
zum Steuerrechner.
-
Vorzugsweise
stellt die Steuereinheit für
einen der ersten Zeiger ein jeweiliges, über den Systembus beschreibbares,
insbesondere auch auslesbares, Register und für einen der zweiten Zeiger
ein jeweiliges, über
den Systembus auslesbares Register bereit. Dies ermöglicht einen
einfachen Zugriff des Steuerrechners mit hoher Geschwindigkeit.
Zweckmäßigerweise
werden die Register über
speicherabgebildete Adressierung (engl. „memory mapped I/O") bereitgestellt.
-
Vorteilhafterweise
initialisiert die Steuereinheit, wenn der Steuerrechner ihr einen
Arbeitsspeicherbereich als Lese- oder Schreibpuffer vorgibt, den
zugehörigen
ersten Zeiger und den zugehörigen zweiten
Zeiger auf den Beginn dieses Speicherbereichs. Dies ermöglicht die
Verwendung des Puffers, insbesondere eines Ringpuffers, mit geringem
Aufwand.
-
Vorzugsweise
gibt die Steuereinheit, wenn einer der zweiten Zähler beim Weiterzählen den
Wert des zugehörigen
ersten Zählers
erreicht, eine Unterbrechungsanforderung an den Steuerrechner ausgibt.
Auf diese Weise kann der Steuerrechner in bekannter Weise über einen Überlauf
(engl. „buffer overflow") eines Schreibpuffers
beziehungsweise über
ein Leerlaufen eines Lesepuffers (engl. „buffer underrun") und damit über einen
drohenden Datenverlust beziehungsweise ein drohendes Aussetzen der Übertragung
informiert werden.
-
Zweckmäßigerweise
ist der jeweilige Arbeitsspeicherbereich in der Art eines „Scatter-Gathering"-Verfahrens aus verstreut
liegenden Speicherblöcken
zusammensetzbar, wobei der Steuereinheit zur Vorgabe des Arbeitsspeicherbereichs
eine betreffende Liste der Speicherblöcke mitteilbar ist. Eine erste
solche Liste kann für
einen Lesepuffer und eine zweite Liste für einen Schreibpuffer übergeben
werden.
-
Vorteilhafterweise
kann der Peripherieanschluss als E-/A-Bus ausgebildet sein. So können mehrere
Peripheriegeräte
an denselben Peripherieanschluss angeschlossen werden.
-
Vorzugsweise
ist der Rechneranschluss und/oder der Peripherieanschluss mittels
einer betreffenden Steckverbindung lösbar ausgebildet. Dadurch kann
die Peripherieschnittstelle als austauschbare Steckkarte gestaltet
werden.
-
Durch
die Software der Steuereinheit wird zunächst ein unverschieblicher,
nicht auslagerbarer Bereichs des Arbeitsspeichers des Steuerrechners reserviert
und der Peripherieschnittstelle mitgeteilt. Wenn an das Peripheriegerät zu übertragenden
Daten identifiziert werden, werden die zu übertragenden Daten in den reservierten
Speicherbereich angrenzend an noch nicht übermittelte Daten geschrieben und
der Peripherieschnittstelle wird eine Position, insbesondere die
Endadresse, der geschriebenen Daten als Bearbeitungsfortschritt
mitgeteilt. Wenn anhand eines von der Peripherieschnittstelle bereitgestellten Übertragungsfortschritts
von dem Peripheriegerät übertragenen
Daten in dem reservierten Speicherbereich identifiziert werden,
werden die übertragenen
Daten aus dem reservierten Speicherbereich gelesen und es wird Peripherieschnittstelle eine
Position der noch nicht gelesenen Daten, insbesondere die Anfangsadresse,
als Bearbeitungsfortschritt mitgeteilt.
-
Ergänzend dazu
wird mittels einer Steuereinheit der Peripherieschnittstelle von
dem Steuerrechner ein Ziel-Arbeitsspeicherbereich als Schreibpuffer entgegengenommen
und eine Anzahl von vom Peripheriegerät übertragenen Daten in den Schreib-Arbeitsspeicherbereich
des Steuerrechners geschrieben, wobei als Fortschritt der Pufferbearbeitung
eine Obergrenze für
zu übertragende
Daten unabhängig vom
den Schreibvorgang und insbesondere wiederholt erweitert entgegengenommen
wird, woraufhin das Schreiben bei Bedarf bis zur erweiterten Obergrenze
ausgedehnt wird.
-
Alternativ
oder zusätzlich
wird mittels einer Steuereinheit der Peripherieschnittstelle von
dem Steuerrechner ein Quell-Arbeitsspeicherbereich als Lesepuffer
entgegengenommen, und eine Position von zum Peripheriegerät zu übertragenden
Daten als Fortschritt der Pufferbearbeitung unabhängig von dem
Lesevorgang und insbesondere wiederholt erweitert entgegengenommen,
wobei die Daten aus dem Quell-Arbeitsspeicherbereich gelesen und über den
Peripherieanschluss übertragen
werden und bei Mitteilung einer erweiterten Position das Lesen und Übertragen
auf die erweiterte Anzahl von Daten ausgedehnt wird.
-
Die
Erfindung umfasst neben der Peripherieschnittstelle und den von
der Steuereinheit beziehungsweise dem Steuerrechner auszuführenden Verfahren
auch ein Computerprogramm, das zur Durchführung eines der vorgenannten
Verfahren eingerichtet ist, insbesondere eine Firmware für eine Schnittstellensteuereinheit,
und einen Steuerrechner, mit einer erfindungsgemäßen Peripherieschnittstelle zur
Durchführung
des erfindungsgemäßen Verfahrens
sowie ein Laser-Scanning-Mikroskop-System, das einen solchen Steuerrechner
und ein Laser-Scanning-Mikroskop mit mindestens einer Komponente
enthält,
die über
eine erfindungsgemäße Peripherieschnittstelle
mit dem Steuerrechner verbindbar ist.
-
Nachfolgend
wird die Erfindung anhand eines Ausführungsbeispiels näher erläutert.
-
In
den Zeichnungen zeigen:
-
1 ein
Blockdiagramm eines ersten Steuerrechners mit angeschlossenem Peripheriegerät,
-
2 ein
Blockdiagramm eines zweiten Steuerrechners mit angeschlossenem Peripheriegerät,
-
3 schematisch
die Einrichtung von Puffer im Arbeitsspeicher des Steuerrechners
und
-
4, 5, 6 schematisch
mehrere Zustande des Arbeitsspeichers während zweier gleichzeitiger,
entgegengesetzter Datenübertragungsvorgänge.
-
In
allen Zeichnungen haben übereinstimmende
Teile gleiche Bezugszeichen.
-
1 zeigt
einen Steuerrechner 1 mit einer Zentraleinheit 2,
einem Arbeitsspeicher 3, einer erfindungsgemäßen Peripherieschnittstelle 4 und
einem Brückenbaustein 5 als
Bindeglied zwischen Prozessorbus 6, Speicherbus 7 und
Systembus 8. An die Peripherieschnittstelle 4 ist über einen
Peripheriebus 9 ein Peripheriegerät 10 angeschlossen.
Der Brückenbaustein 5 vermittelt
Speicherzugriffe ohne Treiberaufwand für die Zentraleinheit 2 weiter.
Dadurch kann die Steuereinheit 11 der Peripherieschnittstelle 4 über den
Systembus 8 lesend und schreibend direkt auf den Arbeitsspeicher 3 des
Steuerrechners 1 zugreifen. Die Steuereinheit 11 ist
als FPGA (engl. „Field
Programmable Gate Array")
ausgebildet. Das Datenübertragungsverfahren
ist dabei in der Firmware beziehungsweise im FPGA-Programm des FPGA
kodiert.
-
Die
Peripherieschnittstelle 4 ist beispielsweise als PCI-Express-Steckkarte
mit einem lösbaren Systembusanschluss
(nicht gezeigt) und einem lösbaren
Peripheriebusanschluss (nicht gezeigt) ausgebildet und umfasst beispielsweise
jeweils einen Pufferspeicher (nicht gezeigt) einer Größe von 8
Kilobyte für
jede Übertragungsrichtung.
Der erste Pufferspeicher dient zum Zwischenspeichern von Daten,
die aus dem Lesepuffer 16 des Steuerrechners 1 ausgelesen
wurden, vor der weiteren Übertragung über den Peripheriebus 9 zum
Peripheriegerät.
Der zweite Pufferspeicher dient zum Zwischenspeichern von Daten,
die über
den Peripheriebus 9 vom Peripheriegerät empfangen wurden, vor dem
Schreiben in den Schreibpuffer 17 des Steuerrechners 1.
In anderen Ausgestaltungen können
auch andere Pufferspeichergrößen vorgesehen
werden.
-
Ein
direkter Zugriff der Steuereinheit 11 auf den Arbeitsspeicher 3 ist
auch in der in 2 dargestellten Konfiguration
möglich.
Hier ist die erfindungsgemäße Peripherieschnittstelle 4 über einen
zweiten Brückenbaustein 12 und
einen Zwischenbus 13 an den Systembus 8 angeschlossen.
Aufgrund der Vermittlung des zweiten Brückenbausteins 12 werden die
direkten Speicherzugriffe in dieser Konfiguration entsprechend verzögert. Auch
hier ist die Peripherieschnittstelle 4 entsprechend 1 als
Steckkarte ausgebildet, in diesem Beispiel jedoch als CardBus-Steckkarte.
-
Die
Durchführung
des erfindungsgemäßen Verfahrens
ist sowohl mit der Konfiguration der 1 als auch
mit der Konfiguration der 2 möglich. In beiden
Konfigurationen kann die jeweilige Steckkarte als Peripherieanschluss
beispielsweise eine LVDS-Schnittstelle (engl. „low voltage differential
signaling interface")
aufweisen.
-
Das
erfindungsgemäße Verfahren
beziehungsweise die Peripherieschnittstelle 4 kann auf
unterschiedliche Weise realisiert werden. Eine Möglichkeit besteht darin, im
Arbeitsspeicher 3 einen oder mehrere virtuelle FIFO-Puffer
für den
Zugriff durch die Steuereinheit 11 der Peripherieschnittstelle 4 einzurichten.
Es kann dabei jegliche Art von FIFO-Puffer, welcher im Arbeitsspeicher
abgebildet wird, verwendet werden, beispielsweise ein Ringpuffer.
Es kann auch eine Anordnung von verschiedenen, nicht zusammenhängenden
Speicherbereichen verwendet werden, welche durch einen Algorithmus
nacheinander angesprochen werden, beispielsweise durch jeweilige
Zeiger auf den nachfolgenden Speicherbereich.
-
In
alternativen Ausführungsformen
(nicht abgebildet) kann ein Zusatzarbeitsspeicher in die Peripherieschnittstelle 4 integriert
sein, der in den Adressbereich der Zentraleinheit 2 des
Steuerrechners 1, insbesondere im Bereich des Arbeitsspeichers 3 des
Steuerrechners 1, eingeblendet (engl. „memory-mapped") und als Puffer
verwendet wird. Der gemeinsame Puffer-Speicherbereich von Peripherieschnittstelle 4 und
Steuerrechner 1 liegt dann zwar physikalisch in der Peripherieschnittstelle,
ist jedoch, wie in den oben beschrieben Ausführungsformen, ein Teil des
Arbeitsspeichers 3 des Steuerrechners.
-
In
weiteren alternativen Ausführungsformen (nicht
abgebildet) kann ein Zusatzarbeitsspeicher, der jedoch nicht in
den Adressbereich der Zentraleinheit 2 des Steuerrechners 1 eingeblendet
wird, in die Peripherieschnittstelle 4 integriert sein.
In diesem Zusatzarbeitsspeicher wird/werden der/die Puffer 16, 17 zur
erfindungsgemäßen Datenübertragung
eingerichtet. Der Datentransfer zwischen Peripherieschnittstelle 4 und
Steuerrechner 1 und umgekehrt erfolgt durch DMA-Zugriffe
der Peripherieschnittstelle 4 auf den Arbeitsspeicher 3 des
Steuerrechners 1, beispielsweise unter Verwendung von Unterbrechungsanforderungen
an die Zentraleinheit 2 bei vollem Schreibpuffer 17 beziehungsweise
leerem Lesepuffer 16. Die Verwaltung des Zusatzarbeitsspeichers
wird dabei von der Peripherieschnittstelle 4 durchgeführt. In
solchen hybridischen Ausführungsformen
ist die Frequenz der Unterbrechungsanforderungen zwar höher als
in den zuvor genannten Ausführungsformen,
die nahezu keine Unterbrechungsanforderungen benötigen, jedoch vorteilhafterweise niedriger
als im Stand der Technik, da die Größe der notwendigen Pufferbausteine
keine Rolle spielt. Dadurch können
Datensegmentgrößen von
jeweils einigen 100 Kilobytes ohne Unterbrechungsanforderung übertragen
werden.
-
In 3 ist
die Einrichtung von Puffer durch den Steuerrechner 1 in
dessen Arbeitsspeicher 3 gezeigt. Die Zentraleinheit 2 des
Steuerrechners 1 führt eine
Software 14 aus, in der Unterprogramme mit einer Softwarelogik 15 zur
Durchführung
des den Steuerrechner betreffenden Teils des erfindungsgemäßen Verfahrens
eingerichtet sind. Unabhängig
von der Software 14 und der Zentraleinheit 2 führt die
Steuereinheit 11 der Peripherieschnittstelle 4 den
komplementären
Teil des erfindungsgemäßen Verfahrens durch.
Bei zwei entgegengesetzten unidirektionalen Datenströmen reserviert
die Software 14 zweckmäßigerweise
einen Lesepuffer 16 und einen Schreibpuffer 17.
Der Lesepuffer 16 dient dem Steuerrechner 1 zum
Ablegen von Daten, die von der Steuereinheit 11 ausgelesen
und zum Peripheriegerät 10 übertragen werden
sollen, durch die Software 15. Der Schreibpuffer 17 dient
der Peripherieschnittstelle 4 zum Ablegen von Daten, vom
Peripheriegerät 10 empfangen wurden
und von der Software 14 ausgelesen werden sollen, durch
die Steuereinheit 11. Beide Puffer werden beispielsweise
sowohl vom Steuerrechner 1 als auch von der Peripherieschnittstelle 4 als
Ringpuffer angesprochen. Die Erfindung kann aber auch mit jeder
anderen Art der Speicherverwaltung realisiert werden.
-
Jeder
der Puffer 16 und 17 besteht beispielsweise jeweils
aus mehreren verteilten, im „Scatter-Gathering"-Verfahren zu einem
virtuell zusammenhängenden
FIFO-Puffer zusammengesetzten Blöcken
des Arbeitsspeichers 3. Die Puffer 16 und 17 sind
von der Software 14 als nicht auslagerbar reserviert und
weisen eine Größe von jeweils
32 MByte auf. Sie können
in anderen Ausführungsformen (nicht
abgebildet) auch unterschiedliche und andere Größen aufweisen. Auch ist es
möglich,
einen oder beide Puffer jeweils als einen physikalisch zusammenhängenden
Block zu reservieren. Der Cache (nicht gezeigt) der Zentraleinheit 2 wird
für die Adressbereiche,
in denen die Puffer 16 und 17 liegen, deaktiviert.
Nach der Reservierung teilt die Software 14 der Steuereinheit 11 die
Anfangsadresse und die Größe des Leserpuffers 16 und
des Schreibpuffers 17 mit. Die Steuereinheit 11 stellt
zu diesem Zweck jeweils zwei Hardwareregister, die in den Adressbereich
der Zentraleinheit 2 eingeblendet sind, zur Verfügung.
-
Wie
aus 4 erkennbar ist, verwendet die Steuereinheit 11 zur
Verwaltung der Ringpuffer 16 und 17 neben den
Anfangsadressen und Größen der Puffer 16, 17 lediglich
jeweils zwei Zeiger, die für
die Zentraleinheit 2 in weiteren Hardwareregistern zugänglich sind:
Für den
Lesepuffer 16 verwendet sie einen ersten Zeiger SV hinter
das Ende der gültigen, noch
zu übertragenden
Daten und einen zweiten Zeiger SC auf das Ende der bereits übertragenen
Daten und damit auf den Beginn der noch zu übertragenden Daten. Die Steuereinheit 11 liest
nur in dem Pufferbereich A zwischen dem zweiten Zeiger SC und dem ersten
Zeiger SV. Komplementär
dazu schreibt die Software 14 nur in den Pufferbereich
B. Für
den Schreibpuffer verwendet die Steuereinheit 11 einen ersten
Zeiger RV hinter das Ende des freien Pufferbereichs und einen zweiten
Zeiger RC auf den Beginn der bereits geschriebenen Daten. Die Steuereinheit 11 schreibt
nur in den Pufferbereich D zwischen dem zweiten Zeiger RC und den
ersten Zeiger RV, nicht aber in den Pufferbereich E.
-
Die
beiden Hardwareregister der ersten Zeiger SV, RV sind für die Zentraleinheit 2 des
Steuerrechners 1, also für die Software 14,
lesbar und beschreibbar. Sie werden von der Steuereinheit 11 der Peripherieschnittstelle 4 nicht
verändert.
Die beiden Hardwareregister der zweiten Zeiger SC, RC sind für die Zentraleinheit 2 nur
lesbar. Sie werden von der Steuereinheit 11 während der
Datenübertragung hochgezählt: Der
zweite Lese-Zeiger SC wird bei jedem Zugriff der Steuereinheit 11 auf
den Lesepuffer 16 um die Anzahl der ausgelesenen Dateneinheiten erhöht. Ein
solcher Zugriff kann in einzelnen Dateneinheiten wie Bytes, Wörtern, Doppelwörtern oder Quadwörtern erfolgen.
Alternativ können
in einem Zugriff mehrere Dateneinheiten mittels eines Bursttransfers
ausgelesen werden. Der zweite Schreib-Zeiger RC wird bei jedem Zugriff
der Steuereinheit 11 auf den Schreibpuffer 17 um
die Anzahl der geschriebenen Dateneinheiten erhöht. Ein solcher Zugriff kann
in einzelnen Dateneinheiten wie Bytes, Wörtern, Doppelwörtern oder
Quadwörtern
erfolgen. Alternativ können
in einem Zugriff mehrere Dateneinheiten mittels eines Bursttransfers
ausgelesen werden.
-
Teilt
die Software 14 der Steuereinheit 11 einen Arbeitsspeicherbereich
als Lesepuffer 16 oder als Schreibpuffer 17 mit,
so initialisiert die Steuereinheit 11, den zugehörigen ersten
Zeiger SV beziehungsweise RV und den zugehörigen zweiten Zeiger SC beziehungsweise
RC auf den Beginn des betreffenden Speicherbereichs. Durch die Zeigerpaare SV/SC
beziehungsweise RV/RC ist nun jeweils ein unabhängiger Zugriff der Zentraleinheit 2 und
der Steuereinheit 11 auf den betreffenden gemeinsamen Puffer-Speicherbereich
möglich.
Durch die Bereitstellung der Zeiger SV, SC, RV, RC in Hardwareregistern
wird der Zugriff darauf durch den Systembus 8 automatisch
synchronisiert.
-
4 bis 6 zeigen
drei Zustände
des Arbeitsspeichers und der beiden Zeigerpaare während zwei
gleichzeitig durchgeführten,
unabhängigen,
Datenübertragungsvorgängen in
entgegengesetzten Richtungen. 4 zeigt
einen Zustand, in dem die Software 14 bereits Daten, die
an das Peripheriegerät 10 übertragen
werden sollen, in dem Lesepuffer 16 abgelegt und anschließend den
ersten Zeiger SV hinter das Ende dieser Daten gesetzt hat. Außerdem hat
die Software 14 durch Setzen des ersten Zeigers RV einen
Teil des Schreibpuffers 17 als frei markiert, so dass die
Steuereinheit 11 hier vom Peripheriegerät 10 eintreffende
Daten ablegen kann. Anhand der zweiten Zeiger SC, RC, die noch auf
den Beginn des jeweiligen Puffers 16 beziehungsweise 17 zeigen,
ist zu erkennen, dass seit der Initialisierung weder ein Lese- noch
ein Schreibvorgang durch die Steuereinheit 11 stattgefunden
hat.
-
Die
Steuereinheit 11 identifiziert nun daran, dass der erste
Zeiger SV von dem zweiten Zeiger SC abweicht, dass zu übertragende
Daten im Pufferbereich A vorliegen. Die Steuereinheit 11 wird
daraufhin selbständig
Lesevorgänge
ausführen
und den zweiten Zeiger SC entsprechend der Anzahl der gelesenen
Dateneinheiten weiterzählen
sowie die gelesenen Daten über
den betreffenden internen Pufferspeicher der Peripherieschnittstelle 4 zum
Peripheriegerät 10 übertragen.
Der Pufferbereich B ist noch nicht zur Übertragung freigegeben, hier
kann die Software 14, unabhängig von den Zugriffen der
Steuereinheit 11 auf den Pufferbereich A, beliebig zugreifen
und zu übertragende
Daten anfügen.
-
Prinzipiell
wiederholt die Steuereinheit 11 ihre Schritte bis der erste
Zeiger SV und der zweite Zeiger SC wieder identisch sind. Dieser
Fall kann von der Software 14 durch rechtzeitiges Anfügen weiterer Daten
und entsprechendes Versetzen des ersten Zeigers SV vermieden werden,
was angesichts der Puffergröße von 32
MB auch mit einem nicht echtzeitfähigen Betriebssystem unkritisch
möglich
ist. Anfügen
weiterer Daten und entsprechendes Versetzen des ersten Zeigers SV
ist der Software 14 unabhängig von den Lese-, Weiterzähl-, und Übertragungsvorgängen der
Steuereinheit 11 möglich,
so dass abgesehen vom synchronisierten Zugriff über den Systembus 8 keine
Wartezeiten entstehen.
-
In
entsprechender Weise erkennt die Steuereinheit 11 anhand
der Abweichung zwischen erstem Zeiger RV und zweitem Zeiger RC,
dass ein freier Pufferbereich D vorliegt. Der Pufferbereich E ist
noch nicht zum Empfang freigegeben. Sobald vom Peripheriegerät über den
internen Pufferspeicher Daten, die der Software 14 zu übertragen
sind, eingetroffen sind, wird die Steuereinheit 11 diese
Daten selbständig
in den Schreibpuffer 17 schreiben und den zweiten Zeiger
RC entsprechend der Anzahl der geschriebenen Dateneinheiten weiterzählen. Prinzipiell
wiederholt sie diese Schritte bis keine Daten mehr im internen Pufferspeicher
vorhanden sind oder bis der erste Zeiger RV und der zweite Zeiger
RC wieder identisch sind.
-
Dieser
Fall kann von der Software 14 durch rechtzeitiges Auslesen
der Daten aus dem Schreibpuffer 17 und Freigeben des ausgelesenen
Bereichs durch entsprechendes Versetzen des ersten Zeigers RV vermieden
werden. Auch dies ist angesichts der Puffergröße von 32 MB mit einem nicht
echtzeitfähigen
Betriebssystem unkritisch möglich.
Das Auslesen der Daten und entsprechendes Versetzen des ersten Zeigers
RV ist der Software 14 unabhängig von den Übertragungs-,
Schreib- und Weiterzählvorgängen der
Steuereinheit 11 möglich,
so dass abgesehen vom synchronisierten Zugriff über den Systembus 8 keine
Wartezeiten entstehen. Eine erneute Synchronisation zwischen Steuereinheit 11 und
Software 14 nicht notwendig.
-
In 5 ist
ein späterer
Zustand gezeigt, in dem die Steuereinheit 11 bereits Daten
aus dem Lesepuffer 16 gelesen, den zweiten Zeiger SV entsprechend
weitergezählt
und die betreffenden Daten zum Peripheriegerät 10 übertragen
hat. Durch das Weiterzählen
des zweiten Zeigers SV hat sich ein Pufferbereich C gebildet, in
dem bereits übertragene,
aber noch nicht von der Software 14 ausgelesene Daten enthalten
sind. Dieser Pufferbereich C ist Teil des Pufferbereichs B, auf
den die Software 14 beliebig zugreifen und weitere Daten
anfügen
kann. Der Pufferbereich B hat sich also unter Berücksichtigung
des Pufferumlaufs entsprechend nach hinten vergrößert. Daneben hat die Steuereinheit 11 bereits
Daten, die sie vom Peripheriegerät 10 erhalten
hat, in den Schreibpuffer 17 geschrieben und den zweiten
Zeiger RC entsprechend weitergezählt.
Dadurch hat sich ein Pufferbereich F gebildet, in dem die bereits übertragenen,
aber noch nicht von der Software ausgelesenen Daten enthalten sind.
Da dieser Pufferbereich F ebenfalls nicht zum Beschreiben freigegeben ist,
kann er als Teil des Pufferbereichs E angesehen werden.
-
6 zeigt
einen weiteren Zustand, in dem die Software 14 weitere
zu übertragende
Daten in dem Lesepuffer 16 abgelegt und durch entsprechendes
Versetzen des ersten Zeigers SC den Pufferbereich A auf diese Daten
erweitert hat. Außerdem
hat die Software 14 die empfangenen Daten aus dem Pufferbereich
F ausgelesen und den ersten Zeiger RV entsprechend versetzt. Dabei
sind die ersten Zeiger SV, RV einmal um das Ende der Ringpuffer 16, 17 gelaufen.
In derselben Zeit hat die Steuereinheit 11 weitere Daten
vom Peripheriegerät 10 empfangen dem
Pufferbereich F angefügt
und den zweiten Zeiger RC entsprechend weitergezählt. Im Ergebnis nimmt der
Pufferbereich C nun den gesamten Pufferbereich B ein. Ebenso nimmt
der Pufferbereich F nun den gesamten Pufferbereich E ein. Dies ist
eine Folge davon, dass die Puffer 16, 17 erst
in diesem Zustand beide jeweils vollständig mit Daten gefüllt sind.
-
Durch
das Weiterzählen
der zweiten Zeiger SC, RC stellt die Steuereinheit 11 der
Software 14 kontinuierlich den Fortschritt der Übertragung
vom Steuerrechner 1 zum Peripheriegerät 10 zum Abruf bereit,
wobei die Zwischenspeicherung im internen Pufferspeicher der Peripherieschnittstelle 4 nicht
berücksichtigt
wird. Durch das Entgegennehmen der ersten Zeiger SV, RV durch die
Steuereinheit 11 ist ihr unabhängig von den Schreib-, Lese-
und Übertragungsvorgängen der
Fortschritt der Bearbeitung des betreffenden Puffers 16, 17 durch
die Software 14, nämlich
das Anfügen
beziehungsweise Auslesen von Daten, mitteilbar. Auf aufwendige,
zeitkritische Unterbrechungsanforderungen kann im Prinzip verzichtet werden,
so dass das zeitliche Verhalten der Software 14 wesentlich
lockerer gestaltet werden kann als im Stand der Technik. Dadurch
wird beispielsweise die Interaktion mit einem Benutzer erheblich
verbessert, weil die Software 14 auf eine zügige Reaktion
auf Bedienungshandlungen des Benutzers optimiert werden kann.
-
Wenn
einer der zweiten Zähler
SV, RV beim Weiterzählen
den Wert des zugehörigen
ersten Zählers
SC, RC erreicht, ist es dennoch denkbar, dass die Steuereinheit 11 eine
Unterbrechungsanforderung an den Steuerrechner 1, also
an die Zentraleinheit 2, ausgibt. Daraufhin kann eine vorbestimmte Routine
der Software 14 ausgeführt
werden, um einen drohenden Datenverlust beziehungsweise ein drohendes
Aussetzen der Übertragung
durch Anfügen
von zu übertragenden
Daten oder durch Auslesen von übertragenen
Daten und entsprechenden Versetzen des betreffenden ersten Zeigers
SV, RV abzuwenden. Durch die zeitliche Flexibilität des Verfahrens
wird dieser Fall lediglich bei planmäßigem Übertragungsende auftreten.
Die Unterbrechungsanforderung kann so zur Anzeige des Übertragungsendes
dienen.
-
Mit
dem erfindungsgemäßen Verfahren
und der Peripherieschnittstelle 4 ist im Vergleich zur
von der Zentraleinheit 2 herkömmlich per Unterbrechungsanforderung
verwalteten DMA-Datenübertragung
eine etwa dreifache Datenübertragungsgeschwindigkeit
möglich.
-
Die
Erfindung kann in verschiedenen Anwendungsbereichen in Laser-Scanning-Mikroskop-Systemen eingesetzt
werden. Mit einem Steuerrechner 1 und entsprechend konfigurierter
Peripherieschnittstelle 4 ist es zu Testzwecken oder zur
Fehlersuche im Rahmen der LSM-Entwicklung
möglich, jede
beliebige Mikroskop-Hardware in Betrieb zu nehmen und zu prüfen. Es
ist lediglich eine Anpassung der Applikationssoftware 14 notwendig.
Alternativ ist es möglich,
im Wartungsbereich ohne den bisher erforderlichen Hardwareaufwand
in einem bestehenden LSM-System mit einzelnen Komponenten zu kommunizieren,
neue Softwareversionen einzuspielen oder fehlerhafte Komponenten
zu identifizieren. Alternativ kann die Erfindung im regulären Betrieb
in Produktivsystemen verwendet werden, um einen hohen Datendurchsatz
bei geringem Kostenaufwand mit einem nicht echtzeitfähigen Betriebssystem zu
erzielen.
-
- 1
- Steuerrechner
- 2
- Zentraleinheit
- 3
- Arbeitsspeicher
- 4
- Peripherieschnittstelle
- 5
- Brückenbaustein
- 6
- Prozessorbus
- 7
- Speicherbus
- 8
- Systembus
- 9
- Peripheriebus
- 10
- Peripheriegerät
- 11
- Steuereinheit
- 12
- Brückenbaustein
- 13
- Zwischenbus
- 14
- Software
- 15
- Softwarelogik
- 16
- Lesepuffer
- 17
- Schreibpuffer