DE102008009634A1 - Peripherieschnittstelle und Verfahren zur Datenübermittlung, insbesondere für Laser-Scanning-Mikroskop - Google Patents

Peripherieschnittstelle und Verfahren zur Datenübermittlung, insbesondere für Laser-Scanning-Mikroskop Download PDF

Info

Publication number
DE102008009634A1
DE102008009634A1 DE102008009634A DE102008009634A DE102008009634A1 DE 102008009634 A1 DE102008009634 A1 DE 102008009634A1 DE 102008009634 A DE102008009634 A DE 102008009634A DE 102008009634 A DE102008009634 A DE 102008009634A DE 102008009634 A1 DE102008009634 A1 DE 102008009634A1
Authority
DE
Germany
Prior art keywords
data
control computer
buffer
peripheral interface
control unit
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.)
Pending
Application number
DE102008009634A
Other languages
English (en)
Inventor
Andreas Kühm
Nico Presser
Gunter MÖHLER
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.)
Carl Zeiss Microscopy GmbH
Original Assignee
Carl Zeiss MicroImaging GmbH
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 Carl Zeiss MicroImaging GmbH filed Critical Carl Zeiss MicroImaging GmbH
Priority to DE102008009634A priority Critical patent/DE102008009634A1/de
Priority to US12/379,193 priority patent/US8214561B2/en
Publication of DE102008009634A1 publication Critical patent/DE102008009634A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

Bekannte Peripherieschnittstellen für Laser-Scanning-Mikroskope erzeugen auf der Seite des Steuerrechners einen hohen Bedienaufwand in Form von kurzer Reaktionszeit der Treibersoftware, gepaart mit häufigen Unterbrechungsanforderungen. Reagiert die Treibersoftware zu langsam, kommt kein konsistenter Steuerungsdatenstrom zustande beziehungsweise eingehende Daten gehen verloren. Die Erfindung soll insbesondere bei einem nicht echtzeitfähigen Betriebssystem des Steuerrechners eine lückenlose Datenübertragung mit hoher Übertragungsgeschwindigkeit unter geringem Aufwand ermöglichen. Bei der Peripherieschnittstelle (4), aufweisend einen Rechneransc (1), einen Peripherieanschluss für ein Peripheriegerät (10) und eine Steuereinheit (11), welche zur unidirektionalen Übertragung einer vorgebbaren Anzahl von Daten vom Steuerrechner (1) zum Peripheriegerät (10) und/oder umgekehrt über den Systembus (8) auf einen ihr vorgebbaren Arbeitsspeicherbereich des Steuerrechners (1), der als Puffer (16, 17) dient, zugreift, stellt die Steuereinheit (11) dem Steuerrechner (1) einen Fortschritt der Übertragung zum Abruf bereit, wobei der Steuereinheit (11) vom Steuerrechner (1) 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. Anbindung eines Laser-Scanning-Mikroskops an einen Steuerrechner.

Description

  • 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

