next up previous contents
Next: Die Datenanalyse Up: Das Datenaufnahmesystem Previous: Die Online-Reduktion der Driftkammerdaten

Das Datenaufnahmesystem von Phase2 des 4 tex2html_wrap_inline1989 -Detektors

Die im CDC-VME-System realisierte parallele asynchrone Verarbeitung vieler Subevents gleichzeitig, macht es notwendig die Subevents der anderen Subsysteme CAMAC und FASTBUS zwischenzuspeichern und dann die kompletten Ereignisse synchron zusammenzusetzen. Gerade dieses ``Pipelining'' ist im TDAS von Phase1 mit seiner streng synchronen Auslese nicht implementiert.

Dieses Pipelining wurde für die VME-Komponente des bei der GSI entwickelten Datenaufnahmesystems GOOSY [Ess91a] verwirklicht. Hier wird für jedes Subsystem ein eigener Frontendprozessor (FEP) vom Typ FIC8230 verwendet, der die Subevents nacheinander in einer internen Queue speichert. Der ebenfalls auf einem FIC8230 arbeitende Eventbuilder setzt dann anhand der Subeventnummern synchron die vollständigen Ereignisse zusammen und transferiert sie in Form von GOOSY-Pufferngif über ein HVR-Interface zu einer DEC-Microvax, wo sie auf einem Exabyte Laufwerk archiviert werden. Gesteuert wird dieses System vom Transportmanager, einem auf einer VAX residierenden Prozeß. Die Kommunikation zwischen dem Transportmanager und dem VME-System erfolgt durch eine E5, über die auch die Programme in die FIC8230 geladen werdengif.

Problematisch beim Pipelining ist, daß alle Subsysteme weitgehend unabhängig voneinander arbeiten und die Zugehörigkeit der Subevents zum selben Ereignis vom Eventbuilder nur anhand einer Subeventnummergif entschieden werden kann. Geht ein Trigger für ein Subsystem verloren, werden die Subevents später falsch kombiniert. Ein solcher Fehler kann vom Eventbuilder prinzipiell erst diagnostiziert werden, wenn die Pipeline geleert wird und dann Subevents fehlengif. Dies ist insofern problematisch, da im Experiment angestrebt wird, immer Ereignisse in der Pipeline zu haben und ein aufgetretener Fehler dadurch erst sehr spät bemerkt wirdgif.

  figure236
Abbildung:   Schematisches Bild des Datenaufnahmesystems für den 4 tex2html_wrap_inline1989 -Detektor: Die Daten der einzelnen Subsysteme CAMAC, FASTBUS und des VME-Systems für die CDC werden von den Frontendprozessoren (FEPs) des GOOSY-Systems gesammelt. Sobald alle Subevents eines Ereignisses in den FEPs vorhanden sind, wird das Ereignis vom GOOSY-Eventbuilder zusammengesetzt und dann vom TDAS-System, das in Abbildung 2.10 skizziert ist, auf einem lokalen Exabyte-Laufwerk archiviert. Die angestrebte Datenrate von 1MB/sek machte die parallele Archivierung mit zwei TDAS-Systemen notwendig.

Der Triggersynchronisation kommt daher eine besondere Bedeutung zu. Zu diesem Zweck wurde bei der GSI der Triggerbus entwickelt [Ess91b]. Es handelt sich um FASTBUS bzw. CAMAC Modulegif, die untereinander über einen schnellen 16Bit-Bus verbunden sind. Der Trigger wird von einem vorher mit Software konfigurierten Master-Modul an die anderen Triggerbus-Module weitergegeben, die ihrerseits einen Interrupt im jeweiligen Ausleseprozessor auslösen. Zusätzlich ermöglicht dieser Triggerbus die Definition von 15 verschiedenen Readout-Typen, die an den Ausleseprozessor übermittelt werden. Ist die individuelle Auslese beendet, setzt der Prozessor die Totzeit in ''seinem'' Triggerbus-Modul zurück. Erst wenn in allen Triggerbus-Modulen die Totzeit zurückgenommen wurde, wird der Trigger vom Master-Modul wieder freigegeben.

Das schließlich realisierte Datenaufnahmesystem für den 4 tex2html_wrap_inline1989 -Detektor ist in Abbildung 2.12 skizziertgif. Insgesamt mußten zwei CAMAC-Crates (Parabola, Scaler), drei FASTBUS-Crates (PLAWA, Zero Degree, Barrel) und das VME-System der CDC in den Datenstrom integriert werden. Von diesen befanden sich, wie durch die Umrahmung angedeutet, das FASTBUS-Crate des Barrels und das VME-System der CDC direkt am Detektor im Cave. Das zum Datentransfer nötige 50M lange VSB-Kabel reduzierte die maximal mögliche Übertragungsrate auf ca. 1MB/sek.

Die Auslese der CAMAC-Crates wird durch Rechner vom Typ CVI bewerkstelligt. Das Betriebssystem der CVIs ist pSOS, weshalb die Ausleseprogramme wie die GOOSY-Software für die FIC8230 unter VMS entwickelt und kompiliert werden müssen. Die Programme werden wie durch die punktierten Pfeile angedeutet von einer VAX über eine Terminalleitung in den CVI geladen.

Die FASTBUS-Crates werden durch Aleph-Eventbuilder (AEB) ausgelesen. Sie führen nach der Auslese eine erste Reduktion der Daten durch Subtraktion einer Schwelle (Pedestal) durch. Da sie unter dem Betriebssystem OS9 arbeiten, konnte eine Auslesesoftware implementiert werden, die auch als eigenständiges Datenaufnahmesystem fungieren kann. Durch die Implementierung von TCP/IP ist mit diesen Rechnern ein Transfer von Subevents an Analyse-Workstations möglichgif. Auch das im vorigen Kapitel beschriebene VME-System der CDC läßt eine solche Datenübertragung zugif.

