CH692310A5 - Verfahren zum Erzeugen eines Unterbruchsignals in einer Datenverarbeitungsanlage und Datenverarbeitungsanlage. - Google Patents

Verfahren zum Erzeugen eines Unterbruchsignals in einer Datenverarbeitungsanlage und Datenverarbeitungsanlage. Download PDF

Info

Publication number
CH692310A5
CH692310A5 CH00420/96A CH42096A CH692310A5 CH 692310 A5 CH692310 A5 CH 692310A5 CH 00420/96 A CH00420/96 A CH 00420/96A CH 42096 A CH42096 A CH 42096A CH 692310 A5 CH692310 A5 CH 692310A5
Authority
CH
Switzerland
Prior art keywords
data
interrupt
signal
control processor
locations
Prior art date
Application number
CH00420/96A
Other languages
English (en)
Inventor
Rodney Hugh Densham
William Kentish
Peter Charles Eastty
Original Assignee
Sony Uk Ltd
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 Sony Uk Ltd filed Critical Sony Uk Ltd
Publication of CH692310A5 publication Critical patent/CH692310A5/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Algebra (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)

Description


  



  Die vorliegende Erfindung bezieht sich allgemein auf Datenverarbeitungsanlagen. Aspekte der Erfindung befassen sich mit dem Feststellen und/oder Anzeigen von Vorkommnissen, die während des Betriebs solcher Anlagen auftreten können, und mit dem Timing von Operationen, die durch solche Anlagen ausgeführt werden. 



  Die verschiedenen Aspekte der Erfindung können, aber nicht ausschliesslich, auf dem Gebiet der digitalen Tondatenverarbeitung angewendet werden, wie sie beispielsweise durch das Signalverarbeitungsrack in einem Tonaufnahmestudio ausgeführt wird. Die Erfindung wird im Weiteren mit besonderem Bezug auf eine solche Anwendung illustriert, obwohl man sich bewusst sein muss, dass die Erfindung auch auf andere Datenverarbeitungsanlagen angewendet werden kann. 



  In einem Tonaufnahmestudio kommuniziert, wie dies durch das vereinfachte Blockdiagramm in Fig. 1 dargestellt ist, das Signalverarbeitungsrack 1 mit einer Bedienungskonsole 2 und ist, wie dies durch den LINK & I/O-Block 3 dargestellt ist, ebenfalls mit dem Studionetzwerk verbunden, um Ton- und Steuerdaten zwischen dem Signalverarbeitungsrack und den verschiedenen Eingangs-/Ausgangsvorrichtungen, zum Beispiel Lautsprecher, Mikrophone, DATs usw. auszutauschen, die an den Netzwerk-Link angeschlossen sind. Der Betrieb des Netzwerks wird an der Konsole oder am Mischpult 2 gesteuert, wobei der Datenaustausch zwischen Vorrichtungen im Netzwerk und die Implementierung der notwendigen Verarbeitung durch das Signalverarbeitungsrack aufgrund des Betriebs der Konsolensteuerungen ausgeführt werden. 



  Das Signalverarbeitungsrack 1 kann als in eine Steuerseite eingeteilt angesehen werden, die auf den Status der verschiedenen Steuerungen an der Konsole 2 reagiert, und in eine Tonverarbeitungsseite, welche die notwendigen Tonverarbeitungsfunktionen in Abhängigkeit von den Steuereinstellungen implementiert und Tondaten mit den Netzwerkvorrichtungen über den Link austauscht. 



  Bei einem Beispiel eines Signalverarbeitungsracks 1, auf das die Erfindung angewendet werden kann, wird die Verarbeitung von digitalen Tondaten durch eine parallele Verarbeitungsanordnung ausgeführt, wie dies in Fig. 2 der begleitenden Zeichnungen schematisch dargestellt ist. Fig. 2 zeigt eine Anordnung von sechs integrierten Signalverarbeitungsschaltungen (SPICs) 4, die mit A bis F bezeichnet sind. Die SPICs oder Datenprozessoren 4 sind mindestens elektrisch in einer rechteckigen Anordnung angeordnet, wobei jeder SPIC mit einem horizontalen Datenbus H und einem vertikalen Datenbus V verbunden ist. Jeder SPIC 4 ist eingerichtet, um mit jedem der zwei Busse, mit denen er verbunden ist, Daten auszutauschen, wobei jeder der horizontalen und vertikalen Busse H, V von einer Anzahl SPICs 4 geteilt wird. 



  Die parallele Verarbeitungsanordnung als Ganzes besteht natürlich aus einer wesentlich grösseren Anzahl SPICs, als in Fig. 2 abgebildet sind. Das Signalverarbeitungsrack 1 umfasst in Wirklichkeit bis zu 16 Karten, wobei jede Karte eine Anordnung von beispielsweise acht SPICs trägt. Die horizontalen und vertikalen Busse verbinden die Karten, sodass, elektrisch gesehen, die SPICs eine grosse rechteckige Anordnung bilden. Die Busse können in einer Schleife verbunden sein, mit periodischen Beschleunigungsregistern, zum Beispiel jede vierte Karte, um bidirektionale Kommunikation um die Schleife zu ermöglichen und damit die Verarbeitungsleistung der Anordnung zu steigern. 



  Die SPICs 4 in der Anordnung laufen synchron, wobei jeder SPIC in jeder Tonabtastperiode eine Sequenz Operationen ausführt in Übereinstimmung mit einer Sequenz Instruktionen, die in einem internen Speicher gespeichert ist. Die SPICs werden beim Einrichten mit den Instruktionssequenzen vorprogrammiert, sodass alle möglichen notwendigen Verarbeitungsoperationen durch die Anordnung implementiert werden können. Bei einem besonderen Beispiel wird jeder SPIC mit 512 Instruktionen vorprogrammiert, wobei aufeinander folgende Instruktionen zwecks Implementierung durch die SPICs in aufeinander folgenden Zyklen eines Taktsignals aus den internen Speichern gelesen werden. Ein Steuerprozessor (nicht gezeigt) ist auf jeder Karte vorhanden, um verschiedene Aspekte des Betriebs der SPICs auf dieser Karte zu steuern.

   In Betrieb laufen die SPICs synchron durch ihre Instruktionssequenzen unter Steuerung der Steuerprozessoren, wobei die Steuerprozessoren auf die Bedienerkonsole 2 reagieren, um zu bewirken, dass die SPICs die verschiedenen Verarbeitungsoperationen wie gewünscht ausführen. 



  Während des Betriebs der Anlage ist es notwendig, dass der Steuerprozessor, der eine Anordnung SPICs steuert, beim Auftreten gewisser Vorkommnisse alarmiert wird, zum Beispiel beim Auftreten eines Fehlerzustandes wie beispielsweise eine Signalüberlastung oder ein Paritätfehler. Als weiteres Beispiel kann ein Teil der vorprogrammierten Operation einiger SPICs das Implementieren von Timern für verschiedene Zwecke sein, zum Beispiel, um die Zeit einzustellen, während der ein Anzeiger auf der Bedienungskonsole aufleuchten muss, und der Steuerprozessor muss beim Ablaufen solcher Timer alarmiert werden, um die entsprechende Steuerfunktion auszuführen. Die SPICs können natürlich so konfiguriert sein, dass sie beim Eintreten solcher Vorkommnisse Signale an den Steuerprozessor übertragen.

   Da jedoch jeder SPIC während jeder Tonabtastperiode zahlreiche (zum Beispiel viele Hundert) Verarbeitungsoperationen durchführt, müssen die Aufgaben der Erzeugung solcher Signale und der Identifizierung der Quellen der Signale so einfach und leistungsfähig wie möglich implementiert sein, wenn eine Gesamtleistungsfähigkeit des Verarbeitungssystems erzielt werden soll. 



  Als Teil ihrer Funktion müssen die SPICs in der Lage sein, Tondaten in Übereinstimmung mit Steuersignalen zu verarbeiten, die sie über den Steuerprozessor von der Bedienungskonsole 2 empfangen, welche die Einstellung der verschiedenen Konsolensteuerungen anzeigen. Wenn zum Beispiel eine Steuereinstellung für den Signalpegel geändert wird, müssen die von den SPICs verarbeiteten Tonsignale mit verschiedenen Werten oder Koeffizienten multipliziert werden, um den wirklichen Tonsignalpegel zu ändern. Die Abtastfrequenz von Steuersignalen, welche von der Bedienungskonsole herstammen, ist im Allgemeinen beträchtlich tiefer als die Tonabtastfrequenz, zum Beispiel 1 kHz oder niedriger im Vergleich zu 50 kHz.

   Die Interpolation der Steuersignale ist deshalb notwendig, um eine graduelle Änderung des Wertes der Koeffizienten während den Mehrfachtonabtastungen innerhalb einer Periode der Steuersignalabtastfrequenz zu erhalten. Um dies zu implementieren, kann ein Koeffizientinterpolator mit jedem SPIC assoziiert sein. Der Steuerprozessor berechnet die Koeffizientdaten entsprechend den Steuersignalen von der Konsole und liefert die Koeffizientdaten periodisch dem Interpolator. Der Interpolator verwendet die Koeffizientdaten, um interpolierte Koeffizienten abzuleiten, die von den assoziierten SPICs verwendet werden. Die Periode, während der Koeffizienten interpoliert werden, wird durch ein Koeffizientabtastfrequenzsignal (CSR-Signal) bestimmt, das dem Interpolator zugeführt wird.

   In der Praxis ist eine Anzahl solcher CSR-Signale mit unterschiedlichen Taktfrequenzen im System vorhanden, sodass eine Interpolation entsprechend den verschiedenen CSR-Signalen für verschiedene Zwecke durchgeführt werden kann. 



  Im Allgemeinen müssen die vom Steuerprozessor berechneten Koeffizientdaten mehr als einem SPIC zugeführt werden, um die für die Verarbeitungsoperationen verwendeten Koeffizienten zu aktualisieren, und es ist wichtig zu gewährleisten, dass die neuen Koeffizientdaten den relevanten SPICs zugeführt werden, sodass diese damit beginnen, die neuen Koeffizientdaten während der gleichen Tonabtastperiode zu benützen. Zum Beispiel können die SPICs als Teil ihrer Funktion verschiedene vielstufige oder vielpolige Filter implementieren, und die aktualisierten Koeffizienten für diese Filter müssen synchron mit der Abtastung eingeführt werden, um Verzerrungen zu verhindern. Es ist somit notwendig, einen geeigneten Weg für das Timing der Aktualisierungen der Koeffizientdaten zu liefern, die den Interpolatoren zugeführt werden. 



  Entsprechend einem Aspekt der vorliegenden Erfindung wird ein Verfahren zum Erzeugen eines Unterbruchsignals in einer Datenverarbeitungsanlage zur Verfügung gestellt, wobei das Unterbruchsignal einem Steuerprozessor der Anlage zugeführt wird, um das Auftreten irgendeines einer Mehrzahl vorbestimmter Vorkommnisse in der Anlage anzuzeigen, wobei das Verfahren Folgendes umfasst: 



  Schreiben von Daten in mindestens einen Speicherort einer Mehrzahl Speicherortpaare der Anlage in Abhängigkeit des anzuzeigenden Vorkommnisses, wobei die Speicherortpaare in der Anlage für die entsprechenden Vorkommnisse vordefiniert sind; 



  Lesen der Daten aus den Speicherortpaaren; 



  Verarbeiten der aus jedem Speicherortpaar gelesenen Daten, um Unterbruchdaten zu erzeugen, die anzeigen, ob das assoziierte Vorkommnis aufgetreten ist, und im vorkommenden Fall Übertragen eines Unterbruchsignals an den Steuerprozessor; und 



  Schreiben der den Vorkommnissen entsprechenden Unterbruchdaten in entsprechende dritte Speicherorte, wobei die dritten Speicherorte im Steuerprozessor für diese Vorkommnisse vordefiniert sind; 



  wobei der Steuerprozessor beim Empfang eines Unterbruchsignals die Unterbruchdaten in den dritten Speicherorten liest, um das durch das Unterbruchsignal angezeigte Vorkommnis zu bestimmen. 



  Nach einem anderen Aspekt der vorliegenden Erfindung wird eine Datenverarbeitungsanlage zur Verfügung gestellt, umfassend:
 einen Steuerprozessor, der einen Unterbrucheingang aufweist, um ein Unterbruchsignal zu empfangen, das während des Betriebs der Anlage das Eintreten irgendeines einer Mehrzahl vorbestimmter Vorkommnisse anzeigt;
 Speichermittel, die eine Mehrzahl Speicherortpaare liefern, wobei jedes Paar für ein entsprechendes dieser Vorkommnisse vordefiniert ist;
 Mittel zum Schreiben von Daten in mindestens einen Speicherort eines solchen Paars, wenn ein assoziiertes Vorkommnis auftritt;
 Mittel zum Lesen von Daten aus den Speicherortpaaren;

   und
 Verarbeitungsmittel zum Verarbeiten der aus jedem Speicherortpaar gelesenen Daten, um Unterbruchdaten zu erzeugen, die an zeigen, ob das assoziierte Vorkommnis aufgetreten ist, und zum Schreiben der den Vorkommnissen entsprechenden Unterbruchdaten in entsprechende dritte Speicherorte der Speichermittel, wobei die Verarbeitungsmittel derart eingerichtet sind, dass sie ein Unterbruchsignal an den Unterbrucheingang des Steuerprozessors übertragen, wenn die Unterbruchdaten das Eintreten dieses Vorkommnisses anzeigen;
 wobei die dritten Speicherorte im Steuerprozessor für die entsprechenden Vorkommnisse vordefiniert sind, und wobei der Steuerprozessor derart eingerichtet ist, dass er bei Empfang eines Unterbruchsignals die Unterbruchdaten in den dritten Speicherorten liest, um das durch das Unterbruchsignal angezeigte Vorkommnis zu bestimmen. 



  Zum Beispiel kann ein Vorkommnis das Feststellen einer Signalüberlastung an einem bestimmten Punkt der Anlage sein, oder das Ablaufen einer vorbestimmten Zeitperiode, das durch einen im System implementierten Timer angezeigt wird. 



  Bei Ausführungen dieses Aspekts der Erfindung kann der Prozess zum wirklichen Erzeugen eines Unterbruchsignals ein Standardprozess sein, umfassend Lesen von Daten aus einem Speicherortpaar, Erzeugen der Unterbruchdaten und Übertragen eines Unterbruchsignals, wenn dieses von den Unterbruchdaten gebildet wird, und Schreiben der Unterbruchdaten in einen dritten Speicherort. Ob ein Unterbruchsignal wirklich erzeugt wird, hängt von den Daten ab, die aufgrund einer vorgängigen Verarbeitungsoperation in die Speicherortpaare geschrieben wurden. Da ausserdem die dritten Speicherorte mit bestimmten Vorkommnissen assoziiert sind, muss der Steuerprozessor beim Empfang eines Unterbruchsignals nur noch auf die vordefinierten dritten Speicherorte zugreifen, um von den in diesen Orten gespeicherten Unterbruchdaten zu bestimmen, welches Vorkommnis das Unterbruchsignal ausgelöst hat. 



  Nach einem anderen Aspekt der vorliegenden Erfindung wird eine Datenverarbeitungsanlage zur Verfügung gestellt, umfassend eine Anordnung von Datenprozessoren, von denen jeder eingerichtet ist, um eine Sequenz Operationen entsprechend einer Sequenz Instruktionen auszuführen, die in aufeinander folgenden Zyklen eines Taktsignals aus einem Programmspeicher des Datenprozessors gelesen werden, wobei die Datenprozessoren zum Austauschen von Daten über einen oder mehrere Datenbusse verbunden sind, wobei jeder Datenprozessor Folgendes umfasst:
 einen Paritätgenerator zum Anwenden von Parität auf Daten, die an diesen Bus abgegeben werden;
 einen Paritätprüfer, um die Parität der von einem solchen Bus empfangenen Daten zu prüfen, und zum Erzeugen eines Fehlersignals bei der Feststellung eines Paritätfehlers;

   und
 Registermittel, die zum Speichern einer Zählung eingerichtet sind, die den Zyklus des Taktsignals anzeigen, in dem ein Paritätfehler auftritt. 



  Nach diesem Aspekt der Erfindung, und obwohl die Datenprozessoren während jeder Datenabtastperiode zahlreiche Operationen durchführen können, wird beim Feststellen eines Paritätfehlers eine Zählung, die den Zyklus des Taktsignals anzeigt, in dem der Fehler aufgetreten ist, in den Registermitteln gespeichert, was die Identifizierung der Fehlerquelle sehr stark erleichtert. 



  Die Fehlersignale können einem Steuerprozessor zugeführt werden, der eingerichtet ist, um die in den Registermitteln eines Datenprozessors gespeicherte Zählung zu lesen, wenn ein von diesem Prozessor herstammendes Fehlersignal festgestellt wird. Wenn die Kommunikationen zwischen Datenprozessoren, die in unterschiedlichen Zyklen des Taktsignals stattfinden, im Steuerprozessor vordefiniert sind, dann kann der Steuerprozessor von der aus den Registermitteln gelesenen Zählung den bestimmten Datenprozessor identifizieren, der die Daten übertragen hat, welche den Fehler enthalten. 



  Nach einem weiteren Aspekt der Erfindung wird eine Datenverarbeitungsanlage zur Verfügung gestellt, umfassend eine Mehrzahl Datenprozessoren, wobei jeder Datenprozessor einen Interpolator einschliesst, der eingerichtet ist, um Koeffizientdaten zu empfangen und daraus interpolierte Koeffizienten zur Verwendung bei Verarbeitungsoperationen des Datenprozessors zu erzeugen;

   und einen Steuerprozessor zum Erzeugen der Koeffizientdaten, die den Interpolatoren zugeführt werden, wobei jeder Interpolator eingerichtet ist, um in Abhängigkeit von einer Mehrzahl Koeffizienttaktsignalen Koeffizienten zu erzeugen, wobei diese Taktsignale jedem der Datenprozessoren zugeführt werden, und wobei jeder der Datenprozessoren Mittel umfasst zum Erzeugen eines Timing-Unterbruchsignals in Abhängigkeit vom Status eines oder mehrerer dieser Taktsignale, wobei die Timing-Unterbruchsignale dem Steuerprozessor zugeführt werden, um die Versorgung der Interpolatoren mit aktualisierten Koeffizientdaten zeitlich zu steuern. 



  Ausführungen dieses Aspekts der Erfindung liefern passende Mittel, durch welche das geeignete Timing für Aktualisierungen der Koeffizientdaten, die den Interpolatoren zugeführt werden, festgelegt werden kann. 



  Datenverarbeitungsanlagen können natürlich einen oder mehrere der verschiedenen Aspekte der Erfindung verkörpern. Wo im weiteren Merkmale mit Bezug auf eine Anlage beschrieben werden, welche die Erfindung verkörpert, können entsprechende Merkmale nach einem Verfahren der Erfindung zur Verfügung gestellt werden, und umgekehrt. 



  Ausführungen der Erfindung werden im Folgenden als Beispiele beschrieben, wobei auf die begleitenden Zeichnungen Bezug genommen wird; darin zeigt: 
 
   Fig. 1 ein schematisches Blockdiagramm einer digitalen Tondatenverarbeitungsanlage; 
   Fig. 2 eine schematische Darstellung einer Anordnung von Datenprozessoren in der Anlage von Fig. 1; 
   Fig. 3a ein vereinfachtes Blockdiagramm, das die allgemeine Struktur eines Datenprozessors von Fig. 2 illustriert; 
   Fig. 3b einen Teil von Fig. 3a mit grösseren Einzelheiten; 
   Fig. 4 das allgemeine Format eines Instruktionswortes für den Datenprozessor von Fig. 3a; 
   Fig. 5 auf schematische Art den Datentransferprozess zwischen Prozessoren, die einen Datenbus in der Anordnung von Fig. 2 miteinander teilen;

   
   Fig. 6 mit grösseren Einzelheiten einen Teil der Struktur des Datenprozessors von Fig. 3a in Übereinstimmung mit einer bevorzugten Ausführung der Erfindung; 
   Fig. 7 ein Diagramm zum Erklären eines Unterbrucherzeugungsprozesses, der von der Anlage von Fig. 6 ausgeführt wird; 
   Fig. 8 eine schematische Darstellung eines Beispiels, wie der Unterbrucherzeugungsprozess von Fig. 7 in einem Datenprozessor verwendet werden kann; 
   Fig. 9 eine schematische Darstellung eines weiteren Beispiels, wie der Unterbrucherzeugungsprozess von Fig. 7 in einem Datenprozessor verwendet werden kann; 
   Fig. 10 mit grösseren Einzelheiten einen Teil der Anlage von Fig. 3 zum Implementieren der Paritätfehlerfeststellung in Übereinstimmung mit einer bevorzugten Ausführung der vorliegenden Erfindung;

   
   Fig. 11 das Format von Vorkommnis- und CSR-Signalen, das bei Ausführungen der Erfindung verwendet wird; 
   Fig. 12 mit grösseren Einzelheiten einen Interpolator des Datenprozessors von Fig. 3a; und 
   Fig. 13 eine schematische Darstellung der Timing-Unterbrucherzeugungsmittel einer bevorzugten Ausführung der Erfindung. 
 



  Fig. 3a ist ein vereinfachtes Blockdiagramm, das die allgemeine Struktur eines Datenprozessors oder SPIC 4 in der parallelen Anordnung von Fig. 2 zeigt, mit der die vorliegende Erfindung angewendet werden kann. Vor dem detaillierten Beschreiben bevorzugter Ausführungen der Erfindung wird die Grundstruktur und -operation des SPIC 4 beschrieben. 



  Der SPIC 4 umfasst einen Programm-RAM 5, in dem die Instruktionssequenz zur Steuerung des Betriebs des SPIC gespeichert sind. Der Programm-RAM 5 ist mit einem Adressenberechner 6 verbunden, der die Adresseingänge für einen Daten-RAM-Abschnitt erzeugt, welcher allgemein mit 7 bezeichnet ist, umfassend drei Daten-RAMs 7a, 7b und 7c mit entsprechenden Lese- und Schreibadresseingängen RA und WA und Dateneingänge D. Die drei Datenausgänge aus den Daten-RAMs 7 bilden drei der vier Eingänge in eine Multiplexeranordnung, die allgemein durch den MUX-Block 9 dargestellt ist. Der vierte Eingang 10 des MUX-Blocks 9 empfängt Koeffizienten (c) von einem Interpolator 11, wie dies oben erläutert wurde. Der MUX-Block 9 ist eingerichtet, um Verbindungen von jedem seiner vier Eingänge mit jedem seiner vier Ausgänge zu aktivieren, und zwar in Abhängigkeit von der ausgeführten Instruktion.

   Die oberen zwei Ausgänge des Multiplexers 9 bilden die beiden Eingänge zu einem Multiplizierer (Mult) 11a, dessen Ausgang mit einem Multiplizierschieber (Schiebe-Mult) 12 verbunden ist, der die Bitschiebung des Multipliziererausgangs ausführt. (Wenn zum Beispiel die Eingänge in den Multiplizierer 11a 32 Bit breit sind, kann der Ausgang des Mul tiplizierers bis zu 64 Bit sein, und der Multiplizierschieber 12 wählt dann die erforderlichen 32 Bit aus, die entsprechend der ausgeführten Instruktion seinem Ausgang zugeführt werden sollen. Der Ausgang des Multiplizierschiebers 12 wird einer Arithmetik-Logik-Einheit (ALU) 13 zugeführt. Ein Eingang des Multiplizierers 11 ist ebenfalls direkt mit einem Eingang des ALU 13 verbunden, ebenso der dritte Ausgang des Multiplexers 9.

   Der Ausgang des ALU 13 ist mit einem Eingang eines Multiplexers 14 verbunden, dessen Ausgang mit den Dateneingängen D der drei Daten-RAMs 7a, 7b und 7c verbunden ist. 



  Der vierte Ausgang 15 des Multiplexers 9 ist über einen Paritätgenerator 8, der Paritätbits für ausgehende Daten erzeugt, mit einem ersten und zweiten I/O-(Eingangs/Ausgangs-)Mittel 16H und 16V verbunden. Die I/O-Mittel 16H, 16V verbinden den Prozessor für die Datenübertragung mit dem horizontalen und vertikalen Datenbus H bzw. V. Wie in Fig. 3b detaillierter dargestellt ist, umfassen die I/O-Abschnitte 16H, 16V entsprechende Ausgangsdatenpfade 17H, 17V und entsprechende Eingangsdatenpfade 18H, 18V. Der Ausgang 15 des Multiplexers 9 ist mit den Ausgangsdatenpfaden 17H und 17V verbunden. Im Ausgangsdatenpfad 17V ist ein Register (V AUS REG) 19V und ein Ausgangstreiber 20V angeschlossen, dessen Ausgang mit dem vertikalen Bus (V-BUS) verbunden ist. Im Eingangsdatenpfad 18V ist der vertikale Bus über einen Eingangspuffer 21V mit einem Register (V EIN REG) 22V verbunden.

   Die Datenpfade 17H und 18H der I/O-Abschnitte 16H sind mit dem horizontalen Bus (H BUS) verbunden, und sind ähnlich konstruiert mit entsprechenden Registern H AUS REG und H EIN REG, 19H und 22H, einem Ausgangstreiber 20H und einem Eingangspuffer 21H. Die Ausgänge der Register 22H und 22V in den Eingangsdatenpfaden sind mit einer Paritätprüfeinheit 25 verbunden, in der die Paritätprüfung der vom Bus empfangenen Daten ausgeführt wird. Der Ausgang der Paritätprüfeinheit 25 bildet einen zweiten Eingang zum Multiplexer 14. 



  Jeder SPIC 4 in der Anordnung (Fig. 2) wird beim Einrichten programmiert, um während jeder Abtastperiode eine Sequenz Operationen auszuführen, und zwar entsprechend einer im Programm-RAM 5 gespeicherten Sequenz Instruktionen. In den zu beschreibenden Ausführungen kann jeder SPIC 4 512 solcher Instruktionen pro Tonabtastperiode implementieren. Während dem Einrichten werden die Instruktionen über einen Steuerprozessor in die Programm-RAMs 5 geschrieben, bei diesem Beispiel ein 68030-Prozessor 26, von denen es pro Karte des Signalverarbeitungsracks 1 (Fig. 1) einen geben kann. In Betrieb werden die 512 Instruktionen sequenziell aus dem Programm-RAM 5 gelesen, und zwar entsprechend dem Signal von einem Taktgeber 27, der 512 Taktzyklen oder "Ticken" pro Tonabtastperiode erzeugt. 



  Alle Taktgeber 27 sind synchronisiert und so geladen, dass sie die Tick-Zählung durch ein globales "Start Abtasttakt" beginnen, der auf der Tonabtastfrequenz läuft. Alle SPICs in der Anordnung progressieren somit während jeder Tonabtastperiode synchron durch ihre entsprechenden Instruktionssequenzen. 



  Die parallele Verarbeitungsanordnung als Ganzes liefert die Implementierung aller möglichen Verarbeitungsfunktionen, die in Abhängigkeit vom Einrichten des Studionetzwerks und der Steuereinstellungen an der Bedienungskonsole 1 erforderlich sein können. Um eine bestimmte Funktion ein- oder auszuschalten, oder um das Routing der Daten zu ändern, kann der Steuerprozessor 26 direkt in das Programm-RAM 5 schreiben, um die Zugriffadressen für die Daten-RAMs 7 zu ändern. Um zum Beispiel eine gegebene Funktion ein- oder auszuschalten, kann die Adresse, auf die durch eine Instruktion zugegriffen wird, die dieser Funktion entspricht, von einer Adresse, die verarbeitete Daten enthält, die benützt werden sollen, wenn die Funktion aktiv ist, in eine Adresse abgeändert werden, die unverarbeitete Daten enthält, die benützt werden sollen, wenn die Funktion ausgeschaltet ist.

   Der Steuerprozessor 26 ist ebenfalls mit einem Koeffizientinterpolator 11 verbunden, der Koeffizienten (c) erzeugt, die bei den Verarbeitungsoperationen des SPIC verwendet werden sollen, und zwar aus Koeffizientdaten, die vom Steuerprozessor 26 zugeführt wurden. Ein separater Interpolator 11 ist für jeden SPIC 4 vorgesehen. Der Betrieb der Interpolatoren wird weiter unten erläutert. Die durch den Interpolator 11 ausgegebenen Koeffizienten (c) werden dem Eingang 10 des Multiplexers 9 zugeführt. 



  Fig. 4 illustriert auf schematische Weise das allgemeine Format eines Instruktionswortes für die im Programm-RAM 5 gespeicherten Instruktionen. Dieses Instruktionswort ist 48 Bit lang. Die ersten acht Bit des Instruktionswortes bilden den Operationscode (OP-Code), der den Instruktionstypus anzeigt, zum Beispiel Addieren von Daten in zwei der Daten-RAMs 7, Multiplizieren von Daten in einem der Daten-RAMs mit einem Koeffizienten usw. Die nächsten 12 Bit des Instruktionswortes bilden Steuerdaten zum Steuern des internen Betriebs des SPIC, zum Beispiel zum Steuern des Einschaltens des MUX-Blocks 9 und Multiplexers 14, Aktivieren der Daten-RAMs 7, I/O-Zugänge, einschliesslich Aktivieren der Ausgangstreiber 20H, 20V der I/O-Abschnitte 16H, 16V usw. Die nächsten 28 Bit des Instruktionswortes sind in vier 7-Bit-Adressfelder aufgeteilt.

   Die ersten drei Adressfelder stellen Leseadressen für die drei Daten-RAMs 7a, 7b, 7c dar. Das letzte Adressfeld stellt eine Schreibadresse zum Schreiben von Daten in ein oder mehrere der Daten-RAMs 7 dar. 



  Es wird wiederum auf Fig. 3a Bezug genommen. Wenn jedes Instruktionswort aus dem Programm-RAM 5 ausgelesen wird, werden die Adressen dem Adressberechner 6 zugeführt, der die Lese- und Schreibadressen für die Daten-RAMs 7 decodiert. Die übrig bleibenden Instruktionsdaten werden der Steuerleitung 30 abgegeben, welche in Fig. 3a fett gedruckt ist. In diesem vereinfachten Diagramm ist die Steuerleitung 30 mit den Daten-RAMs 7, MUX-Block 9, Multiplizierer 11a, Multiplizierschieber 12, ALU 13, I/O-Abschnitte 16H, 16V und Multiplexer 14 verbunden, um den Betrieb dieser Komponenten entsprechend dem Instruktionswort zu steuern. 



  Die interne Hardware des SPIC 4 wird stark beschleunigt: Die Pipelineregister sind in Fig. 3a durch Strich-Punkt-Linien schematisch dargestellt und mit P1 bis P7 bezeichnet. Diese teilen die Daten- und Steuerpfade des Programm-RAM 5, über die Daten-RAMs 7, MUX-Block 9, ALU 13 und Multiplexer 14 zurück zu den Daten-RAMs 7, in acht Pipelinestufen 0 bis 7 auf, und zwar wie folgt: 
<tb><TABLE> Columns=2 
<tb>Head Col 1: Pipeline-Stufe 
<tb>Head Col 2: Handlung
<tb><SEP>0<SEP>Programm lesen
<tb><SEP>1<SEP>Adressberechnung
<tb><SEP>2<CEL AL=L>Daten lesen
<tb><SEP>3<SEP>Multiplizierer 1
<tb><SEP>4<SEP>Multiplizierer 2 
<tb><SEP>5<SEP>Multiplizierschieber
<tb><SEP>6<SEP>ALU
<tb><SEP>7<SEP>Daten schreiben 
<tb></TABLE> 



  Jede Pipelinestufe 0 bis 7 entspricht einem Ticken des Zählers 27, der das Lesen von aufeinander folgenden Instruktionen aus dem Programm-RAM 5 auslöst. Somit wird beim Ticken 0 zu Beginn einer Tonabtastperiode die Instruktion 0 aus dem Programm-RAM 5 in das Pipelineregister P1 gelesen. Beim nächsten Ticken wird die Instruktion 1 aus dem Programm-RAM 5 in das Pipelineregister P1 ausgelesen, während die Adressberechnung für die Instruktion 0 durch den Adressberechner 6 durchgeführt wird. Bei anschliessenden Ticken werden aufeinander folgende Instruktionen aus dem Programm-RAM 5 gelesen, während sich die Instruktionsdaten für die Instruktion 0, und durch diese Instruktion erzeugte Daten, durch die internen Pipelinestufen ausbreiten.

   Zu beachten ist, dass die durch den Adressberechner 6 in der Pipelinestufe 1 erzeugten Leseadressen in der unmittelbar folgenden Pipelinestufe verwendet werden, um auf die Daten-RAMs 7 zuzugreifen, während die in der Pipelinestufe 1 erzeugten Schreibadressen (wa) bis zur Pipelinestufe 7 nicht benötigt werden. Wie in Fig. 3a schematisch angedeutet ist, werden Schreibadressen wa auf einer Verlängerung der Adressleitung zugeführt, und zwar vom Pipelineregister P2, durch die Pipelineregister P3 bis P7, und erscheinen an den Schreibadresseingängen WA der Daten-RAMs 7 in der Pipelinestufe 7. 



  Man betrachte beispielsweise eine Instruktion, welche das Multiplizieren von Daten bei bestimmten Adressen in den Daten-RAMs 7a und 7b erfordert, und das Schreiben des Produkts in eine bestimmte Adresse im Daten-RAM 7c. Die Operation verläuft wie folgt: Beim ersten Ticken wird die Adresse aus dem Programm-RAM 5 gelesen. Beim zweiten Ticken werden die Leseadressen für die Daten-RAMs 7a und 7b und die Schreibadressen für den Daten-RAM 7c durch den Adressberechner 6 erzeugt. Beim dritten Ticken werden die Leseadressen den Daten-RAMs 7a und 7b zugeführt, welche durch das Instruktionswort auf der Steuerleitung 30 aktiviert werden, sodass die entsprechenden Datenabtastungen in das Pipelineregister P3 gelesen werden.

   Die Schreibadresse für das Daten-RAM 7c wird auf der Adressleitungsverlängerung an das Pipelineregister P3 weitergeleitet und breitet sich bei nachfolgenden Ticken durch die anschliessenden Pipelinestufen aus. Beim vierten Ticken wird der MUX-Block 9 gesteuert, um die von den Daten-RAMs gelesenen Datenabtastungen den zwei Eingängen des Multiplizierers 11a zuzuführen, der dann die erste Stufe der Multiplizierverarbeitung durchführt. Beim fünften Ticken führt der Multiplizierer 11a die zweite Stufe der Multiplizierverarbeitung durch und liefert das Produkt dem Pipelineregister P5. Die Bit-Schiebung des Produkts wird durch den Multiplizierschieber 12 beim Ticken 6 unter Steuerung des Instruktionswortes ausgeführt, und das Resultat wird dem Pipelineregister P6 zugeführt. Beim siebten Ticken wird das Produkt über die ALU 13 dem Pipelineregister 7 zugeführt.

   Beim achten Ticken wird die Schreibadresse wa den Daten-RAMs 7 zugeführt und der Multiplexer 14 wird gesteuert, um den Ausgang der ALU 13 den Daten-RAMs zuzuführen. Während dieser Stufe wird der Daten-RAM 7c durch die Steuerdaten im Instruktionswort aktiviert, wodurch das Produkt zur entsprechenden Adresse in diesem Daten-RAM geschrieben wird und die Operation somit abgeschlossen ist. 



  Aus oben Stehendem ist ersichtlich dass, wenn die Instruktion 0, die beim Ticken 0 (n = 0) gelesen wird, eine Variable X erzeugt, die Daten bis zum Ende des Tickens 7 nicht in die Daten-RAMs 7 geschrieben werden. Somit steht die Variable X bis zum Ticken 8 für irgendeine andere Instruktion nicht zur Benützung zur Verfügung. Da eine vom Programm-RAM 5 beim Ticken n gelesene Instruktion beim Ticken n + 2 Daten von den Daten-RAMs 7 lesen kann, ist die erste Instruktion, welche die Variable X verwenden kann, die Instruktion 6, die beim Ticken 6 vom Programm-RAM 5 gelesen wird. 



  Übertragungen zwischen den SPICs 4, die den H- oder V-Bus verwenden, geschehen mit normalem Pipeline-Timing. Wenn somit die Instruktion 0 beim Ticken 0 die Ausgabe von Daten an einen der Busse erfordert, werden die Daten den I/O-Abschnitten 16H, 16V zugeführt, und zwar am Ausgang 15 des MUX-Blocks 9 beim Ticken 3. Am Ende dieses Tickens 3 werden die Daten in den Ausgangsregistern 19H und 19V der I/O-Abschnitte gespeichert, die deshalb gleichwertigen Pipelineregistern P4 entsprechen, wie dies in Fig. 3b in Klammern angedeutet ist. Beim Ticken 4 aktivieren Steuerdaten im Instruktionswort den geeigneten der Aus gangstreiber 20H, 20V über die Steuerleitungsverbindung zu den Ausgangsabschnitten, sodass die Daten beim Ticken 4 auf dem H- oder V-Bus vorhanden sind. 



  Auf ähnliche Weise werden für eine Dateneingangsinstruktion beim Ticken 0 die Daten vom Bus dem geeigneten der Eingangsregister 22H und 22V in den I/O-Abschnitten beim Ticken 4 zugeführt, sodass diese Eingangsregister den gleichwertigen Pipelineregistern P5 entsprechen, wie dies in Fig. 3b in Klammern angedeutet ist. Beim Ticken 5 werden die Daten durch die Eingangsregister an die gleichwertigen Pipelineregister (P6) abgegeben. Beim Ticken 6 wird die Paritätprüfung durchgeführt und beim Ticken 7 werden die Daten vom Multiplexer 14 dem geeigneten der Daten-RAMs 7 zugeführt. 



  Fig. 5 illustriert auf schematische Weise den Kommunikationsprozess zwischen zwei SPICs auf demselben Bus, hier die SPICs A und C in Fig. 2. In diesem Beispiel sollen Daten vom SPIC A zum SPIC C übertragen werden. Beim Ticken 0 wird die Instruktion 0 aus dem Programm-RAM 5 im SPIC A gelesen, welche den Ausgang von Daten von einer bestimmten Adresse in einem der Daten-RAMs 7 an den H-Bus bestimmt. Beim gleichen Ticken, dem Ticken 0, wird die Instruktion 0 aus dem Programm-RAM 5 vom SPIC C gelesen und bestimmt den Eingang von Daten vom H-Bus zu einer bestimmten Adresse in einem seiner Daten-RAMs 7. Beim Ticken 1 wird die Leseadressberechnung vom Adressberechner 6 im SPIC A ausgeführt, und die Schreibadressberechnung wird durch den Adressberechner 6 im SPIC C ausgeführt.

   Beim Ticken 2 werden die Daten von der geeigneten Adresse in einem der Daten-RAMs 7 in SPIC A gelesen, und die Eingangsinstruktion wird dem Pipelineregister P3 im SPIC C zugeführt. Beim Ticken 3 werden die Daten dem Ausgangsregister 19H im I/O-Abschnitt 16H des SPIC A zugeführt, und die Eingangsinstruktion wir dem Pipelineregister P4 im SPIC C zugeführt. Beim Ticken 4 wird der Ausgangstreiber 20H im SPIC A aktiviert, um die Daten an den H-Bus auszugeben, und die Daten werden vom Eingangsregister 22H (das dem gleichwertigen Pipelineregister (P5) entspricht) im I/O-Abschnitt 16H des SPIC C empfangen. Beim Ticken 5 werden die Daten durch das Register 22H im SPIC C dem gleichwertigen Pipelineregister (P6) zugeführt. Beim Ticken 6 wird die Paritätprüfung von der Paritätprüfeinheit 25 im SPIC C ausgeführt.

   Beim Ticken 7 werden die Daten an die bestimmte Adresse in einen der Daten-RAMs 7 im SPIC C geschrieben. Somit nimmt die Kommunikation zwischen zwei SPICs auf dem gleichen Datenbus insgesamt acht Ticken in Anspruch. 



  In jedem der SPICs betreffen eine Anzahl der 512 Instruktionen Prozesse, welche verschiedene Vorkommnisse prüfen, die während des Betriebs auftreten können, zum Beispiel Prüfen nach Signalüberlastung an verschiedenen Punkten in der Anlage. Bei einer 100-Kanal-Konsole können im Signalverarbeitungsrack 1 gegen 1000 Überlastungsfeststellpunkte vorhanden sein, und jeder SPIC 4 kann Instruktionen zum Prüfen nach einer Signalüberlastung an ungefähr 10-20 solcher Punkte haben. Die Feststellung eines solchen Vorkommnisses muss dem Steuerprozessor 26 angezeigt werden, sodass eine geeignete Massnahme getroffen werden kann. Zum Beispiel kann der Steuerprozessor im Fall einer Signalüberlastung bewirken, dass auf der Bedienungskonsole eine Anzeigelampe aufleuchtet, sodass der Bediener die entsprechenden Einstellungen machen kann.

   Dementsprechend sind die SPICs konfiguriert, um bei der Feststellung irgendeines dieser Vorkommnisse Unterbruchsignale zu erzeugen, und die Unterbruchsignale werden dem Steuerprozessor 26 zugeführt. Bevorzugte Ausführungen der vorliegenden Erfindung stellen ein besonders leistungsfähiges System zum Erzeugen der Unterbruchsignale sowie zum Identifizieren der Quellen der Unterbrüche zur Verfügung, das heisst das Vorkommnis, das die Unterbrüche verursacht, wie dies nun im Weiteren beschrieben wird. 



  In jedem SPIC 4 umfassen die im Programm-RAM 5 gespeicherten Instruktionssequenzen eine Unterbruchprüfinstruktion für jedes Vorkommnis, das bei der Feststellung des Vorkommnis durch diesen SPIC die Erzeugung eines Unterbruchs erfordert. Die Unterbruchprüfinstruktion ist sehr ähnlich wie eine gewöhnliche Subtrahierinstruktion, indem die Instruktion das Lesen von Daten aus zwei bestimmten Speicherorten in entsprechenden Daten-RAMs, angenommen 7a und 7b, miteinbezieht, das Subtrahieren eines dieser Datenwerte vom andern in der ALU 13 und das Schreiben des Subtraktionsergebnisses in einen bestimmten Datenort im übrig bleibenden Daten-RAM, zum Beispiel der Daten-RAM 7c. Für eine Unterbruchprüfinstruktion identifiziert der Operationscode (OP-CODE) des Instruktionswortes (siehe Fig. 4) die Instruk tion als eine Unterbruchprüfinstruktion.

   Zum Beispiel kann ein Bit (ein Unterbruchsteuerbit) des OP-CODE nur für Unterbruchtestinstruktionen eingerichtet sein, und dieses Bit kann zusammen mit dem ALU-Ausgang für eine Unterbruchprüfinstruktion verwendet werden, um ein Unterbruchsignal an den Steuerprozessor zu senden, wenn, und nur wenn, der ALU-Ausgang für die Unterbruchprüfinstruktion nicht null ist. Andererseits kann ein bestimmter 8-Bit-OP-CODE die Instruktion als eine Unterbruchprüfinstruktion identifizieren, und ein Decoder, zum Beispiel in der ALU 13 oder in der Steuerleitung 30, kann einen Ein-Bit-Ausgang in Abhängigkeit vom OP-CODE erzeugen, wobei dieses Bit nur für Unterbruchprüfinstruktionen eingerichtet ist und als Unterbruchsteuerbit dient. Das Unterbruchsteuerbit kann wiederum zusammen mit dem ALU-Ausgang verwendet werden, um ein Unterbruchsignal zu erzeugen, wenn der ALU-Ausgang nicht null ist.

   Somit bewirkt eine Unterbruchprüfinstruktion das Erzeugen eines Unterbruchsignals durch den SPIC, wenn die Datenwerte, die durch die Instruktion aus den zwei bestimmten Datenorten gelesen wurden, nicht gleich sind. Aus diesem Grund wird die Unterbruchprüfinstruktion als "Unterbruch-wenn-nicht-gleich-Instruktion" (INE-Instruktion) bezeichnet und im Weiteren auch so genannt. 



  Fig. 6 illustriert mit mehr Einzelheiten einen Teil des SPIC 4 von Fig. 3a zum Erzeugen eines Unterbruchs von einer INE-Instruktion. Fig. 6 zeigt den ALU 13 mit seinen drei Eingängen, die mit 35 bis 37 bezeichnet sind. Die Eingänge 35 und 37 sind direkt mit Ausgängen des MUX-Blocks 9 verbunden, und der Eingang 36 ist mit dem Multiplizierschieber 12 von Fig. 3a verbunden. Der ALU 13 weist einen Ausgang 38 auf, welcher der in Fig. 3a gezeigte Ausgang ist, der mit dem Multiplexer 14 verbunden ist. Zusätzlich weist der ALU einen Ein-Bit-Ausgang 39 auf, der mit einem negierten Eingang eines UND-Gatters 40 verbunden ist. Die Steuerleitung 30 ist wie in Fig. 6 illustriert mit der ALU 13 verbunden zwecks Steueroperation der ALU entsprechend dem Instruktionswort.

   Bei diesem Beispiel ist jedoch ein Ein-Bit-Zweig 42 der Steuerleitung 30 direkt mit dem zweiten Eingang des UND-Gatters 40 verbunden. Der Ausgang des UND-Gatters 40 bildet einen Unterbruchausgang 43 des SPIC 4, um ein Unterbruchsignal an den Steuerprozessor 26 zu liefern. 



  Der Zustand des Ein-Bit-Ausgangs 39 der ALU 13 wird durch reservierte Logik in der ALU 13 in Abhängigkeit von Daten bestimmt, die deren zwei Eingängen 35 und 37 zugeführt werden. Insbesondere stellt die ALU 13 den Ausgang 39 immer dann auf eine logische 1, wenn den Eingängen 35 und 37 zugeführte Daten gleich sind. Andernfalls wird dieser Ausgang auf eine logische 0 eingestellt. Gleichzeitig wird natürlich das Resultat jeder von der ALU ausgeführten arithmetischen Operation dem Ausgang 38 normal zugeführt. Die Daten, die dem Ein-Bit-Zweig 42 der Steuerleitung 30 zugeführt werden, ist das INE-Identifiziersteuerbit. In diesem Beispiel wird angenommen, dass ein Bit des OP-CODE reserviert ist, um INE-Instruktionen zu identifizieren, wobei dieses Bit das Steuerbit ist, das dem Zweig 43 der Steuerleitung 30 zugeführt wird.

   Auf gleiche Weise kann jedoch die INE-Instruktion durch ein bestimmtes Bitmuster des OP-CODE identifiziert werden. In diesem Fall kann ein Decoder zur Verfügung stehen, um einen Ein-Bit-Ausgang vom OP-CODE zu erzeugen, wobei dieses Bit nur für INE-Instruktionen eingestellt ist. Der Decoder kann in der Steuerleitung 30 vorhanden sein, um seinen eigenen Bit-Ausgang dem Zweig 42 von Fig. 6 zuzuführen. Andererseits könnte der Decoder in der ALU 13 vorgesehen sein, wobei ein Ein-Bit-Ausgang für das resultierende Steuerbit direkt mit dem zweiten Eingang des UND-Tors 40 verbunden ist. Wie auch immer erzeugt, wird, da das INE-Identifiziersteuerbit nur für INE-Instruktionen eingestellt ist, eine logische 1 auf den zweiten Eingang des UND-Tors 40 angewendet, wenn die ausgeführte Instruktion eine INE-Instruktion ist.

   Somit wird der Unterbruchausgang 43 nur für INE-Instruktionen auf eine logische 1 eingestellt, bei denen die den Eingängen 35 und 37 der ALU zugeführten Datenwerte nicht gleich sind. 



  Fig. 7 illustriert auf schematische Art die Funktionsweise des INE-Prozesses. In diesem Diagramm stellen die mit A, B und C bezeichneten Blöcke Speicherorte in den Daten-RAMs 7a, 7b bzw. 7c dar, die durch eine bestimmte INE-Instruktion definiert sind. Insbesondere sind A und B Datenorte in den RAMs 7a und 7b, die den Leseadressen in der INE-Instruktion entsprechen, und der Ort C im Daten-RAM 7c entspricht der Schreibadresse in der INE-Instruktion. In Betrieb wird die INE-Instruktion vom Programm-RAM 5 gelesen, die Adressberechnung wird ausgeführt, und die Daten an den Orten A und B werden von den Daten-RAMs 7a und 7b gelesen. Diese Daten werden vom MUX-Block 9, unter Steuerung des Instruktionswortes, den MUX-Ausgängen zugeführt, die mit den Eingängen 35 und 37 der ALU verbunden sind, wie dies in dieser Figur schematisch dargestellt ist.

   Die ALU 13 subtrahiert, unter Steuerung der Instruktionsdaten auf der Steuerleitung 30, die Daten im Ort B von den Daten im Ort A und führt die resultierenden "Unterbruchdaten" dem Ausgang 38 zu. Die Unterbruchdaten, das heisst das Resultat der Subtraktion, wird über den Multiplexer 14 dem Daten-RAM 7c zugeführt und in den Ort C geschrieben. Wenn die Unterbruchdaten dem Ausgang 38 der ALU 3 zugeführt werden, wird der Status des Ausgangs 39 danach eingestellt, ob die vom Ort A dem Eingang 35 zugeführten Daten gleich den Daten sind, die vom Ort B dem Eingang 37 zugeführt wurden. Wenn die Datenwerte gleich sind, das heisst DatenA-DatenB = 0, wird der Ausgang 39 auf eine logische 1 eingestellt, sodass die logische 0, nach der Negierung, in das UND-Tor 40 eingegeben wird. Wenn jedoch DatenA-DatenB  NOTEQUAL  0, wird eine logische 1 in das UND-Tor 40 eingegeben.

   Wenn gleichzeitig das INE-Identifikationsbit auf dem Steuerzweig 42 eingestellt wird, und dabei anzeigt, dass die Instruktion eine INE-Instruktion ist, dann wird am Unterbruchausgang 43 ein Unterbruchsignal erzeugt. 



  Somit liefert die INE-Instruktion ein einfaches Allzweckverfahren zum Erzeugen eines Unterbruchsignals. Ob ein Unterbruchsignal tatsächlich durch eine INE-Instruktion erzeugt wird, hängt einzig von den Daten in den Orten A und B in den Daten-RAMs 7 ab, wenn die INE-Instruktion ausgeführt wird. Wenn die Daten an diesen Orten nicht gleich sind, wird ein Unterbruchsignal erzeugt. Das Prüfen auf ein Vorkommnis, das die Erzeugung eines Unterbruchsignals erfordert, kann durch Instruktionen früher in der Instruktionssequenz des SPIC ausgeführt werden. Unter normalen Umständen sind die Daten in den Orten A und B gleich, sodass jedes Mal, wenn die INE-Instruktion ausgeführt wird (was einmal pro Tonabtastperiode geschieht), kein Unterbruchsignal erzeugt wird.

   Wenn jedoch die früheren Verarbeitungsoperationen die Feststellung eines solchen Vorkommnisses ergeben, können Daten derart in einen der Orte A, B geschrieben werden, dass die Daten an den zwei Orten verschieden sind, und die nächste Implementierung der INE-Instruktionen ergibt dann die Erzeugung eines Unterbruchsignals. 



  Wie oben beschrieben, werden die durch die INE-Instruktionen produzierten Daten, das heisst das Resultat der Subtraktion der Daten im Ort A von den Daten im Ort B, in den Ort C geschrieben. Zu beachten ist, dass diese Daten identifizieren, ob ein Unterbruchsignal erzeugt worden ist. Dies ist so, da die Unterbruchdaten unter normalen Umständen gleich null sind (DatenA = DatenB) und nur dann nicht gleich null sind, wenn ein Unterbruchsignal erzeugt wird (DatenA  NOTEQUAL  DatenB). Die Adressen der Datenorte C, die in einem gegebenen SPIC mit allen INE-Instruktionen assoziiert sind, werden beim Einrichten des Steuerprozessors 26 gespeichert.

   Diese Adressen können in Form einer Nachschlagtabelle gespeichert sein, zum Beispiel in einem Speicher des Steuerprozessors, der die Adressen mit den bestimmten Vorkommnissen assoziiert, deren Auftreten die Erzeugung eines Unterbruchsignals durch die entsprechenden INE-Instruktionen bewirken würden. Für jedes Vorkommnis, das bei der Feststellung während der Verarbeitung durch den SPIC die Erzeugung eines Unterbruchsignals erfordern würde, gibt es somit eine assoziierte INE-Instruktion, in deren Datenorte A, B geschrieben steht, ob als Resultat der Feststellung dieses Vorkommnis ein Unterbruchsignal erzeugt werden soll. Die Datenorte C dieser INE-Instruktionen werden im Steuerprozessor gegen die Vorkommnisse aufgelistet, die den INE-Instruktionen entsprechen.

   Dies liefert ein besonders geeignetes Mittel zum Identifizieren der Quelle eines Unterbruchsignals, das vom Steuerprozessor 26 empfangen wird. Insbesondere muss der Steuerprozessor beim Empfang eines Unterbruchsignals nur alle Datenorte C nach den INE-Instruktionen im entsprechenden SPIC ablesen, und die Unterbruchdaten, die in jedem dieser Orte gespeichert sind, zeigen an, ob das Unterbruchsignal durch die entsprechende INE-Instruktion erzeugt wurde. Wenn keine durch INE-Instruktionen erzeugte Unterbruchdaten in die dritten Datenorte C geschrieben wurde, dann müsste der Steuerprozessor auf Empfang eines Unterbruchsignals hin alle Ortpaare A, B nach INE-Instruktionen ablesen und selber von jeden Daten in jedem Ortpaar A, B berechnen, ob die entsprechende INE-Instruktion eine Erzeugung des Unterbruchsignals bewirkte. 



  Fig. 8 illustriert ein Beispiel, wie eine INE-Instruktion in einem SPIC verwendet werden kann, in diesem Fall, um ein Unterbruchsignal zu erzeugen, das eine Signalüberlastung anzeigt. In dieser Figur ist der relevante Teil der Operation des SPIC in Form eines Blockschaltungsdiagramms mit der gleichen Funktion dargestellt, obwohl die Operation in Wirklichkeit natürlich durch die SPIC-Schaltung ausgeführt wird als Reaktion auf verschiedene Instruktionen der im Programm-RAM 5 gespeicherten Instruktionssequenz. Mit Bezug auf Fig. 8 wird der absolute Pegel von Tonsignalen an einem bestimmten Punkt im System durch den absoluten (ABS) Block 45 bestimmt, dessen Ausgang einen Eingang zu einem Komparator 46 bildet. Ein Schwellenpegel (LEV), der dem maximal gewünschten Signalpegel entspricht, wird dem anderen Eingang des Komparators 46 zugeführt.

   Wenn der Ausgang des ABS-Blocks 45 grösser ist als der Schwellenpegel, was eine Signalüberlastung anzeigt, gibt der Komparator 46 ein Steuersignal an einen Steuereingang 47 eines Multiplexers 48 ab. Der Multiplexer 48 weist zwei Eingänge 49 und 50 auf. Der Eingang 49 empfängt Daten, die von einem Datenort L des Daten-RAMs 7 gelesen wurden, und diese Daten werden über einen Inverter 51 ebenfalls dem Eingang 50 des Multiplexers 48 zugeführt. Der Ausgang des Multiplexers 48 bildet einen Eingang 52 zum INE-Funktionsblock 53, dessen zweiter Eingang 54 direkt mit dem Eingang 49 des Multiplexers 48 verbunden ist. 



  In Abwesenheit eines Steuersignals am Steuereingang 47 des Multiplexers 48 (das heisst keine Signalüberlastung), ist der Eingang 49 des Multiplexers 48 mit dem INE-Eingang 52 verbunden. In diesem Zustand empfangen beide Eingänge 52, 54 des INE-Blocks 53 die Daten, die vom Datenort L gelesen werden. Da die INE-Eingänge gleich sind (was bedeutet, dass die Datenwerte an den Daten-RAM-Orten A, B gleich sind), wird am Unterbruchausgang 43 kein Unterbruchsignal erzeugt. Auf Empfang eines Steuersignals am Steuereingang 47 verbindet der Multiplexer 48 seinen Eingang 50 mit dem INE-Eingang 52. In diesem Zustand werden die Daten vom Ort L dem INE-Eingang 54 zugeführt, aber diese Daten werden am INE-Eingang 52 umgekehrt, das heisst, sie werden derart in einen der Daten-RAM-Orte A, B geschrieben, dass gilt DatenA  NOTEQUAL  DatenB.

   Da die Daten an den zwei INE-Eingängen dann nicht gleich sind, wird am Unterbruchausgang 43 ein Unter bruchsignal erzeugt. Wie oben erwähnt, werden die soeben erwähnten Funktionen tatsächlich durch eine Anzahl Instruktionen implementiert, die in der programmierten Instruktionssequenz des SPIC der Reihe nach ausgeführt werden. Die Daten an den INE-Eingängen 52, 54 in Fig. 8 sind die Daten, die den Orten A, B zugeführt werden, die in den INE-Instruktionen definiert sind, wobei diese Daten anschliessend durch die INE-Instruktion gelesen werden, um die Unterbruchdaten und gegebenenfalls das Unterbruchsignal zu erzeugen, wie dies mit Bezug auf Fig. 7 beschrieben wurde. 



  Fig. 9 illustriert ein weiteres Beispiel, wie eine INE-Instruktion im SPIC verwendet werden kann. In diesem Fall wird die INE-Instruktion verwendet, um das Ablaufen einer voreingestellten Zeitperiode festzustellen, die durch einen vom SPIC implementierten Timer bestimmt wird. Solche Timer können für eine Anzahl Zwecke benötigt werden. Zum Beispiel kann der Steuerprozessor 26 bei der Feststellung einer Signalüberlastung auf der Steuerkonsole eine LED auslösen, um dem Bediener die Signalüberlastung anzuzeigen. Da jedoch die Dauer der Überbelastung nur einige Tonabtastperioden lang sein kann, muss die LED für eine beträchtlich längere Zeit als diese angezündet bleiben, damit sie für den Bediener sichtbar ist.

   Bei der Feststellung einer Signalüberlastung kann ein Timer ausgelöst werden, sodass beim Ablaufen einer vorbestimmten Zeitperiode ein Unterbruchsignal an den Steuerprozessor übertragen wird, das bewirkt, dass die LED ausgeschaltet wird. Die INE-Funktion kann mit einem solchen Timer verwendet werden, wie dies in Fig. 9 dargestellt ist, wobei wiederum klar ist, dass die durch das Diagramm dargestellten Funktionen durch bestimmte Instruktionen in der vorprogrammierten Instruktionssequenz des SPIC 4 implementiert werden. 



  In der Figur stellen die Blöcke X und P Speicherorte in den Daten-RAMs 7 des SPIC dar. Unter normalen Umständen, wenn der Timer nicht läuft, können im Ort P Nullwerte gespeichert sein, und ein vorbestimmter positiver Wert, in Abhängigkeit von der erforderlichen Dauer des Timers, ist im Ort X gespeichert. Wenn der Timer gestartet werden soll, kann der Datenwert -1 in den Ort P geschrieben werden. Die folgenden Operationen werden dann in jeder Tonabtastperiode ausgeführt. Daten werden von den Orten X und P einem Addierer 60 zugeführt. Der Ausgang des Addierers 60 wird in den Datenort X zurückgeschrieben und ebenfalls dem ABS-Block 61 zugeführt, der die absoluten Datenwerte einem Eingang 54 des INE-Blocks 53 zuführt. Der Ausgang des Addierers 60 wird ebenfalls direkt dem zweiten Eingang 52 des INE-Blocks 53 zugeführt. 



  Da der Ausgang des Addierers 60 wieder in den Ort X zurückgeschrieben wird, gilt, wenn DatenP = -1, dass sich der Wert der Daten im Ort X mit jeder Tonabtastperiode, in der die Instruktionen, welche die soeben beschriebenen Funktionen implementieren, ausgeführt werden, um 1 verkleinert. Nach einer Anzahl Tonabtastperioden entsprechend dem anfänglich im Ort X eingestellten Wert, ist der Ausgang des Addierers 60 in der nächsten Tonabtastperiode negativ. Der negative Ausgang des Addierers 60 wird dem INE-Eingang 52 zugeführt, aber der absolute Wert dieses Ausgangs wird dem INE-Eingang 54 zugeführt. An diesem Punkt sind die INE-Eingänge nicht gleich und die INE-Instruktion wird ein Unterbruchsignal erzeugen.

   Bei Empfang dieses Unterbruchsignals führt der Steuerprozessor die entsprechende Steuerfunktion aus und kann die Datenwerte in den Orten X und P zurückstellen, um den Timer zurückzustellen. Zu beachten ist, dass der Timer durch das Schreiben von "-1" in den Ort P jederzeit gestartet werden kann, und dies kann automatisch ausgeführt werden aufgrund einer vorgängigen Verarbeitungsoperation, zum Beispiel beim Feststellen einer Signalüberlastung. 



  Es ist jedoch klar, dass, obwohl in der obigen Ausführung eine Unterbruch-nicht-gleich-Instruktion als besonders einfache Unterbruchprüfinstruktion verwendet wird, die Instruktion erstellt werden könnte, um auf verschiedene Arten nach einem Unterbruchzustand zu prüfen, wobei Daten dementsprechend in die Speicherorte A, B geschrieben werden. 



  Wie in Fig. 3 illustriert ist, umfasst jeder SPIC 4 einen Paritätgenerator 8 zum Anwenden von Parität auf Daten zum Ausgang zu einem Bus. Die Parität aller von den Bussen empfangenen Daten wird ebenfalls durch die Paritätprüfeinheit 25 geprüft. Fig. 10 illustriert mit grösseren Einzelheiten einen Teil des Prozessors von Fig. 3a, der die Erzeugung von Fehlersignalen betrifft, um den Steuerprozessor 26 auf die Feststellung eines Paritätfehlers aufmerksam zu machen. 



  In Fig. 10 sind die I/O-Abschnitte 16H, 16V des SPIC mit der Paritätprüfeinheit 25 verbunden dargestellt, welche die Parität der eingehenden Daten prüft und die Daten an den Multiplexer 14 weiterleitet. Die Paritätprüfung wird auf bekannte Art ausgeführt, und bei der Feststellung eines Paritätfehlers erzeugt der Paritätprüfer 25 ein Paritätfehlersignal, oder Paritätunterbruchsignal, das einem Unterbruchausgang 65 des SPIC zugeführt wird. Der Unterbruchausgang 65 ist mit dem Steuerprozessor 26 verbunden, wobei Paritätunterbruchsignale an den Steuerprozessor übertragen werden. 



  Während die Tatsache, dass ein Paritätfehler aufgetreten ist, dem Steuerprozessor 26 mitgeteilt wird, und da jeder SPIC 4 in jeder Tonabtastperiode 512 vorprogrammierte Operationen ausführt, können pro Tonabtastperiode sehr viele Dateneingänge in einen SPIC vorkommen, und dies kompliziert die Aufgabe des Identifizierens des Ursprungs des bestimmten Dateneingangs, in dem der Paritätsfehler auftrat. Dementsprechend wird in der bevorzugten Ausführung von Fig. 10 das Taktsignal vom Tick-Taktgeber 27 (Fig. 3a) einem Zähler 68 zugeführt, dessen Zählung für jedes Ticken des Tick-Taktgebers 27 um eins erhöht wird. Der Zähler 68 wird am Ende jeder Tonabtastperiode zurückgestellt, sodass die vom Zähler 68 gehaltene Zählung jederzeit die aktuelle Tick-Anzahl anzeigt, die ihrerseits der Anzahl der vom Programm-RAM 5 des SPIC aktuell gelesenen Instruktionen entspricht.

   Die jederzeit vom Zähler 68 gehaltene Zählung wird einem Eingang 69 eines Registers 70 zugeführt, das einen Aktivierungseingang 71 aufweist. Beim Empfang eines Signals am Aktivierungseingang 71 arretiert das Register 70 die am Eingang 69 erscheinende Zählung. 



  Wie in Fig. 10 illustriert, ist der Aktivierungseingang 71 des Registers 70 mit dem Paritätunterbruchausgang 65 des Paritätprüfers 25 verbunden. Wenn somit ein Paritätunterbruchsignal vom Paritätprüfer 25 erzeugt wird, erscheint dieses Signal am Aktivierungseingang 71, um zu bewirken, dass die aktuelle Tick-Zählung arretiert wird. Somit speichert das Register 70 die Anzahl Ticken, während denen in den vom SPIC empfangenen Daten ein Paritätfehler festgestellt wurde. Wie oben beschrieben, und angesichts der beschleunigten Operation des SPIC, entsprechen jedoch die beim Ticken n vom Paritätprüfer 25 empfangenen Daten einer Dateneingabeinstruktion, die 6 Ticken früher vom Programm-RAM 5 des SPIC gelesen wurde.

   Andererseits könnte somit eine Zählung von 6 vom Ausgang des Zählers 68 subtrahiert werden, und zwar durch einen entsprechenden Zähler (nicht gezeigt), der mit dem Registereingang 69 verbunden ist. In diesem Fall würde bei der Erzeugung eines Paritätunterbruchsignals das Register 70 die Tickzahl speichern, die der Anzahl der Dateneinganginstruktionen entspricht, die beim Empfang der Daten resultiert, während denen ein Paritätfehler festgestellt wurde. 



  In beiden Fällen greift der Steuerprozessor 26 am Ende einer Tonabtastperiode, während der durch den Steuerprozessor 26 ein Paritätunterbruchsignal von einem bestimmten SPIC empfangen wurde, auf das Register 70 dieses SPIC zu, um die darin gespeicherte Zählung zu lesen. Diese Zählung aktiviert die Quelle des aufzuspürenden Fehlers. In dieser bevorzugten Ausführung sind alle Kommunikationen zwischen den SPICs, die bei den verschiedenen Ticken stattfinden, im Steuerprozessor vordefiniert. Zum Beispiel kann für jeden SPIC, der unter Steuerung des Prozessors 26 steht, eine Nachschlagtabelle derjenigen SPICs, die Daten an diesen SPIC senden in Bezug zur Tick-Anzahl in einem Speicher des Steuerprozessors gespeichert sein.

   Hier kann die Tick-Anzahl mit der Tick-Anzahl übereinstimmen, während der die Paritätprüfung der empfangenen Daten durchgeführt wurde, oder mit der Anzahl Eingangsinstruktionen im empfangenden SPIC in Abhängigkeit von der Zählung, die durch das Register 70 gespeichert wird, wie dies oben beschrieben wurde. In beiden Fällen kann dann der Steuerprozessor von der Zählung, die vom Register 70 gelesen wurde, denjenigen SPIC identifizieren, der die Daten übertrug, während denen ein Paritätfehler auftrat. Somit kann die Fehlerquelle eruiert werden. 



  Das oben beschriebene Paritätfehlerfeststellsystem kann somit verwendet werden, um die Fehlerquelle im System zu identifizieren, und um bei der Identifizierung fehlerhafter Teile mitzuhelfen. Bei normaler Verwendung kann bei der Feststellung eines Paritätfehlers durch den Steuerprozessor 26 der Steuerprozessor einen Anzeiger auf der Betriebskonsole auslösen, um anzuzeigen, dass ein Fehler aufgetreten ist. Auf Daten, welche die Fehlerquelle anzeigen, die durch den Steuerprozessor 26 aus der Registerzählung 70 wie oben beschrieben bestimmt wurden, kann dann in einer späteren Phase ein Techniker zugreifen. Andererseits kann der Steuerprozessor die nach dem Auftreten eines Fehlers im Register 70 gespeicherte Zählung einfach protokollieren, und die Quelle des Paritätfehlers kann dann in einem anschliessenden Diagnoseprogrammlauf aus dieser Zählung bestimmt werden. 



  Wie oben erwähnt, erzeugt der Interpolator 11 während des Betriebs des Systems Koeffizienten c, die vom SPIC 4 benützt werden. Die Koeffizienten c können durch den Interpolator 11 mit der halben Tick-Frequenz erzeugt werden, sodass ein Koeffizient erzeugt werden kann für jedes aufeinander folgende Instruktionspaar, das vom Programm-RAM 5 des SPIC gelesen wird. Somit können pro Tonabtastperiode 256 Koeffizienten erzeugt werden. Im Interpolator werden die Koeffizienten durch Interpolation von Koeffizientdaten erzeugt, die durch den Steuerprozessor 26 dem Interpolator zugeführt werden. Der Steuerprozessor 26 empfängt Steuersignale von der Bedienungskonsole 2, welche die Einstellung der verschiedenen Steuerungen anzeigt. Wenn eine Einstellung geändert wird, berechnet der Steuerprozessor 26 neue Koeffizientdaten, die den entsprechenden Interpolatoren zugeführt werden.

   Diese neuen Koeffizientdaten sind im Wesentlichen Beträge, durch die gegebene Koeffizienten während einer bestimmten Zeitperiode erhöht werden müssen. In einem Interpolator 11 wird die Interpolation dieser Erhöhungsbeträge derart ausgeführt, dass sich der Koeffizient über die Anzahl Tonabtastungen innerhalb der Interpolationsperiode selber allmählich verändert. Die Interpolationsperiode für jeden Koeffizienten entspricht der Periode eines CSR-Takts, der als Teil eines CSR-Signals an alle Datenprozessoren verteilt wird. Es gibt in dieser Ausführung in Wirklichkeit 16 solcher CSR-Signale, von denen jedes verschiedenen CSR-Taktfrequenzen entspricht.

   Indem somit verschiedene der CSR-Takte ausgewählt werden, um den Interpolator 11 zu steuern, kann die Interpolation von Koeffizienten über verschiedene erforderliche Perioden ausgeführt werden, um die gewünschte Empfindlichkeit für unterschiedliche Funktionen zu erhalten. 



  Die 16 CSR-Signale werden durch einen reservierten Signalgenerator des Systems erzeugt und global an alle Datenprozessoren 4 verteilt. Die CSR-Signale werden durch ein Vorkommnissignal verteilt, dessen allgemeine Form in Fig. 11 illustriert ist. 



  Das Vorkommnissignal ist 124 Bit lang und umfasst 28 Steuerbit, die von den Datenprozessoren für verschiedene Steuerzwecke verwendet werden. Die nächsten 96 Bit des Vorkommnissignals sind in sechzehn 6-Bit-CSR-Signale aufgeteilt, die mit CSR15 bis CSR0 bezeichnet sind. Das Vorkommnissignal wird in jeder Tonabtastperiode seriell an alle Datenprozessoren 4 verteilt und in ein 124-Bit-Serien-Parallel-Register des Prozessors eingetaktet, sodass die Bits am Anfang der nächsten Tonabtastperiode parallel zur Verfügung stehen. 



  Jedes CSR-Signal weist das gleiche allgemeine Format auf, das in Fig. 11 illustriert ist. Die vier ersten Bits des Signals sind Schiebebits "S", welche die Schiebung oder Verstärkung anzeigen, wie dies weiter unten erläutert wird. Das fünfte Bit des CSR-Signals ist ein Interpolator-Aktivierbit "E", dessen Funktion ebenfalls weiter unten besprochen wird. Das sechste Bit des CSR-Signals ist das CSR-Taktbit (CK) selber. Der Status dieses CSR-Taktbit zeigt den Zustand des CSR-Takts in einer gegebenen Tonabtastperiode an. Somit bilden die Taktbits eines CSR-Signals in aufeinander folgenden Tonabtastperioden eine Sequenz von Taktbits, die das CSR-Taktsignal selber bilden.

   Ein CSR-Taktbit wird in jeder CSR-Taktperiode für eine Tonabtastperiode eingestellt, sodass die Anzahl Tonabtastperioden zwischen eingestellten Bits eines CSR-Taktsignals der CSR-Taktfrequenz für ein gegebenes CSR-Signal entspricht. Wie oben erwähnt, weisen die 16 CSR-Signale verschiedene CSR-Taktfrequenzen auf, sodass die Tonabtastfrequenz ein verschiedenes Mehrfaches jeder CSR-Taktfrequenz ist. Die CSR-Signale, die in jeder Tonabtastperiode jedem Datenprozessor 4 verteilt werden, werden dem Interpolator 11 zugeführt, dessen Funktionsweise jetzt mit Bezug auf Fig. 12 erläutert wird. 



  Wie in Fig. 12 illustriert ist, enthält der Interpolator 11 drei Speicher, einen Neuzuwachs-(NI)-Speicher 75, einen Zuwachs(I)-Speicher 76 und einen Jetztwert-(P)-Speicher 77. Die Speicher 75 bis 77 empfangen das Taktsignal vom Tick-Taktgeber 27, der wie vorgängig erwähnt 512 Ticken pro Tonabtastperiode erzeugt. Die Speicher führen alternierende Lese- und Schreibzyklen durch, sodass bei geraden Ticken "Lesungen" und bei ungeraden Ticken "Schreibungen" stattfinden. Jeder Speicher 75 bis 77 weist 256 Speicherorte auf, die den 256 Koeffizienten ent sprechen, die pro Tonabtastperiode erzeugt werden können. Auf diese Speicherorte wird auf jedes zweite Ticken des Tick-Takts der Reihe nach zugegriffen. Die eigentlichen Koeffizienten c werden bei geraden Ticken von nachfolgenden Speicherorten des P-Speichers 77 abgegeben.

   Somit kann in jeder Tonabtastperiode der erste vom P-Speicher abgegebene Koeffizient von den vom Programm-RAM 5 gelesenen Instruktionen 0 und 1 verwendet werden, der zweite Koeffizient kann von den Instruktionen 2 und 3 verwendet werden usw. 



  Der Ausgang des I-Speichers 76 ist über einen Trommelschieber 78 und einen Addierer 79 mit dem P-Speicher 77 verbunden. Der Koeffizientausgang des P-Speichers 77 bildet einen zweiten Eingang zum Addierer 79. In Betrieb, wenn ein bestimmter Koeffizient c, der von einer bestimmten Instruktion des SPIC verwendet wird, verändert werden muss, erzeugt der Steuerprozessor 26 Koeffizientdaten, die den Betrag anzeigen, um den der Koeffizient über eine Periode des entsprechenden CSR-Takts verändert werden muss. Der Steuerprozessor 26 hat darin, zum Beispiel in einem PROM, eine Tabelle der Interpolatorspeicherorte gespeichert, in die verschiedene Koeffizientdaten geschrieben werden sollen. Der Steuerprozessor 26 schreibt somit die Koeffizientdaten direkt in die entsprechenden Orte des NI-Speichers 75.

   Diese Koeffizientdaten, oder Zuwachswerte, werden beim nächsten Zyklus des entsprechenden CSR-Signals in den entsprechenden Ort des I-Speichers 76 geladen. 



  Alle 16 CSR-Signale werden in jeder Tonabtastperiode dem Interpolator 11 zugeführt. Für jeden der möglichen 256 Koeffizienten, die in dieser Periode erzeugt werden sollen, wird das entsprechende CSR-Signal ausgewählt. Die Takt- und Aktivierbits CK, E dieses CSR-Signals werden dem I-Speicher 76 zugeführt, und die vier Schiebebit S werden dem Trommelschieber 78 zugeführt. Das Schalten zwischen CSR-Signalen im Interpolator wird unter Steuerung von bestimmten Steuerbit im Instruktionswort ausgeführt. Insbesondere für jedes Instruktionspaar im Programm-RAM 5, das einen gegebenen Koeffizienten c verwenden kann, identifizieren Steuerbit in den Instruktionswortpaaren das bestimmte CSR-Signal CSR0 bis CSR15, das zur Interpolation der neuen Koeffizientwerte verwendet wird. 



  Wenn ein neuer Zuwachswert in einen bestimmten Ort des NI-Speichers 75 geschrieben wurde, wird dieser Wert in den entsprechenden Ort des I-Speichers 76 geladen, und zwar beim nächsten Impuls des CSR-Takts für den Koeffizienten c, der diesem Speicherort entspricht. In der nächsten Tonabtastperiode wird beider Tick-Zählung, die diesem Speicherort entspricht, der Zuwachswert vom I-Speicher 76 an den Trommelschieber 78 abgegeben, indem der Zuwachswert um einen Wert geschoben wird, der von vier Schiebebits S des CSR-Signals bestimmt wird. Diese Schiebebits S bewirken das Schieben des Zuwachswertes um einen Betrag, der vom Verhältnis der Tonabtastfrequenz zur bestimmten Koeffizienttaktfrequenz abhängig ist.

   Insbesondere wenn das Verhältnis zwischen der Tonabtastfrequenz und der Koeffizienttaktfrequenz R:1 ist, dann dividiert der Trommelschieber 78, unter Steuerung der Schiebebits S, den Zuwachswert vom I-Speicher durch R. Der resultierende dividierte oder geschobene Zuwachswert, der vom Trommelschieber 78 abgegeben wird, ist somit der Betrag, um den der gegenwärtige Koeffizientwert für jede Tonabtastperiode innerhalb einer Periode des CSR-Takts erhöht werden muss, sodass der Koeffizient c über eine Periode des CSR-Takts in den richtigen neuen Wert geändert wird. Der geschobene Zuwachswert, der vom Trommelschieber 78 abgegeben wird, wird zum gegenwärtigen Koeffizienten c addiert, der vom P-Speicher 77 abgegeben wird, und in den Koeffizientort des P-Speichers zurückgeschrieben.

   Somit ist der Ausgangskoeffizient in der nächsten Tonabtastperiode der alte Koeffizient plus der geschobene Zuwachswert. 



  Die Funktion des Interpolator-Aktivierbit E besteht darin, zu ermöglichen, dass bestimmte Impulse des CSR-Takts ausgeschaltet werden, um eine niedrigere Taktfrequenz zu simulieren. Wenn zum Beispiel das Aktivierbit E für alternierende Perioden des CSR-Takts eingestellt ist, wird jeder zweite Impuls des CSR-Takts ausgeschaltet, und so wird eine Taktfrequenz simuliert, die gleich der Hälfte der wirklichen CSR-Taktfrequenz ist. Das Aktivierbit E ermöglicht, dass der effektive Bereich der CSR-Taktfrequenzen erweitert wird. 



  Es ist klar, dass, wo Koeffizientdaten, die verwandten Operationen einer Gruppe von SPICs entsprechen, aktualisiert werden sollen, die Koeffizientdaten den NI-Speichern des relevanten Interpolators 11 zugeführt werden müssen, damit alle SPICs beginnen, die neuen Koeffizientwerte in der gleichen Tonabtastperiode zu benützen. Ein Beispiel dazu ist, wenn Instruktionen in einer Gruppe von SPICs einen vielstufigen oder vielpoligen Filter implementieren. Es ist klar, wenn die Koeffizienten des Filters geändert werden sollen, dass alle SPICs in der Gruppe damit beginnen müssen, die neuen Koeffizientwerte in der gleichen Tonabtastperiode zu benützen, um eine Störung zu vermeiden. Somit muss der Steuerprozessor 26 die Koeffizientdaten den Interpolatoren zwischen den Zyklen des entsprechenden CSR-Takts zuführen.

   Bei bevorzugten Ausführungen der vorliegenden Erfindung wird das Timing des Zuführens aktualisierter Koeffizientdaten durch den Steuerprozessor zu den Interpolatoren auf folgende Weise erreicht. 



  Wie oben beschrieben, werden die 16 CSR-Signale in jeder Tonabtastperiode über das globale serielle Vorkommnissignal an alle Datenprozessoren verteilt. In jedem SPIC werden die CSR-Takte vom Vorkommnissignal extrahiert, und ein oder mehrere dieser Takte werden verwendet, um Timing-Unterbruchsignale zu erzeugen, die an den Steuerprozessor 26 übertragen werden. Die Timing-Unterbruchsignale veranlassen den Steuerprozessor, aktualisierte Koeffizientdaten an die Interpolatoren zu liefern. Fig. 13 illustriert auf schematische Art die Mittel zum Erzeugen von Timing-Unterbruchsignalen in einem Datenprozessor 4. Ein seriell-paralleles (S/P)-Register 80 des Prozessors empfängt das Vorkommnissignal, sodass die 124 Bit dieses Signals dann beim Beginn der nächsten Tonabtastperiode parallel zur Verfügung stehen.

   Die Ausgänge des S/P-Registers 80 sind mit entsprechenden Komponenten des Datenprozessors 4 verbunden. Zum Beispiel werden die CSR-Signale CSR0 bis CSR15 dem Interpolator 11 zugeführt, wie dies vorgängig beschrieben wurde. Die Ausgänge der bestimmten Stufen der Register 80, welche die Taktbits der CSR-Signale enthalten, sind mit den Eingängen eines 16-Bit-Parallelregisters 81 verbunden. Somit speichert das Register 81 in jeder Tonabtastperiode das aktuelle Taktbit von jedem der 16 CSR-Taktsignale. Die Ausgänge des Registers 81 sind mit einem Timing-Unterbruchgenerator 82 verbunden, der ein Timing-Unterbruchsignal erzeugt in Abhängigkeit vom Zustand eines oder mehrerer selektionierten Taktbits. Im Allgemeinen können zwei oder drei der CSR-Taktsignale zur Erzeugung der Timing-Unterbruchsignale vorselektioniert werden.

   Die entsprechende Auswahl wird im Timing-Unterbruchgenerator 82 unter Steuerung des Steuerprozessors 26 eingestellt, wie dies in Fig. 13 durch die gepünktelte Steuerleitung 84 dargestellt ist. 



  Im Timing-Unterbruchgenerator 82 sind die Ausgänge des 16-Bit-Registers 81, die den ausgewählten Taktsignalen entsprechen, über ein ODER-Gatter (nicht gezeigt) mit einem Timing-Unterbruchausgang 85 des Prozessors 4 verbunden. Somit wird in jeder Tonabtastperiode ein Timingunterbruchsignal erzeugt, wenn irgendeines der Taktbits der ausgewählten Taktsignale auf eine logische 1 eingestellt ist, welche den Beginn eines neuen Zyklus dieses CSR-Takts anzeigt. Der Timing-Unterbruchausgang 85 ist mit dem Steuerprozessor 26 verbunden, der auf Empfang eines Timing-Unterbruchsignals hin die im 16-Bit-Register 81 des SPIC gespeicherten Daten liest, um von den Stati der darin vorhandenen 16 Bit zu identifizieren, welches CSR-Taktsignal die Erzeugung des Timing-Unterbruchs verursachte.

   Indem so der Beginn eines neuen Zyklus des/der CSR-Takts/Takte festgestellt wurde, kann der Steuerprozessor 26 dann (zum Beispiel in der nächsten Tonabtastperiode) aktualisierte Koeffizientdaten in die entsprechenden der Interpolatoren 11 schreiben. Die aktualisierten Koeffizientdaten werden dann in den NI-Speichern 75 der Interpolatoren, die für den nächsten Zyklus des/der CSR-Takts/Takte bereit sind, gespeichert, sodass sich Koeffizienten, die verwandten Funktionen entsprechen, synchron mit der Abtastung aktualisiert werden. 



  Wie oben beschrieben, kann die Interpolation von Koeffizienten während irgendeiner der 16 CSR-Taktperioden ausgeführt werden. Es ist jedoch nicht notwendig, von allen CSR-Takten Timing-Unterbruchsignale zu erzeugen. Die Gründe dazu sind, dass, während es wichtig ist zu gewährleisten, dass neue Koeffizienten für verwandte Instruktionen in den verschiedenen SPIC synchron mit der Abtastung eingeführt werden, es aber nicht nötig ist, einzuführende Koeffizientdaten (neue Zuwachswerte) unmittelbar nach der Änderung einer Steuereinstellung zu aktualisieren.

   Obwohl ein bestimmter Satz Koeffizienten entsprechend einem gegebenen CSR-Taktsignal interpoliert werden kann, wenn der Steuerprozessor 26 die neuen Zuwachswerte für diese Koeffizienten be rechnet hat als Reaktion auf die Anpassung einer Steuereinstellung, müssen die neuen Koeffizientdaten somit nicht vor dem unmittelbar nächsten Zyklus dieses CSR-Takts in die NI-Speicher 75 der Interpolatoren geschrieben werden. Ein bestimmter oder bestimmte CSR-Takte können für die Erzeugung von Timing-Unterbruchsignalen gewählt werden, und diese Unterbruchsignale können dazu verwendet werden, um Aktualisierungen für Koeffizientdaten auszulösen für Koeffizienten, die einer Anzahl unterschiedlicher CSR-Taktsignalen entsprechen. Wie oben erwähnt, werden in der Praxis etwa zwei oder drei der 16 CSR-Taktsignale für die Erzeugung von Timing-Unterbruchsignalen ausgewählt. 



  Die Auswahl von Taktsignalen in den Timing-Unterbruchgeneratoren 82 kann in verschiedenen Prozessoren unterschiedlich sein, oder die Auswahl kann in einigen oder allen Prozessoren die gleiche sein. Obwohl dies einen gewissen Betrag Redundanz bewirken kann, indem Timing-Unterbrüche von mehr als einem SPIC aus dem gleichen Taktsignal erzeugt werden können, liefert das Vorsehen von Timing-Unterbrucherzeugungsmitteln in jedem SPIC, wie in Fig. 13 abgebildet, eine grössere Flexibilität des Verarbeitungssystems. Die Timing-Unterbrucherzeugungsmittel können in den Verarbeitungs-IC in Silizium implementiert sein, was kosteneffizienter ist als beispielsweise das Installieren von reservierter Hardware im Steuerprozessor 26 zum Timing von Aktualisierungen an Koeffizientdaten. 



  Während die Unterbruchausgänge 85 der SPICs 4 unabhängig voneinander mit dem Steuerprozessor 26 verbunden werden können, können diese Ausgänge über ein ODER-Gatter (nicht gezeigt) mit einem einzigen Timing-Unterbrucheingang des Steuerprozessors 26 verbunden sein. Da der Inhalt der Register 81 in jedem Prozessor während jeder Tonabtastperiode der gleiche ist, muss der Steuerprozessor 26 bei Empfang eines Timing-Unterbruchsignals nur das Register 81 eines SPIC lesen, um zu bestimmen, welches Taktsignal die Erzeugung des Unterbruchs auslöste. 



  Wie oben erwähnt, kann die Auswahl von Taktsignalen zur Erzeugung von Timing-Unterbrüchen unter Steuerung des Steuerprozessors 26 variiert werden. Dies erhöht wiederum die Flexibilität des Systems und ermöglicht ebenfalls, Timing-Unterbrüche falls erforderlich zu verhindern. Zum Beispiel kann der Timing-Unterbruchgenerator 82 beim anfänglichen Einrichten des Systems so eingestellt werden, dass alle Ausgänge der Register 81 von den Timing-Unterbruchausgängen 85 der SPICs abgeschaltet sind. Dies gewährleistet, dass der Steuerprozessor 26 während dem vorgängigen Ausführen von Einrichtungsprozessen keine unnötigen Timing-Unterbrüche erhält. Es ist natürlich klar, dass an den oben beschriebenen spezifischen Ausführungen viele Variationen und Abänderungen vorgenommen werden können, ohne vom Bereich der Erfindung abzuweichen.

Claims (8)

1. Verfahren zum Erzeugen eines Unterbruchsignals in einer Datenverarbeitungsanlage, wobei das Unterbruchsignal einem Steuerprozessor (26) der Datenverarbeitungsanlage zugeführt wird, um das Auftreten irgendeines einer Mehrzahl von vorbestimmten Vorkommnissen der Datenverarbeitungsanlage anzuzeigen, wobei das Verfahren Folgendes umfasst: Schreiben von Daten in mindestens einen Speicherort einer Mehrzahl Speicherortpaare (A, B) der Datenverarbeitungsanlage in Abhängigkeit vom anzuzeigenden Vorkommnis, wobei die Speicherortpaare (A, B) in der Datenverarbeitungsanlage für ihnen zugeordnete Vorkommnisse vordefiniert sind; Lesen von Daten aus den Speicherortpaaren (A, B);
Verarbeiten der aus jedem Speicherortpaar (A, B) gelesenen Daten, um Unterbruchdaten zu erzeugen, die anzeigen, ob das assoziierte Vorkommnis aufgetreten ist, und vorkommendenfalls Übertragen eines Unterbruchsignals an den Steuerprozessor (26); und Schreiben der den Vorkommnissen zugeordneten Unterbruchdaten in entsprechende dritte Speicherorte (C), wobei die dritten Speicherorte (C) im Steuerprozessor (26) für diese Vorkommnisse vordefiniert sind; wobei der Steuerprozessor (26) auf Empfang eines Unterbruchsignals hin die Unterbruchdaten in den dritten Speicherorten (C) liest, um das durch das Unterbruchsignal angegebene Vorkommnis zu bestimmen.
2.
Verfahren nach Anspruch 1, wobei beim Auftreten eines Vorkommnisses Daten derart in mindestens einen Speicherort der assoziierten Speicherortpaare (A, B) geschrieben werden, dass die Daten in den zwei Speicherorten der Speicherortpaare verschieden sind, und wobei die Verarbeitung der aus jedem Speicherortpaar (A, B) gelesenen Daten ein Vergleichen der Daten in den zwei Speicherorten (A, B) umfasst, um Unterbruchdaten zu erhalten, die anzeigen, ob die verglichenen Daten verschieden sind, wobei ein Unterbruchsignal erzeugt wird, wenn die verglichenen Daten verschieden sind.
3. Verfahren nach Anspruch 2, wobei die Unterbruchdaten durch Subtrahieren der Daten in einem Speicherort von den Daten im anderen Speicherort des Paars erzeugt werden, wobei ein Unterbruchsignal erzeugt wird, wenn die Unterbruchdaten nicht null sind.
4.
Verfahren nach einem der Ansprüche 1 bis 3, wobei die Schritte des Lesens der Daten aus den Speicherortpaaren (A, B), des Verarbeitens der Daten zum Erzeugen von Unterbruchdaten und des Schreibens der Unterbruchdaten in die dritten Speicherorte (C) in jeder Datenabtastperiode der Datenverarbeitungsanlage für jedes Speicherortpaar (A, B) einmal ausgeführt werden.
5. Verfahren nach einem der Ansprüche 1 bis 4, wobei mindestens eines dieser Vorkommnisse das Ablaufen einer voreingestellten Zeitperiode ist, das durch einen Timer der Datenverarbeitungsanlage angezeigt wird.
6. Verfahren nach einem der Ansprüche 1 bis 5, wobei mindestens eines dieser Vorkommnisse das Feststellen einer Signalüberlastung an einem gegebenen Punkt der Datenverarbeitungsanlage ist.
7.
Datenverarbeitungsanlage zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 6, umfassend: einen Steuerprozessor (26) mit einem Unterbrucheingang zum Empfangen eines Unterbruchsignals, das während des Betriebs der Datenverarbeitungsanlage das Eintreten irgendeines einer Mehrzahl vorbestimmter Vorkommnisse anzeigt; Speichermittel (7), die eine Mehrzahl Speicherortpaare (A, B) aufweisen, wobei jedes Paar (A, B) für ein entsprechendes dieser Vorkommnisse vordefiniert ist; Mittel zum Schreiben von Daten in mindestens einen Speicherort dieser Paare, wenn das assoziierte Vorkommnis auftritt; Mittel zum Lesen von Daten aus den Speicherortpaaren (A, B);
und Verarbeitungsmittel (13) zum Verarbeiten der aus jedem Speicherortpaar (A, B) gelesenen Daten, um Unterbruchdaten zu erzeugen, die anzeigen, ob das assoziierte Vorkommnis aufgetreten ist, und zum Schreiben der den Vorkommnissen entsprechenden Unterbruchdaten in entsprechende dritte Speicherorte (C) der Speichermittel (7), wobei die Verarbeitungsmittel (13) angeordnet sind, um ein Unterbruchsignal an den Unterbrucheingang des Steuerprozessors (26) zu übertragen, wenn die Unterbruchdaten das Auftreten dieses Vorkommnisses anzeigen;
wobei diese dritten Speicherorte (C) im Steuerprozessor (26) für entsprechende Vorkommnisse vordefiniert sind, und wobei der Steuerprozessor (26) derart eingerichtet ist, dass er auf Empfang eines Unterbruchsignals hin die Unterbruchdaten in den dritten Speicherorten (C) liest, um das durch das Unterbruchsignal angezeigte Vorkommnis zu bestimmen.
8. Digitale Tondatenverarbeitungsanlage, umfassend eine Datenverarbeitungsanlage nach Anspruch 7.
CH00420/96A 1995-02-23 1996-02-16 Verfahren zum Erzeugen eines Unterbruchsignals in einer Datenverarbeitungsanlage und Datenverarbeitungsanlage. CH692310A5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB9503668A GB2298295B (en) 1995-02-23 1995-02-23 Data processing systems

Publications (1)

Publication Number Publication Date
CH692310A5 true CH692310A5 (de) 2002-04-30

Family

ID=10770154

Family Applications (3)

Application Number Title Priority Date Filing Date
CH00420/96A CH692310A5 (de) 1995-02-23 1996-02-16 Verfahren zum Erzeugen eines Unterbruchsignals in einer Datenverarbeitungsanlage und Datenverarbeitungsanlage.
CH01934/00A CH692312A5 (de) 1995-02-23 1996-02-16 Datenverarbeitungsanlage zum Erzeugen eines Fehlersignals.
CH01935/00A CH692311A5 (de) 1995-02-23 1996-02-16 Datenverarbeitungsanlage zum Erzeugen eines Unterbruchsignals.

Family Applications After (2)

Application Number Title Priority Date Filing Date
CH01934/00A CH692312A5 (de) 1995-02-23 1996-02-16 Datenverarbeitungsanlage zum Erzeugen eines Fehlersignals.
CH01935/00A CH692311A5 (de) 1995-02-23 1996-02-16 Datenverarbeitungsanlage zum Erzeugen eines Unterbruchsignals.

Country Status (4)

Country Link
US (3) US5740449A (de)
JP (1) JPH08263303A (de)
CH (3) CH692310A5 (de)
GB (3) GB2337837B (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141769A (en) * 1996-05-16 2000-10-31 Resilience Corporation Triple modular redundant computer system and associated method
US6243773B1 (en) 1997-05-13 2001-06-05 Micron Electronics, Inc. Configuration management system for hot adding and hot replacing devices
US5907712A (en) * 1997-05-30 1999-05-25 International Business Machines Corporation Method for reducing processor interrupt processing time by transferring predetermined interrupt status to a system memory for eliminating PIO reads from the interrupt handler
JP2000242489A (ja) * 1998-12-21 2000-09-08 Casio Comput Co Ltd 信号処理装置の資源管理装置、プログラム転送方法、及び記録媒体
US6978288B1 (en) * 2002-08-08 2005-12-20 Young Chang Akki Co., Ltd Coefficient update unit
US6985802B2 (en) * 2003-04-22 2006-01-10 Delphi Technologies, Inc. Method of diagnosing an electronic control unit
JP2007500401A (ja) * 2003-07-25 2007-01-11 ジンガー,アーサー,アール. ソフトウェアデバッギング用装置とその方法
US7091982B2 (en) * 2004-05-14 2006-08-15 Nvidia Corporation Low power programmable processor
US7389006B2 (en) * 2004-05-14 2008-06-17 Nvidia Corporation Auto software configurable register address space for low power programmable processor
US7250953B2 (en) * 2004-05-14 2007-07-31 Nvidia Corporation Statistics instrumentation for low power programmable processor
US7325155B2 (en) * 2004-09-14 2008-01-29 Seagate Technology Llc Embedded system with reduced susceptibility to single event upset effects
US7904182B2 (en) * 2005-06-08 2011-03-08 Brooks Automation, Inc. Scalable motion control system
US8589841B2 (en) * 2012-04-05 2013-11-19 International Business Machines Corporation Automatic parity checking identification
US9268598B2 (en) * 2012-09-13 2016-02-23 International Business Machines Corporation Recording and profiling transaction failure source addresses and states of validity indicator corresponding to addresses of aborted transaction in hardware transactional memories

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5481095A (en) * 1977-12-12 1979-06-28 Toshiba Corp Computer tomography device
ZA811458B (en) * 1980-03-28 1982-03-31 Int Computers Ltd Data processing system
US4295219A (en) * 1980-03-31 1981-10-13 Bell Telephone Laboratories, Incorporated Memory write error detection circuit
JPS61102841A (ja) * 1984-10-24 1986-05-21 Nec Corp 回線品質監視装置
US4809209A (en) * 1985-08-26 1989-02-28 Rockwell International Corporation Mybrid charge-transfer-device filter structure
US4805173A (en) * 1986-09-15 1989-02-14 Thinking Machines Corporation Error control method and apparatus
EP0297339B1 (de) * 1987-06-12 1996-02-28 BMC Software, Inc. Supervisorverfahren für ein Rechnerbetriebssystem
US4866713A (en) * 1987-11-02 1989-09-12 Motorola, Inc. Operational function checking method and device for microprocessors
US4884971A (en) * 1988-07-14 1989-12-05 Harris Corporation Elevation interpolator for simulated radar display system
US5193179A (en) * 1988-08-09 1993-03-09 Harris Corporation Activity monitor system non-obtrusive statistical monitoring of operations on a shared bus of a multiprocessor system
JPH07104842B2 (ja) * 1989-03-03 1995-11-13 日本電気株式会社 外部記憶装置の割込み制御方式
US5194783A (en) * 1991-01-25 1993-03-16 Hitachi, Ltd. Display apparatus based on a digital convergence scheme
US5245667A (en) * 1991-04-03 1993-09-14 Frox, Inc. Method and structure for synchronizing multiple, independently generated digital audio signals
JP2727802B2 (ja) * 1991-07-04 1998-03-18 ヤマハ株式会社 デジタル信号処理プロセッサ
US5533173A (en) * 1991-10-21 1996-07-02 Polaroid Corporation Method and apparatus for processing a color map using discrete cosine transforms
DE69317602T2 (de) * 1992-01-24 1998-10-01 Digital Equipment Corp Paritäts-und hochgeschwindigkeitsnormierungskreis für ein massivparalleles verarbeitungssystem
US5423008A (en) * 1992-08-03 1995-06-06 Silicon Graphics, Inc. Apparatus and method for detecting the activities of a plurality of processors on a shared bus
US5313640A (en) * 1992-09-23 1994-05-17 International Business Machines Corporation Method and system for the efficient response to multiple different types of interrupts
US5530874A (en) * 1993-02-02 1996-06-25 3Com Corporation Network adapter with an indication signal mask and an interrupt signal mask
US5408650A (en) * 1993-06-29 1995-04-18 Digital Equipment Corporation Memory analysis system for dynamically displaying memory allocation and de-allocation events associated with an application program
AU674946B2 (en) * 1993-07-02 1997-01-16 Tandem Computers Incorporated Inter-section cross cable detection system
JPH07122973A (ja) * 1993-10-20 1995-05-12 Yamaha Corp デジタル信号処理回路
US5491792A (en) * 1994-09-23 1996-02-13 Forney International, Inc. Sequence of events system using a redundant analog I/O board system
US5606662A (en) * 1995-03-24 1997-02-25 Advanced Micro Devices, Inc. Auto DRAM parity enable/disable mechanism

Also Published As

Publication number Publication date
GB2298295B (en) 2000-01-19
GB9918985D0 (en) 1999-10-13
US5898878A (en) 1999-04-27
GB2337836B (en) 2000-01-19
US5881077A (en) 1999-03-09
CH692312A5 (de) 2002-04-30
GB9503668D0 (en) 1995-04-12
GB9918986D0 (en) 1999-10-13
GB2337836A (en) 1999-12-01
JPH08263303A (ja) 1996-10-11
GB2298295A (en) 1996-08-28
CH692311A5 (de) 2002-04-30
GB2337837B (en) 2000-01-19
US5740449A (en) 1998-04-14
GB2337837A (en) 1999-12-01

Similar Documents

Publication Publication Date Title
DE19839627B4 (de) Digitaler Signalprozessor
CH692310A5 (de) Verfahren zum Erzeugen eines Unterbruchsignals in einer Datenverarbeitungsanlage und Datenverarbeitungsanlage.
DE3485792T2 (de) Digitale signalverarbeitungseinrichtungen.
DE2935841C2 (de) Mehrprozessoranlage
DE2359258A1 (de) Echtzeitsteuerungsanordnung fuer eine simulationsvorrichtung
DE3687237T2 (de) Verfahren und geraet zur versorgung von histogrammdaten.
DE2911909C2 (de) Digitales Datenverarbeitungsgerät
EP0134831A1 (de) Einrichtung im Befehlswerk eines Fliessbandprozessors zur Befehlsunterbrechung und -wiederholung
DE3446957C2 (de)
DE69532152T2 (de) System zur parallelen Datenverarbeitung für digitale Tongeräte
DE2952631A1 (de) Datenverarbeitungsvorrichtung mit diagnosefunktion
DE2829709C2 (de) Verfahren und Anordnung zur Erzeugung zeitlich unmittelbar aufeinanderfolgender Impulszyklen
DE4446988B4 (de) Schneller Testmustergenerator
DE3814622C2 (de)
DE69921150T2 (de) Speicherüberwachung
DE19841893B4 (de) Mikrokontroller
DE2619661A1 (de) Verfahren und anordnung zum aufeinanderfolgenden ausfuehren von datenverarbeitungsinstruktionen in funktionseinheiten eines rechners
DE3123379C2 (de)
EP3244325B1 (de) Verfahren zur zeitlich synchronisierten ausgabe und/oder zeitlich synchronisierten verarbeitung von signalen
DE3900642C2 (de) Programmierbare Steuerung und zugehöriges Eingabeverfahren
DE19637369A1 (de) Digitaler Signalprozessor
DE4339159C1 (de) Schaltungsanordnung zur synchronen Takterzeugung wenigstens zweier Taktsignale
DE4406395C1 (de) Signalverarbeitungsverfahren zur Multiplikation von Eingangssignalen mit Parametern und anschließender Akkumulation
EP0560342B1 (de) Verfahren zum Untersuchen des Ablaufs eines in einer Hardware-Beschreibungssprache geschriebenen Programms
DE3710006C2 (de)

Legal Events

Date Code Title Description
PCAR Change of the address of the representative

Free format text: ISLER & PEDRAZZINI AG;POSTFACH 1772;8027 ZUERICH (CH)

PL Patent ceased