Claims (18)

  1. Peripherieschnittstelle (4), aufweisend einen Rechneranschluss für einen Systembus (8) eines Steuerrechners (1), einen Peripherieanschluss für ein Peripheriegerät (10) und eine Steuereinheit (11), welche zur unidirektionalen Übertragung einer vorgebbaren Anzahl von Daten vom Steuerrechner (1) zum Peripheriegerät (10) und/oder umgekehrt über den Systembus (8) auf einen ihr vorgebbaren Arbeitsspeicherbereich des Steuerrechners (1), der als Puffer (16, 17) dient, zugreift, dadurch gekennzeichnet, dass die Steuereinheit (11) dem Steuerrechner (1) einen Fortschritt der Übertragung zum Abruf bereitstellt und dass der Steuereinheit (11) vom Steuerrechner (1) 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.
  2. Peripherieschnittstelle (4) nach Anspruch 1, dadurch gekennzeichnet, dass der Steuereinheit (11) von dem Steuerrechner (1) ein Ziel-Arbeitsspeicherbereich als Schreibpuffer (17) mitteilbar ist und dass die Steuereinheit (11) eine Anzahl von vom Peripheriegerät (10) übertragenen Daten in den Schreib-Arbeitsspeicherbereich des Steuerrechners (1) schreibt, wobei ihr als Fortschritt der Pufferbearbeitung eine Obergrenze für zu übertragende Daten mitteilbar ist.
  3. Peripherieschnittstelle (4) nach Anspruch 2, dadurch gekennzeichnet, dass die Obergrenze unabhängig vom den Schreibvorgang und insbesondere wiederholt erweiterbar ist, woraufhin die Steuereinheit (11) das Schreiben bei Bedarf bis zur erweiterten Obergrenze ausdehnt.
  4. Peripherieschnittstelle (4) nach Anspruch 1, dadurch gekennzeichnet, dass der Steuereinheit (11) von dem Steuerrechner (1) ein Quell-Arbeitsspeicherbereich als Lesepuffer (16) mitteilbar ist und dass der Steuereinheit (11) als Fortschritt der Pufferbearbeitung eine Position von zum Peripheriegerät (10) zu übertragenden Daten mitteilbar ist, wobei sie die Daten aus dem Quell-Arbeitsspeicherbereich liest und über den Peripherieanschluss überträgt.
  5. Peripherieschnittstelle (4) nach Anspruch 4, dadurch gekennzeichnet, dass die Position der zu übertragenden Daten unabhängig von dem Lesevorgang und insbesondere wiederholt erweiterbar ist, woraufhin die Steuereinheit (11) das Lesen und Übertragen auf die erweiterte Position von Daten ausdehnt.
  6. Peripherieschnittstelle (4) nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Steuereinheit (11) den jeweiligen Arbeitsspeicherbereich als Ringpuffer anspricht.
  7. Peripherieschnittstelle (4) nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die Steuereinheit (11) für einen Lesepuffer (16) – als Mitteilung über die Anzahl der zu übertragenden Daten einen ersten Zeiger (SV) hinter ein Ende der noch zu übertragenden Daten von dem Steuerrechner (1) entgegennimmt und – dem Steuerrechner (1) als Mitteilung über den Fortschritt einen zweiten Zeiger (SC), den sie beim Lesevorgang weiterzählt, auf einen Beginn der noch zu sendenden Daten zum Abruf bereitstellt.
  8. Peripherieschnittstelle (4) nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die Steuereinheit (11) für einen Schreibpuffer (17) – als Mitteilung über die Obergrenze der zu übertragenden Daten von dem Steuerrechner (1) einen ersten Zeiger (RV) hinter ein Ende eines freien Pufferbereichs entgegennimmt und – dem Steuerrechner (1) als Mitteilung über den Fortschritt einen zweiten Zeiger (RC), den sie beim Schreibvorgang weiterzählt, auf einen Beginn der bereits geschriebenen Daten zum Abruf bereitstellt.
  9. Peripherieschnittstelle (4) nach Anspruch 7 oder 8, dadurch gekennzeichnet, dass die Steuereinheit (11) für einen der ersten Zeiger (SV, RV) ein jeweiliges, über den Systembus (8) beschreibbares, insbesondere auch auslesbares, Register und für einen der zweiten Zeiger (SC, RC) ein jeweiliges, über den Systembus (8) auslesbares Register bereitstellt.
  10. Peripherieschnittstelle (4) nach einem der vorhergehenden Ansprüche, gekennzeichnet durch einen integrierten Zusatzarbeitsspeicher, der anstelle des Arbeitsspeichers (3) des Steuerrechners (1) als Puffer für die Übertragung dient.
  11. Verfahren zum unidirektionalen Übermitteln von Daten von einem Steuerrechner (1) zu einem Peripheriegerät (10) und/oder umgekehrt, wobei mittels einer Zentraleinheit (2) des Steuerrechners (1) folgende Schritte durchgeführt werden: – Mitteilen eines reservierten unverschieblichen, nicht auslagerbaren Bereichs eines Arbeitsspeichers des Steuerrechners (1) an die Peripherieschnittstelle (4), – wenn an das Peripheriegerät (10) zu übertragenden Daten identifiziert werden: Schreiben der zu übertragenden Daten in den reservierten Speicherbereich angrenzend an noch nicht übermittelte Daten und Mitteilen einer Position, insbesondere der Endadresse (SV), der geschriebenen Daten als Bearbeitungsfortschritt an die Peripherieschnittstelle (4), – wenn anhand eines von der Peripherieschnittstelle (4) bereitgestellten Übertragungsfortschritts (RC) von dem Peripheriegerät übertragene Daten in dem reservierten Speicherbereich identifiziert werden: Lesen der übertragenen Daten aus dem reservierten Speicherbereich und Mitteilen einer Position der noch nicht gelesenen Daten, insbesondere der Anfangsadresse (RV), als Bearbeitungsfortschritt an die Peripherieschnittstelle.
  12. Verfahren nach Anspruch 11, wobei mittels einer Steuereinheit (11) der Peripherieschnittstelle (4) von dem Steuerrechner (1) ein Ziel-Arbeitsspeicherbereich als Schreibpuffer (17) entgegengenommen wird und eine Anzahl von vom Peripheriegerät (10) übertragenen Daten in den Schreib-Arbeitsspeicherbereich des Steuerrechners (1) geschrieben wird, wobei als Fortschritt der Pufferbearbeitung eine Obergrenze (RV) 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 (RV) ausgedehnt wird.
  13. Verfahren nach Anspruch 11 oder 12, wobei mittels einer Steuereinheit (11) der Peripherieschnittstelle (4) von dem Steuerrechner (1) ein Quell-Arbeitsspeicherbereich als Lesepuffer (16) entgegengenommen wird, und eine Position (SV) von zum Peripheriegerät (10) zu übertragenden Daten als Fortschritt der Pufferbearbeitung unabhängig von dem Lesevorgang und insbesondere wiederholt erweitert entgegengenommen wird, wobei die Daten aus dem Quell-Arbeitsspeicherbereich gelesen und über den Peripherieanschluss übertragen werden und bei Mitteilung einer erweiterten Position (SV) das Lesen und Übertragen auf die erweiterte Anzahl von Daten ausgedehnt wird.
  14. Computerprogramm, eingerichtet zur Durchführung eines Verfahrens nach einem der Ansprüche 11 bis 13.
  15. Verfahren zum Betrieb einer Peripherieschnittstelle (4), aufweisend einen Rechneranschluss für einen Systembus (8) eines Steuerrechners (1), einen Peripherieanschluss für ein Peripheriegerät (10), wobei zur unidirektionalen Übertragung einer vorgebbaren Anzahl von Daten vom Steuerrechner (1) zum Peripheriegerät (10) und/oder umgekehrt über den Systembus (8) auf einen vorgebbaren Arbeitsspeicherbereich des Steuerrechners (1), der als Puffer (16, 17) dient, oder auf einen in die Peripherieschnittstelle (4) integrierten Zusatzarbeitsspeicher, der als Puffer (16, 17) dient, zugegriffen wird, wobei dem Steuerrechner (1) ein Fortschritt der Übertragung zum Abruf bereitgestellt und vom Steuerrechner (1) ein Fortschritt der Bearbeitung des Puffers unabhängig von der Übertragung entgegengenommen wird, wobei der Fortschritt der Bearbeitung beim Zugriff auf den Puffer berücksichtigt wird.
  16. Computer- oder FPGA-Programm, insbesondere Firmware, eingerichtet zur Durchführung des Verfahrens nach Anspruch 15.
  17. Steuerrechner (1), insbesondere programmtechnisch eingerichtet zur Durchführung eines Verfahrens nach einem der Ansprüche 11 bis 13, mit einer Peripherieschnittstelle (4) nach einem der Ansprüche 1 bis 10.
  18. Laser-Scanning-Mikroskop-System, aufweisend einen Steuerrechner nach Anspruch 17 und ein Laser-Scanning-Mikroskop mit mindestens einer Komponente, die über eine Peripherieschnittstelle (4) nach einem der Ansprüche 1 bis 10 mit dem Steuerrechner (1) verbindbar ist.