Der Trigger wird durch Triggerbus-Module an die CAMAC und FASTBUS Systeme distributiert. Da die VME-Version zum Zeitpunkt dieses Experiments noch nicht verfügbar war, wurde der Trigger direkt an das Flash-ADC-System der CDC weitergegeben.

Die zentrale Datenaufnahme befindet sich in einem VME-Crate, das durch den Rahmen in Abbildung 2.12 angedeutet ist. Das Kopieren der Daten aus den Subsystemen und das Zusammensetzen der Ereignisse wird von der schon beschriebenen GOOSY-Komponente übernommen. Durch eine Modifikation der Software war es möglich, mehr als einen Ausleseprozessor mit einem Frontendprozessor (FEP) zu verbinden. Aufgrund des Betriebssystems pSOS müssen die Programme der FEPs und des GOOSY-Eventbuilders von einer VAX geladen werden. Dies geschieht, wie die punktierten Pfeile andeuten über eine E5 mit Ethernet Adapter.

Nachdem der GOOSY-Eventbuilder aus den Subevents in den Frontendprozessoren ein komplettes Ereignis erzeugt hat, wird dieses in der vorher beschriebenen Weise von TDAS weiterverarbeitet. So konnte die Funktionalität von TDAS beibehalten und die gesamte Online-Datenanalyse unverändert übernommen werden. TDASacquire hat im neuen System nicht mehr die Funktion eines Eventbuilders sondern ist nunmehr die Schnittstelle zwischen GOOSY und TDAS.

Diese prinzipiell andere Funktion von TDASacquire machte eine Änderung für die Erzeugung des Parameterevents notwendig. Da TDASacquire keinen direkten Zugriff mehr auf die Ausleseprozessoren über ein Dual-Ported-Memory hatgif, können die benötigten Parameter nicht mehr direkt angefordert werden. Dieses Problem wurde im Rahmen eines Server-Client Konzepts gelöst.

Auf den Rechnern, die Daten für das Parameterevent liefern, arbeitet ein Server-Prozeß. Am Beginn und Ende eines Runs wird von TDASacquire nacheinander eine TCP/IP-Verbindung zu den jeweiligen Rechnern aufgebaut und die erforderlichen Daten werden transferiert. Hierfür wurde ein Softwarepaket entwickelt, daß das Programmieren eines solchen Serverprozesses erlaubt, ohne eine genaue Kenntnis der zugrunde liegenden TCP/IP-Programmierung zu besitzen. Mit diesem Konzept können jetzt alle Rechner, die über eine TCP/IP-Implementierung verfügen, Daten für das Parameterevent bereitstellen.

Die angestrebte Datenrate von 1MB/sek machte die Archivierung auf zwei Exabyte-Laufwerken mit je 500kB/sek notwendig. Es müssen daher zwei CPUs zur Archivierung eingesetzt werden. Dies bedeutet aber auch zwei unabhängig voneinander arbeitende TDAS-Systeme, die koordiniert werden müssen. Die Koordination erfolgt über eine Liste im GOOSY-Eventbuilder, in die sich jedes aktive TDAS einträgtgif. Der GOOSY-Eventbuilder verteilt die Daten spillweise an die jeweils aktiven TDAS-CPUs. Über diese Liste werden auch die TDASacquire-Prozesse über die Anzahl der aktiven TDAS-Systeme informiert, da die erforderlichen Aktionen für einige Kommandos je nach Anzahl der aktiven TDAS-Systeme durchaus verschieden sind.

Das gesamte Datenaufnahmesystem wird im laufenden Betrieb von nur zwei Konsolen, für jedes aktive TDAS-System eine, gesteuert. Die eben geschilderte selbstständige Konfiguration auf die Anzahl der aktiven TDAS-Systeme macht beide Konsolen gleichberechtigt und eine bestimmte Reihenfolge bei der Benutzung unnötig. Die Steuerung der GOOSY-Komponente, die im GOOSY vom Transportmanager übernommen wird, wurde im TDASacquire-Prozeß implementiert. Nur auf diese Weise können die von TDASarchive getriggerten automatischen Runwechsel ausgeführt werden.

Um das oben geschilderte noch einmal kurz zusammenzufassen: Zur Durchführung der Experimente mit Phase2 des 4 tex2html_wrap_inline1989 -Detektors war es notwendig, ein spezielles Datenaufnahmesystem zu entwickeln, mit dem eine Rate von 1MB/sek archiviert werden kann. Dies wird durch massive Pufferung der Daten erreicht, die während des Spills mit einer Rate von 2MB/sek anfallen. Die extrem unterschiedliche Verarbeitungszeit der Daten der einzelnen Subdetektoren wurde durch ''Pipelining'' aufgefangen. Das System läßt sich leicht konfigurieren und die Subsysteme können zu Testzwecken als eigenständige Datenaufnahmesysteme fungieren. Es können auf allen Ebenen Daten über eine TCP/IP-Verbindung an Analyse-Workstations transferiert werden. Aus allen Rechnern, die über eine TCP/IP-Implementierung verfügen, können Daten in den Datenstrom einfließen. Unter Experiment-Bedingungen konnten bisher Datenraten von 600kB-700kB und Ereignisraten bis 40Ereignisse pro Sekunde erreicht werden.


next up previous contents
Next: Die Datenanalyse Up: Das Datenaufnahmesystem Previous: Die Online-Reduktion der Driftkammerdaten

Chris Pinkenburg
Fri Aug 23 16:35:45 CST 1996