DE102008009634A 2008-02-15 2008-02-15 Peripherieschnittstelle und Verfahren zur Datenübermittlung, insbesondere für Laser-Scanning-Mikroskop Pending DE102008009634A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102008009634A DE102008009634A1 (de) 2008-02-15 2008-02-15 Peripherieschnittstelle und Verfahren zur Datenübermittlung, insbesondere für Laser-Scanning-Mikroskop
US12/379,193 US8214561B2 (en) 2008-02-15 2009-02-13 Peripheral interface and process for data transfer, especially for laser scanning microscopes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102008009634A DE102008009634A1 (de) 2008-02-15 2008-02-15 Peripherieschnittstelle und Verfahren zur Datenübermittlung, insbesondere für Laser-Scanning-Mikroskop

Publications (1)

Publication Number Publication Date
DE102008009634A1 true DE102008009634A1 (de) 2009-08-27

Family

ID=40896496

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008009634A Pending DE102008009634A1 (de) 2008-02-15 2008-02-15 Peripherieschnittstelle und Verfahren zur Datenübermittlung, insbesondere für Laser-Scanning-Mikroskop

Country Status (2)

Country Link
US (1) US8214561B2 (de)
DE (1) DE102008009634A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009040839A1 (de) 2008-09-30 2010-04-15 Carl Zeiss Microimaging Gmbh Peripherieschnittstelle, Datenstrom und Datenübertragungsverfahren
DE102014117381A1 (de) 2014-11-27 2016-06-02 Carl Zeiss Microscopy Gmbh Verfahren und Vorrichtung zur Weiterleitung von Daten

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8510482B2 (en) * 2010-04-27 2013-08-13 Freescale Semiconductor, Inc. Data processing system having peripheral-paced DMA transfer and method therefor
CN103064814A (zh) * 2011-10-21 2013-04-24 鸿富锦精密工业(深圳)有限公司 具有多路接口的电子装置
US9542347B2 (en) 2013-03-16 2017-01-10 Intel Corporation Host interface crossbar for sensor hub
US9430414B2 (en) 2013-03-16 2016-08-30 Intel Corporation Bus independent platform for sensor hub peripherals to provide coalescing of multiple reports
CN106982195A (zh) * 2016-01-19 2017-07-25 刘晓建 一种利用可编程逻辑器件实现单向信息传输的装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3290321B2 (ja) * 1994-12-20 2002-06-10 富士通株式会社 バッファ監視方法およびそのための装置
US5845153A (en) * 1995-07-07 1998-12-01 Integrated Device Technology, Inc. Memory interface for asynchronous transfer mode segmentation and reassembly circuit
US5960215A (en) * 1996-09-12 1999-09-28 Digital Equipment Corporation Transmit data FIFO for flow controlled data
US5966734A (en) * 1996-10-18 1999-10-12 Samsung Electronics Co., Ltd. Resizable and relocatable memory scratch pad as a cache slice
JPWO2004093446A1 (ja) * 2003-04-17 2006-07-13 富士通株式会社 圧縮データと非圧縮データを同時転送する場合のタスクスケジューリング方法
DE10332060A1 (de) * 2003-07-11 2005-02-03 Carl Zeiss Jena Gmbh Verfahren zum Betrieb eines Laser-Scanning-Mikroskops
GB0404696D0 (en) * 2004-03-02 2004-04-07 Level 5 Networks Ltd Dual driver interface
EP1669789B1 (de) * 2004-12-13 2011-07-06 Olympus Corporation Laserscan-Mikroskopgerät
US7496695B2 (en) * 2005-09-29 2009-02-24 P.A. Semi, Inc. Unified DMA
US20070174411A1 (en) * 2006-01-26 2007-07-26 Brokenshire Daniel A Apparatus and method for efficient communication of producer/consumer buffer status

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009040839A1 (de) 2008-09-30 2010-04-15 Carl Zeiss Microimaging Gmbh Peripherieschnittstelle, Datenstrom und Datenübertragungsverfahren
DE102014117381A1 (de) 2014-11-27 2016-06-02 Carl Zeiss Microscopy Gmbh Verfahren und Vorrichtung zur Weiterleitung von Daten
WO2016083378A1 (de) 2014-11-27 2016-06-02 Carl Zeiss Microscopy Gmbh Verfahren und vorrichtung zur weiterleitung von daten
US10579576B2 (en) 2014-11-27 2020-03-03 Carl Zeiss Microscopy Gmbh Method and apparatus for forwarding data

Also Published As

Publication number Publication date
US8214561B2 (en) 2012-07-03
US20090228618A1 (en) 2009-09-10

Similar Documents

Publication Publication Date Title
DE10085374B4 (de) Systemmanagementspeicher für die Systemmanagement-Interrupt-Behandler wird in die Speichersteuereinrichtung integriert, unabhängig vom BIOS und Betriebssystem
DE102008009634A1 (de) Peripherieschnittstelle und Verfahren zur Datenübermittlung, insbesondere für Laser-Scanning-Mikroskop
DE19983026B4 (de) Brücke zwischen zwei Bussen mit einem Puffer mit einer einstellbaren Mindestspeicherraummenge für ein Akzeptieren einer Schreibanforderung und Verfahren hierzu
EP0951682B1 (de) IO- UND SPEICHERBUSSYSTEM FÜR DFPs SOWIE BAUSTEINE MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN
DE10110504B4 (de) Verfahren und Computersystem zur Verwaltung von Threads
DE60003387T2 (de) Direktspeicherzugriffssteuerung in einem rechnersystem
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE3704056A1 (de) Peripherer dma-controller fuer datenerfassungssysteme
DE10348326A1 (de) Permanentspeichervorrichtung, die an eine Kommunikationsverbindung angeschlossen ist
DE602004010399T2 (de) Neuadressierbare virtuelle dma-steuer und statusregister
DE10213839A1 (de) DMA-Mechanismus für einen Hochgeschwindigkeitspaketbus
DE112012004926B4 (de) Gemeinsame Speichernutzung durch Prozessoren
DE602004008060T2 (de) Usb host controller mit speicher für transferdeskriptoren
DE60009817T2 (de) Gemeinsamen Speicher verteilende Multiprozessorvorrichtung
DE602004008712T2 (de) Speicherbandbreiten-Steuereinrichtung
DE2539929A1 (de) Rechnersystem mit busstruktur
DE60009618T2 (de) Multiprozessorvorrichtung mit einer Schnittstelle für einen gemeinsamen Speicher
EP1182560A2 (de) Prozessor-Speicher-System
DE60022186T2 (de) Unterhaltung einer entfernten Warteschlange unter Benutzung von zwei Zählern in der Verschiebesteuerung mit Hubs und Ports
EP1076856B1 (de) Cache-speicher für zweidimensionale datenfelder
DE2845218C2 (de) Mikroprogrammgesteuerte Ein-/Ausgabeeinrichtung und Verfahren zum Durchführen von Ein-/Ausgabeoperationen
DE60026836T2 (de) Anordnungen und verfahren für eine plattensteuerungspeicher architektur
DE102008001739B4 (de) Verfahren zum Steuern eines Zugriffs auf Bereiche eines Speichers aus mehreren Prozessen heraus und Kommunikations-Modul mit einem Nachrichten-Speicher zur Realisierung des Verfahrens
EP1308846B1 (de) Datenübertragungseinrichtung
DE10310340A1 (de) Datenzugriffsverfahren und System mit verteiltem, gemeinsam genutzten Speicher

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: CARL ZEISS MICROSCOPY GMBH, DE

Free format text: FORMER OWNER: CARL ZEISS MICROIMAGING GMBH, 07745 JENA, DE

Effective date: 20130204

R012 Request for examination validly filed
R012 Request for examination validly filed

Effective date: 20150209

R016 Response to examination communication