DE69030712T2 - Befehlsgeneratorarchitektur für Videosignalprozessorsteuerung - Google Patents

Befehlsgeneratorarchitektur für Videosignalprozessorsteuerung

Info

Publication number
DE69030712T2
DE69030712T2 DE69030712T DE69030712T DE69030712T2 DE 69030712 T2 DE69030712 T2 DE 69030712T2 DE 69030712 T DE69030712 T DE 69030712T DE 69030712 T DE69030712 T DE 69030712T DE 69030712 T2 DE69030712 T2 DE 69030712T2
Authority
DE
Germany
Prior art keywords
instruction
register
address
output
register address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69030712T
Other languages
English (en)
Other versions
DE69030712D1 (de
Inventor
Jim Childers
Moo-Taek Chung
Hiroshi Miyaguchi
Peter Reinecke
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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
Priority claimed from US07/421,500 external-priority patent/US5210836A/en
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Application granted granted Critical
Publication of DE69030712D1 publication Critical patent/DE69030712D1/de
Publication of DE69030712T2 publication Critical patent/DE69030712T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30083Power or thermal control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3873Variable length pipelines, e.g. elastic pipeline
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02BINTERNAL-COMBUSTION PISTON ENGINES; COMBUSTION ENGINES IN GENERAL
    • F02B75/00Other engines
    • F02B75/02Engines characterised by their cycles, e.g. six-stroke
    • F02B2075/022Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle
    • F02B2075/027Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle four

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

    GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich allgemein auf Einzelbefehl-Mehrfachdaten-Prozessoren. Genauer bezieht sich die Erfindung auf Prozessoren, die eine eindimensionale Matrix von Verarbeitungselementen besitzen und insbesondere Anwendung finden in der digitalen Signalverarbeitung, wie z. B. beim Fernsehen mit verbesserter Auflösung (IDTV). Außerdem bezieht sich die Erfindung auf Verbesserungen der Prozessoren, der Fernseh- und Videosysteme und auf andere Systemverbesserungen und Verfahren für deren Betrieb und Steuerung.
  • HINTERGRUND DER ERFINDUNG
  • Eine schnelle und genaue Echtzeit-Verarbeitung von Datensignalen ist unter anderem wünschenswert bei der Universal-Digitalsignalverarbeitung, in der Unterhaltungselektronik, in der Industrieelektronik, bei graphischen und bildgebenden Geräten, in der Medizinelektronik, in der Militärelektronik sowie in der Kommunikations- und Kraftfahrzeugelektronik, um nur einige von vielen Technologiebereichen zu nennen. Die Videosignalverarbeitung, wie z. B. die Echtzeit-Bildverarbeitung von Videosignalen, erfordert im allgemeinen die Handhabung und Verarbeitung von großen Datenmengen in einer kurzen Zeitspanne. Die Bildverarbeitung wird beschrieben von Davis u. a. in Electronic Design, 31. Oktober 1984, S. 207-218, und in den Ausgaben von Electronic Design vom 15. November 1984, S. 298-300, 29. November 1984, S. 257-266, 13. Dezember 1984, S. 217-226 und 10. Januar 1985, S. 349-356.
  • Die Verarbeitung von Videosignalen erfordert ein Steuergerät, das in der Lage ist, Steuer-, Daten- und Adreßsignale zu erzeugen, die mit dem vertikalen und dem horizontalen Synchronisierungssignal des Videosignals synchronisiert sind. Die vorliegenden Erfindung beschreibt einen Befehlsgenerator, der in besonderer Weise für die Verwendung mit einem solchen Steuergerät geeignet ist.
  • Die EP-A-O 317 218 offenbart einen Videoprozessor mit einer großen Anzahl von 1-Bit-Prozessorelementen, die jeweils ein Pixel einer horizontalen Zeile verarbeiten.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung betrifft eine Befehlsgeneratorschaltung zum Liefern von Befehlen an eine Videosignal-Verarbeitungsvorrichtung mit mehreren Ein-Bit- Prozessorelementen, wobei jedes Prozessorelement Eingänge für den Empfang von Befehlen und, in Benutzung, für die Ausarbeitung von Befehlen enthält,
  • dadurch gekennzeichnet, daß die Befehlsgeneratorschaltung Eingänge für den Empfang von Betriebsmodussignalen aus einer externen Quelle aufweist,
  • daß jeder Befehl einen Steuercode und eine Registeradresse enthält, wobei der Steuercode wenigstens eines Befehls angibt, daß der Befehl ein Wiederholungsbefehl ist,
  • daß jedes Prozessorelement die Befehle gemäß dem entsprechenden Steuercode und der Registeradresse ausführt,
  • und daß die Befehlsgeneratorschaltung enthält:
  • einen Befehlsprogrammspeicher,
  • einen Programmzähler, der an einen Adresseneingang des Befehlsprogrammspeichers angeschlossen ist und einen Moduseingang enthält, der die Betriebsmodussignale aus der externen Quelle empfängt, wobei der Programmzähler für das Zuführen einer Adresse zu dem Adresseneingang des Befehlsprogrammspeichers entsprechend dem empfangenen Betriebsmodussignal vorgesehen ist;
  • einen Steuercode-Zwischenspeicher mit einem Eingang, der an einen Befehlsausgang des Befehlsprogrammspeichers angeschlossen ist, sowie einem Ausgang zum Anschließen an die mehreren Prozessorelemente zum Zwischenspeichern des Steuercodes eines aus dem Befehlsprogrammspeicher abgerufenen Befehls und zum Zuführen des darin gespeicherten Steuercodes zu den mehreren Prozessorelementen;
  • einen Registeradressen-Zwischenspeicher mit einem Eingang, der an den Befehlsausgang des Befehlsprogrammspeichers angeschlossen ist, sowie einem Ausgang für das Anschließen an die mehreren Prozessorelemente zum Zwischenspeichern der Registeradresse eines aus dem Befehlsprogrammspeicher abgerufenen Befehls und zum Zuführen der darin gespeicherten Registeradresse an die mehreren Prozessorelemente;
  • eine Befehlsdecodierschaltung, die an den Befehlsausgang des Befehlsprogrammspeichers, den Steuercode- Zwischenspeicher und den Registeradressen-Zwischenspeicher angeschlossen ist, wobei die Befehlsdecodierschaltung dem Steuern des Steuercode- Zwischenspeichers dient, damit der darin gespeicherte Steuercode erneut den mehreren Prozessorelementen zugeführt wird und der Registeradressen-Zwischenspeicher gesteuert wird, um die darin gespeicherte Registeradresse fortzuschalten und die fortgeschaltete Registeradresse den mehreren Prozessorelementen bei der Feststellung zuzuführen, daß der Steuercode des aus dem Befehlsprogrammspeicher abgerufenen Befehls einen Wiederholungsbefehl anzeigt.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die neuartigen Merkmale, die für die Erfindung als charakteristisch angesehen werden, sind in den beigefügten Ansprüchen ausgeführt. Die Erfindung selbst sowie andere Merkmale und Vorteile derselben werden jedoch am besten verstanden beim Lesen der folgenden genauen Beschreibung, die auf die beigefügten Zeichnungen Bezug nimmt, in welchen:
  • Fig. 1 ein Videosystem zeigt, das einen synchronen Vektorprozessor verwendet;
  • Fig. 2 den synchronen Vektorprozessor genauer zeigt, der im System der Fig. 1 verwendet wird;
  • Fig. 3 ein Prozessorelement des synchronen Vektorprozessors der Fig. 2 zeigt;
  • Fig. 4 ein Zeitablaufdiagramm für ein Schreiben des Dateneingangsregisters zeigt;
  • Fig. 5 ein Logikdiagramm des Prozessorelements der Fig. 3 zeigt;
  • Fig. 6 ein Zeitablaufdiagramm für ein Lesen des Datenausgangsregisters zeigt;
  • Fig. 7 das Prozessorelement der Fig. 3 genauer zeigt;
  • Fig. 8 Graphen zeigt, die Spannungspegel an verschiedenen Knoten einer DOR-Vorladeschaltung darstellen;
  • Fig. 9 eine alternative 3-Transistor-DOR-Zelle für die Ausführungsform der Fig. 7 zeigt;
  • Fig. 10 eine DIR-Störunterdrückungsschaltung zeigt;
  • Fig. 11 eine Störunterdrückungsschaltung genauer zeigt als die Fig. 10;
  • Fig. 12 eine DIR-Störunterdrückungsschaltung zeigt;
  • Fig. 13 eine Dateneingangssteuerschaltung zeigt;
  • Fig. 14 ein Verfahren der Wiedergewinnung von Daten zeigt, die von der Schaltung der Fig. 13 übertragen worden sind;
  • Fig. 15 ein alternatives Verfahren der Wiedergewinnung der übertragenen Daten zeigt;
  • Fig. 16 eine DOR-Steuerschaltung zeigt;
  • Fig. 17 eine DIR-Steuerschaltung zeigt;
  • Fig. 18 eine Prozessorelement-Nächster-Nachbar-Verbindung zeigt;
  • Fig. 19 ein Logikdiagramm für einen globalen Ausgang zeigt;
  • Fig. 20 eine Mehrfach-SVP-chip-Verbindung zeigt;
  • Fig. 21 eine alternative Mehrfach-SVP-Verbindung zeigt;
  • Fig. 22 ein Zeitablaufdiagramm für einen Einzelbefehlsmodus zeigt;
  • Fig. 23 ein Zeitablaufdiagramm für einen Doppelbefehlsmodus zeigt;
  • Fig. 24 ein Zeitablaufdiagramm für einen Wartezustand-Einzelbefehlsmodus zeigt;
  • Fig. 25 ein Zeitablaufdiagramm für einen Leerlaufbefehlsmodus zeigt;
  • Fig. 26 ein Prozessorelement mit vier Leseverstärkern zeigt;
  • Fig. 27a und 27b einen erläuternden Lese/Schreib-Zyklus für das 4-Leseverstärker-Prozessorelement der Fig. 26 zeigen;
  • Fig. 28 eine 4-Bit-Addition unter Verwendung des Doppelzyklusbefehls zeigt;
  • Fig. 29 ein Entwicklungssystem zeigt, das einen SVP-Baustein verwendet;
  • Fig. 30 eine Fernsehsteuervorrichtung zeigt;
  • Fig. 31 eine Steuervorrichtung für ein SVP-Videosystem zeigt;
  • Fig. 32 den Hauptsteuerabschnitt der Steuervorrichtung der Fig. 31 zeigt;
  • Fig. 33 den Vertikalzeitablaufgeneratorabschnitt der Steuervorrichtung der Fig. 31 zeigt;
  • Fig. 34 den Horizontalzeitablaufgeneratorabschnitt der Steuervorrichtung der Fig. 31 zeigt;
  • Fig. 35 den Konstantengeneratorabschnitt der Steuervorrichtung der Fig. 31 zeigt;
  • Fig. 36 den Befehlsgeneratorabschnitt der Steuervorrichtung der Fig. 31 zeigt;
  • Fig. 37 einen alternativen Befehlsgenerator zeigt;
  • Fig. 38 einen alternativen Konstantengenerator zeigt;
  • Fig. 39 erläuternde Inhalte des Sequenzspeichers der Fig. 38 zeigt;
  • Fig. 40 erläuternde Inhalte des Schleifenspeichers der Fig. 38 zeigt;
  • Fig. 41 ein Flußdiagramm für den Konstantengenerator der Fig. 38 zeigt;
  • Fig. 42 ein Filter mit endlicher Impulsantwort (FIR-Filter) zeigt;
  • Fig. 43 eine Darstellung der Zeilenspeicher zeigt;
  • Fig. 44a eine graphische Darstellung einer SVP-Registergruppe zeigt;
  • Fig. 44b eine umgeordnete Explosionsansicht eines Abschnitts der Fig. 44a zeigt;
  • Fig. 45 eine globale Rotationsschaltung zeigt;
  • Fig. 46a und 46b Teile des gleichen Flußdiagramms für eine globale Rotationsoperation sind;
  • Fig. 47 eine Signal-Pipeline-Schaltung zeigt;
  • Fig. 48 die unterschiedlichen Signaleingänge und -ausgänge für eine Schaltung des Typs der Fig. 47 zeigt;
  • Fig. 49 ein Zeitablaufdiagramm für einen Signalfluß unter Verwendung einer Pipeline-Schaltung der Fig. 47 zeigt;
  • Fig. 50 eine alternative Pipeline-Schaltung zeigt;
  • Fig. 51 eine Globalvariablen-Verteilungssteuerschaltung zeigt;
  • Fig. 52 einen Hilfsregistersatz und eine Steuerschaltung zeigt;
  • Fig. 53 eine Speicherreduktions-Steuerschaltung zeigt;
  • Fig. 54 ein alternatives SVP-Steuerungs/Prozessor-System zeigt;
  • Fig. 55 ein SVP-Videoband-Aufzeichnungssystem zeigt;
  • Fig. 56 ein Universal-Digitalsignalverarbeitungssystem auf SVP- Basis zeigt;
  • Fig. 57 ein Graphik/Bild-Verarbeitungssystem auf SVP-Basis zeigt;
  • Fig. 58 ein Sichtprüfsystem auf SVP-Basis zeigt;
  • Fig. 59 ein Mustererkennungssystem auf SVP-Basis zeigt;
  • Fig. 60 ein erläuterndes Sprachsignal zeigt;
  • Fig. 61 ein Radarverarbeitungssystem auf SVP-Basis zeigt;
  • Fig. 62 ein Bildtelephonsystem auf SVP-Basis zeigt;
  • Fig. 63a und 63b ein Fax-System auf SVP-Basis zeigt;
  • Fig. 64 einen Vorlagenscanner auf SVP-Basis zeigt;
  • Fig. 65 ein Sicherheitsvideoübertragungssystem auf SVP-Basis zeigt;
  • Fig. 66 ein erläuterndes videosignal für das System der Fig. 65 zeigt; und
  • Fig. 67 eine Darstellung eines Stiftgittermatrix-Gehäuses zeigt, das geeignet ist, den SVP aufzunehmen.
  • GENAUE BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSFORMEN
  • In der folgenden Beschreibung bevorzugter Ausführungsformen der Erfindung wird auf die zeichnungen Bezug genommen. Gleiche Bezugszeichen, die über mehrere Figuren hinweg verwendet werden, beziehen sich auf gleiche oder einander entsprechende Teile.
  • Ein SVP, ein synchroner Vektorprozessor einer bevorzugten Ausführungsform, ist ein maskenprogrammierbarer Universal- Einzelbefehl-Mehrfachdaten-RISC-Rechenbaustein (SIMD-RISC), der die 3D-Algorithmen in Echtzeit ausführen kann, die in Fernsehsystemen mit verbesserter Auflösung (IDTV) und mit erweiterter Auflösung (EDTV) nützlich sind. Obwohl der SVP der Erfindung in der bevorzugten Ausführungsform für die Videosignalverarbeitung offenbart ist, funktioniert die Hardware des SVP in vielen verschiedenen Anwendungen, so daß in der Architektur keine speziellen Filter oder Funktionen implementiert sind. Im allgemeinen kann der SVP in jeder Situatiön verwendet werden, in der eine große Menge von ankommenden Daten parallel zu verarbeiten ist.
  • In einer typischen Anwendung, wie z. B. bei der Videosignalverarbeitung, arbeiten die Eingangs- und Ausgangsschichten synchron zur Datenquelle (z. B. einer Videokamera, VCR, Empfänger und dergleichen) bzw. der Datensenke (z. B. der Rasteranzeigevorrichtung). Gleichzeitig führt die Berechnungsschicht die gewünschte Transformation durch, indem sie programmierbare Funktionen gleichzeitig auf alle Elemente eines Pakets (im allgemeinen als Vektor bezeichnet: innerhalb der TV/Video-Umgebung alle Abtastwerte, die eine einzelne horizontale Anzeigezeile enthält) anwendet. Daher ist der SVP hinsichtlich der Architektur auf die synchrone Vektorverarbeitung ausgerichtet.
  • Wie in Fig. 1 gezeigt, enthält ein TV-System oder Videosystem 100 eine synchrone Vektorprozessorvorrichtung 102. Das System 100 umfaßt eine Katodenstrahlröhre CRT 104 des Rasterabtasttyps, die am Eingang 106 ein analoges Videosignal von den Standard-Analogvideoschaltungen 108 empfängt, wie sie in einem herkömmlichen TV-Empfänger verwendet werden. Ein Videosignal von einer Antenne 110 wird verstärkt, gefiltert und in der üblichen Weise mittels HF- und ZF-Stufen 112 überlagert, die eine Abstimmvorrichtung, ein ZF-Verstärker-Chassis und eine Synchronseparatorschaltung enthalten, die auf der Leitung 114 ein zusammengesetztes Analogvideosignal oder ein Komponentenvideosignal erzeugen. Die Detektion einer frequenzmodulierten (FM)-Tonkomponente wird separat durchgeführt und hier nicht weiter beschrieben. Die horizontale Synchronisierung, die vertikale Synchronisierung und das Farbsynchronsignal werden von der Steuervorrichtung 128 verwendet, um die Zeitsteuerung für den SVP 102 zu bewerkstelligen, und sind somit nicht Teil des Datenweges des SVP. Das analoge videosignal auf der Leitung 114 wird mit einem Analog/Digital-Umsetzer 116 digitalisiert. Das digitalisierte Videosignal wird auf der Leitung 118 für die Eingabe in den synchronen Vektorprozessor 102 zur Verfügung gestellt.
  • Der Prozessor 102 verarbeitet das auf der Leitung 118 anliegende digitale Videosignal und erzeugt ein verarbeitetes digitales Signal auf den Leitungen 170. Das verarbeitete Videosignal wird anschließend von einem Digital/Analog-Umsetzer 124 in ein Analogsignal umgesetzt, bevor es über die Leitung 126 den Standard-Analogvideoschaltungen 108 zugeführt wird. Die Videosignale können dem Analog/Digital-Umsetzer 116 aus einer aufgezeichneten oder einer anderen Nicht-Standard-Signalquelle wie z. B. einem Videoband-Aufzeichnungsgerät 134 zugeführt werden. Das VCR-Signal wird auf der Leitung 136 zur Verfügung gestellt und umgeht die Abstimmvorrichtung 112. Der Prozessor 102 kann ein (oder mehrere) Videohalbbilder in einem Feldspeicher 120 speichern, der z. B. ein Feldspeicherbaustein des Modells TMS4C1060 von Texas Instruments ist. Der Feldspeicher 120 empfängt auf den Leitungen 138 und 140 Steuer- und Taktsignale von der Steuervorrichtung 128.
  • Das Videoeingangssignal auf der Leitung 114 wird vom Analog/Digital-Umsetzer 116 mit einer Abtastrate von z. B. 14,32 MHz (ein Vielfaches 4 der Farbträgerfrequenz 3,58 MHz) in digitalisierte 8-Bit-Videodaten umgesetzt. Der SVP 102 besitzt insgesamt 40 Eingangsleitungen. Wie erwähnt, werden acht für das digitalisierte Videosignal verwendet. Die anderen können als Eingänge für den Halbbildspeicherausgang, eine andere TV-Quelle und dergleichen verwendet werden. Der Digital/Analog-Umsetzer 124 kann ferner mit der Rate von 14,32 MHz aus dem 8-Bit-Prozessorausgangssignal ein Analogsignal rekonstruieren. Die restlichen Ausgangsleitungen können für andere Signale verwendet werden. Alternativ können die Digital/Analog- Umsetzer 116 und 124 mit unterschiedlichen Abtastraten betrieben werden, falls dies für bestimmte Zwecke gewünscht wird.
  • Der Prozessor 102 wird von einer Steuervorrichtung 128 gesteuert. Die Steuervorrichtung 128 legt auf den Leitungen 130 24 Mikrocode-Steuerbits und 14 Adreßbits an den Prozessor 102 an. Bei relativ niedrigen Geschwindigkeiten kann die Steuervorrichtung 128 ein Standard-Mikroprozessorbaustein oder Mikrocontrollerbaustein sein, wie z. B. das im Handel erhältliche Modell TMS 370C050 von Texas Instruments. Für höhere Geschwindigkeiten speichert eine Steuervorrichtung den Softwarecode im RAM oder ROM, oder es wird eine Zustandsmaschine oder ein Sequenzer verwendet. Die Steuervorrichtung 128 ist geeignet auf dem gleichen Halbleiterchip angeordnet wie der Prozessor 102, um wie in Fig. 1 gezeigt eine Einheit 132 zu bilden, insbesondere wenn sie lediglich gespeicherten Code in einem ROM mit einem zugehörigen Adreßzähler umfaßt. Die Mikrobefehle können die Operation von 7 fundamentalen (oder "primitiven") Gatter- und ALU-Funktionen innerhalb eines einzelnen Zyklus steuern. Alle PEs werden durch denselben Befehl gesteuert; daher die Architekturbezeichnung Einzelbefehls-Mehrfachdaten (SIMD).
  • In einer bevorzugten Ausführungsform der Fig. 2 enthält der SVP-Baustein 102 eine eindimensionale Matrix mit 1024 1-Bit- Verarbeitungselementen 103 (PEs).
  • In Fig. 3 ist ein einzelnes Prozessorelement 150 dargestellt. Jedes Prozessorelement 150 umfaßt ein 40-Bit-Dateneingangsregister (DIR) 154, das zu 40 1 organisiert ist; eine erste 128-Bit-Registergruppe (RF0) 158, die zu 128 1 organisiert ist; Arbeitsregister A, B, C und M 162; eine arithmetisch/logische Einheit 164, die einen 1-Bit-Volladdierer/Subtrahierer enthält; eine zweite 128-Bit-Registergruppe (RF1) 166, die zu 128 1 organisiert ist; sowie ein 24-Bit- Datenausgangsregister (DOR) 168, das zu 24 1 organisiert ist. Der in Fig. 3 gezeigte Prozessor 102 umfaßt ferner eine erste Lese/Schreib-Schaltung 156, die das Lesen und Schreiben von Daten zwischen den DIR/RF0-Registern 154/158, den Arbeitsregistern A, B, C und M 162 und der arithmetisch/logischen Einheit 164 steuert. Es ist eine zweite Lese/Schreib-Schaltung 167 vorgesehen, um das Lesen und Schreiben von Daten zwischen den DOR/RF1-Registern 166/168, den Arbeitsregistern A, B, C und M 162 und der arithmetisch/logischen Einheit 164 zu steuern.
  • Der Datenfluß innerhalb der PEs wird in drei Schichten oder Pipeline-Stufen pipelinemäßig verarbeitet, die alle gleichzeitig operieren: Eingang, Ausgang und Berechnung. In der Eingangsschicht sammelt oder akkumuliert das Dateneingangsregister (DIR) ein Paket von wortseriellen Daten. In der Berechnungsschicht werden die programmierten Operationen mit allen Elementen eines bereits empfangenen Pakets mittels eines Prozessors je Wort gleichzeitig durchgeführt. Die Ausgangsschicht überträgt ein weiteres Paket wiederum wortseriell vom Datenausgangsregister (DOR) zu den Ausgangsanschlußstiften.
  • Innerhalb der jeweiligen Phase der Berechnungsschicht-Pipeline führt eine Mehrzahl von Zyklen/Befehlen die benötigten Operationen durch. Die Eingangs- und Ausgangsschichten oder die Pipeline-Stufen akkumulieren pro Zyklus ein Datenwort, minimieren jedoch die E/A-Anschlußstiftanforderungen, indem mehrere Zyklen verwendet werden, um das gesamte Datenpaket zu übertragen. Die Anzahl der Datenwörter pro Paket wird für jede Anwendung oder jedes System entsprechend der Größe der Prozessorelementmatrix durch die Hardware oder die Software festgelegt; in der bevorzugten Ausführungsform 1024.
  • Die Berechnungsschicht oder Pipeline-Stufe verwendet ebenfalls mehrere Zyklen, um die Daten zu verarbeiten. Die ALU und die Datenwege, die jedem Datenwort zugewiesen sind, sind 1 Bit breit. Somit können Funktionen für Multibit-Wörter in mehreren Zyklen berechnet werden.
  • Das DIR 154 lädt das digitalisierte videosignal von den Leitungen 118, wenn am Eingang 151 ein Freigabesignal anliegt. Dieses Freigabesignal wird von einem 1-aus-1024-Kommutator, Sequenzer oder Ringzähler 148 zugeführt. Der Kommutator 148 wird so getriggert, daß er am Ende einer horizontalen Austastlücke beginnt, wenn auf den Leitungen 118 ein Standard- Videosignal anliegt, und für bis zu 1024 Zyklen (bei 14,32 MHz) synchron zur Abtastrate (Frequenz) des Analog/ Digital- Umsetzers 116 fortfährt. In ähnlicher Weise erzeugt das DOR 168 das verarbeitete Videosignal auf den Leitungen 170, wenn am Eingang 172 ein Freigabesignal anliegt. Dieses Freigabesignal wird von einem weiteren 1-aus-1024-Kommutator, Sequenzer oder Ringzähler 174 empfangen. Der Kommutator 174 wird so getriggert, daß er am Ende einer horizontalen Austast-lücke beginnt und für 1024 Zyklen synchron zur Abtastrate des Analog/Digital-Umsetzers 124 fortfährt.
  • Jedes PE besitzt eine direkte Verbindung zu seinen vier nächsten Nachbarn (zwei nach links und zwei nach rechts). Jede der zwei RF (Registergruppen) ist fähig zur unabhängigen Adressierung und zu Lese/Modifizierungs-Schreib-Zyklen, so daß in einem einzigen Zyklus zwei verschiedene RF-Stellen gelesen, die Daten von einer arithmetisch/logischen Einheit (ALU) verarbeitet und das Ergebnis in einen der Orte der zwei Registergruppen RF0 oder RF1 zurückgeschrieben werden können.
  • Externe Leitungen sind gemeinsam mit allen Prozessorelementen PE 150 in der Prozessormatrix der Fig. 3 verbunden. Diese Leitungen werden im folgenden kurz genauer beschrieben und umfassen 40 Dateneingangsleitungen 118, 7 DIR/RF0-Adreßleitungen 131, 24 Hauptsteuerleitungen 130, Takt- und Rücksetzsignalleitungen 142 und 144, zwei Testleitungen 146, 7 DOR/RF1- Adreßleitungen 133, 24 Datenausgangsleitungen 170 und eine 1- Bit-Globalausgangsleitung (GO) 178.
  • EINGANG/AUSGANG
  • Das E/A-System des SVP umfaßt das Dateneingangsregister 154 (DIR) und das Datenausgangsregister 168 (DOR). DIR und DOR sind sequentiell adressierte Doppelanschluß-Speicher und operieren als Hochgeschwindigkeits-Schieberegister. Sowohl das DIR als auch das DOR sind in der bevorzugten Ausführungsform dynamische Speicher.
  • Da das DIR und das DOR im allgemeinen Fall asynchron zu den PEs 150 arbeiten, muß ein bestimmter Typ von Synchronisierung stattfinden, bevor die Daten zwischen dem DIR/DOR und den PEs 150 übertragen werden. Dies findet in Videoanwendungen üblicherweise während der horizontalen Austastlücke statt. Bei einigen Anwendungen können das DIR, DOR und die PEs synchron operieren, wobei jedoch in keinem Fall empfohlen wird, über beide Anschlüsse eines Registers gleichzeitig zu lesen oder zu schreiben.
  • DATENEINGANGSREGISTER
  • Wie in Fig. 2 gezeigt, ist das DIR des Prozessors 102 ein dynamischer 40960-Bit-Doppelanschlußspeicher. Ein Anschluß 119 ist zu 1024 Wörtern von jeweils 40 Bits organisiert und emuliert funktional den Schreibanschluß eines 1024-Wort-Zeilenspeichers. Fig. 4 zeigt ein Zeitablaufdiagramm für ein DIR- Schreiben. Die 40 Dateneingänge 118 (DI0 bis DI39) werden in Verbindung mit den Zeitablaufsignalen Schreibfreigabe 190 (WE), Rücksetzschreiben 192 (RSTWH) und Schreibtakt 194 (SWCK) verwendet. WE 190 steuert sowohl die Schreibfunktion als auch die Inkrementierungsfunktion des Adreßzeigers 148 (Kommutator) synchron zu SWCK 194. Wenn die RSTWH Leitung 192 auf Hochpegel liegt, setzt sie den Adreßzeiger 148 mit der nächsten steigenden Flanke von SWCK auf das erste Wort im 1024-Wort-Puffer zurück. SWCK 194 ist ein kontinuierliches Takteingangssignal. Nach einer anfänglichen Zweitaktverzögerung wird ein 40-Bit- Wort von Daten 198 mit jeder nachfolgenden steigenden Flanke von SWCK 194 geschrieben. Wenn die Datenwörter 0 bis N geschrieben werden sollen, bleibt WE für N + 4 steigende Flanken von SWCK auf Hochpegel. Der Adreßzeiger 148 kann allgemein einen 1-aus-1024-Kommutator, einen Sequenzer oder einen Ringzähler umfassen, der so getriggert wird, daß er am Ende einer horizontalen Austastlücke beginnt und für 1024 Zyklen synchron mit der Abtastfrequenz des A/D-Umsetzers 116 fortfährt. Der Eingangskommutator 148 wird über 1024 mal schneller getaktet als die horizontale Abtastrate. Der Ausgangskommutator 174 kann, muß jedoch nicht unbedingt, mit derselben Rate getaktet werden wie der Eingang.
  • Obwohl zu Zwecken der Beschreibung der Prozessor 102 so dargestellt ist, daß er 1024 Prozessorelemente besitzt, ist zu beachten, daß er mehr oder weniger enthalten kann. Die aktuelle Anzahl hängt von der verwendeten Fernsehsendenorm ab, das heißt NTSC, PAL oder SECAM, oder vom gewünschten System oder den Funktionen bei Anwendungen, die sich nicht auf das Fernsehen beziehen.
  • Der zweite Anschluß 121 des Dateneingangsregisters 154 ist zu 40 Wörtern von jeweils 1024 Bits organisiert; jedes Bit entspricht einem Prozessorelement 150. Der Anschluß 121 ist physikalisch ein Teil der RF0 und ist in den absoluten Adreßraum derselben abgebildet; daher sind das DIR und die RF0 wechselweise ausschließende Schaltungen. Wenn von einem Operanden in einer gegebenen Assemblersprachenzeile des Assemblercodes eines von diesen adressiert wird, kann das andere nicht adressiert werden. Eine Assemblersprachenzeile, die Referenzen auf beide enthält, erzeugt zum Assemblierungszeitpunkt einen Fehler. Dies wird im folgenden genauer beschrieben.
  • Das DIR 154 arbeitet unabhängig vom DOR 168; daher besitzt es seine eigenen Adreßleitungen 131 und einige eigene Steuerleitungen 135. Die genaue Funktion des DIR 154 wird durch viele Leitungen bestimmt: C21, C8, C2, C1, C0, die Inhalte von WRM 234 und die Adressen RF0A6 bis RF0A0 (siehe Fig. 5). Das Signal Steuerleitung C2 = 1 wählt das DIR 154 aus. Die sieben Adreßleitungen RF0A6-RF0A0 wählen 1 aus 40 Bits zum Lesen oder Schreiben aus, während C1 und C0 die Schreibquelle auswählen (für ein Lesen spielen C0 und C1 keine Rolle). Mit bestimmten Kombinationen der Leitungen C1 und C0 hängt die Schreibquelle für das DIR 154 vom Zustand von C21 und C8 und von den Inhalten des Arbeitsregisters M 234 ab. Diese bilden Befehle, sogenannte M-abhängige Befehle, die eine größere Flexibilität des Prozessors 102 erlauben. Die Tabelle 1 zeigt die Steuerleitungsfunktion für das DIR 154. Tabelle 1
  • wobei "m" die binäre Kombination von {RF0A6, RF0A5, ... RF0A0} ist und im Bereich 0 ≤ m ≤ 39 liegt. Der Bereich 40 ≤ m ≤ 127 ist reserviert.
  • Das Prozessorelement-Logikdiagramm der Fig. 5 zeigt die Verbindung von RF0 158 und DIR 154. C21, C8, C2, C1, C0 und RF0A6 bis RF0A0 sind Steuer/Adreß-Leitungen, die allen 1024 PEs gemeinsam sind. Die Signale C280 und M250 stammen jeweils vom WRC 248 bzw. WRM 234. SM 262 stammt von der ALU 260. R 322, 2R 324, L 310 und 2L 312 sind Signale von den vier nächsten Nachbarn dieses PEs. Die 40 DIR-Wörter werden von Befehlen gelesen oder geschrieben, die geschtitzte Schlüssel-Mnemonics verwenden: INP(m), wobei 0 ≤ m ≤ 39, oder XX INP(m), wobei XX eine Nächster-Nachbar-Option ist.
  • Um die Hardware effizienter zu gestalten, werden vom DIR 154 und der RF0 158 dieselben Adreßleitungen und ein Großteil derselben Hardware gemeinsam genutzt.
  • Die Speicherabbildung der Tabelle 2 unten erfordert eine 8-Bit- Adresse. Diese Adresse besteht aus der Steuerleitung C2 (RF0A7) als das MSB sowie den Adreßleitungen RF0A6 bis RF0A0 als weniger signifikante Bits. C2 wird nicht als Adresse betrachtet, da die Auswahl des DIR 154 gegentiber der RF0 158 im Befehlsmnemonic implizit ist. Tabelle 2
  • DIR/RF0-Speicherabbildung: h kennzeichnet hexadezimale Zahlen
  • DATENAUSGANGSREGISTER
  • Wie in Fig. 3 gezeigt, ist das DOR 168 ein dynamischer 24576- Bit-Doppelanschlußspeicher. Ein Anschluß 169 ist in 1024 Wörtern von jeweils 24 Bits organisiert und emuliert funktional den Leseanschluß eines 1024-Wort-Zeilenspeichers. Die Datenausgänge (DO0 bis DO23) 170 werden in Verbindung mit den Signalen Lesefreigabe (RE), Rücksetzlesen (RSTRH) sowie serieller Lesetakt (SRCK) der Fig. 6 verwendet. SRCK 496 ist ein kontinuierliches Takteingangssignal. RE 490 gibt sowohl die Lesefunktion als auch die Adreßzeigerinkrementierungsfunktion synchron mit SRCK 496 frei oder sperrt diese. Wenn die RSTRH- Leitung 494 auf Hochpegel liegt, setzt sie den Adreßzeiger (Kommutator) mit der nächsten steigenden Flanke 498 von SRCK 496 auf das erste Wort im 1024-Wort-Puffer zurück. Nach einer anfänglichen Zweitaktverzögerung wird ein 24-Bit-Wort von Daten eine Zugriffszeit nach der jeweils steigenden Flanke von SRCK ausgegeben. Wenn die Datenwörter 0 bis N gelesen werden sollen, muß RE für N plus 3 steigende Flanken von SRCK auf Hochpegel gehalten werden. Wie oben mit Bezug auf DIR 154 beschrieben worden ist, kann der Adreßzeiger 174 in ähnlicher Weise einen 1-aus-1024-Kommutator oder Ringzähler umfassen.
  • Der zweite Anschluß 167 des Datenausgangsregisters 168 ist in 24 Wörtern von jeweils 1024 Bits organisiert; jedes Bit entspricht einem Prozessorelement 150. Der Anschluß 167 des DOR 168 ist physikalisch ein Teil der RF1 166 und ist in deren absoluten Adressraum abgebildet; daher sind das DOR 168 und die RF1 166 wechselweise ausschließende Schaltungen. Wenn die eine von einem Operanden in einer gegebenen Assemblerzeile adressiert wird, kann die andere nicht adressiert werden. Eine Assemblerzeile, die Referenzen auf beide enthält, erzeugt einen Assemblierungszeitfehler. Dies wird im folgenden genauer erläutert.
  • Das DOR 168 arbeitet unabhängig vom DIR 154; daher besitzt es seine eigenen Adreßleitungen 133 und einige eigene Steuerleitungen 137. Die genaue Funktion des DOR 168 wird durch viele Leitungen bestimmt: C21, C5, C4, C3, die Inhalte von WRM 234 und die Adressen RF1A6 bis RF1A0 (siehe Fig. 5). Ein Signal Steuerleitung C5 = 1 wählt das DOR 168 aus. Die 7 Adreßleitungen 133 wählen 1 aus 24 Bits zum Lesen oder Schreiben aus, während C3 und C4 die Schreibquelle auswählen. Bei bestimmten Kombinationen der Steuerleitungen C3 und C4 hängt die Schreibquelle des DOR 168 vom Zustand von C21 und von den Inhalten des Arbeitsregisters M234 ab. Diese bilden Befehle, sogenannte M-abhängige Befehle, die eine größere Flexibilität des Prozessors 102 zulassen. Die Tabelle 3 zeigt die Funktion der Steuerleitung 130 für das DOR 168. Tabelle 3
  • wobei "q" die binäre Kombination von {RF1A6, RF1A5, RF1A0} ist und im Bereich 0 ≤ q ≤ 23 liegt. Der Bereich 24 ≤ q ≤ 127 ist reserviert.
  • Das Logikdiagramm der Fig. 5 zeigt genauer die Verbindung der RF1 und des DOR. C21, C5, C4, C3 und RF1A6 bis RF1A0 sind Steuer/Adreß/Daten-Leitungen, die allen 1024 PEs gemeinsam sind. Die Signale C280 und M250 stammen vom WRC 248 bzw. WRM 234. SM 262 und CY 264 stammen von der ALU 260.
  • Um die Hardware effizienter zu gestalten, werden vom DOR 168 und von der RF1 166 dieselben Adreßleitungen 133 und ein Großteil derselben Hardware gemeinsam genutzt.
  • Die Speicherabbildung der Tabelle 4 unten erfordert eine 8-Bit- Adresse. Diese Adresse besteht aus der Steuerleitung C5 (RF1A7) als das MSB und den Adreßleitungen RF1A6 bis RF1A0 (133) als weniger signifikante Bits. C5 wird nicht als Adresse betrachtet, da die Auswahl des DOR 168 gegentiber dem RF1 166 durch das Bit C5 im Befehlsmnemonic implizit ist. Tabelle 4
  • DOR/RF1-Speicherabbildung: h kennzeichnet hexadezimale Zahlen
  • PE-REGISTERGRUPPEN
  • In Fig. 3 enthält jedes PE 150 zwei Registergruppen RF0 158 und RF1 166. Jede RF umfaßt 128 Wörter mit 1 Bit eines Lese/Schreib-Speichers für insgesamt 256 Bits je PE 150.
  • Es gibt zwei Adressierungsstrukturen in der Prozessormatrix 105: eine Adressierungsstruktur 131 für die RF0 158, die alle 1024 PEs abdeckt, und eine Adressierungsstruktur 133 für die RF1 166, die alle 1024 PEs abdeckt. Beide Registergruppen besitzen unabhangige Adreß-, Auswahl- und Befehlsleitungen, die ihnen zugeordnet sind, nutzen jedoch dieselbe Steuerung 130 und dieselbe Zeitablaufschaltung 142 gemeinsam. Dies bedeutet, daß beide Registergruppen die Daten gleichzeitig lesen und sie für eine elektrische Effizienz unabhängig voneinander schreiben.
  • RF0 158 und RF1 166 können Nur-Lese-Register sein oder können von verschiedenen Quellen einschließlich der Register C 248 oder M 234 oder direkt vom Ausgang SM 262 der ALU 260 geschrieben werden. Ferner erlauben M-abhängige Befehle bedingt Datenquellen wie den Ausgang CY 264 direkt von der ALU 260 oder von nahen Nachbarn 160. "X" in der folgenden Tabelle 5 stellt den linken 310 oder den rechten 322 Nachbarn dar, während "X2" den zweiten Nachbarn links 312 oder den zweiten Nachbarn rechts 324 darstellt, in Abhängigkeit vom Wert in WRM 234. In eine RF können andere Daten geschrieben werden, indem sie zuerst in eine dieser Stellen weitergeleitet werden.
  • Die folgende Tabelle 5 erläutert die möglichen Schreibdatenquellen für jede Registergruppe: Tabelle 5
  • Wie oben erwähnt, sind daher die Registergruppen RF0 und RF1 unabhängig adressierbar, so daß eine 1-Bit-Mehrfachakkumulationsoperation in einem einzelnen Prozessorzyklus durchgeführt werden kann. Das heißt, der folqende arithmetische Ausdruck kann von jedem PE in einem Taktzyklus berechnet werden:
  • R1(p)' = (R0(n) M) + R1(p)
  • wobei m = der Wert, der im WRM (Arbeitsregister M) enthalten ist
  • R0(n) = der in RF0 an der Adresse n enthaltene Wert
  • R1(p) = der in RF1 an der Adresse p enthaltene Wert
  • R1(p)' = der Wert, der an der Adresse p in die RF1 zurückgeschrieben wird.
  • In einer bevorzugten Ausführungsform sind die Registergruppen, das Dateneingangsregister und das Datenausgangsregister dynamische Nur-Lese-Speicher und werden periodisch aufgefrischt, solange sie nicht vom laufenden Programm implizit aufgefrischt werden. In vielen Anwendungen (wie z. B. beim digitalen Fernsehen) hält das Programm die RF aufgefrischt, wenn die Softwareschleife häufiger wiederholt wird als es die Auffrischperiode erfordert. Dies hält jede vom Programm benutzte Speicherstelle aufgefrischt, während zugelassen wird, daß unbenutzte Bits unaufgefrischt bleiben. Ferner kann ein Programm explizit beide RF auffrischen, indem es einfach alle interessierenden Stellen innerhalb der Auffrischperiode liest.
  • REGISTERGRUPPE 0 (RF0)
  • Die RF0 158 arbeitet unabhängig von der RF1 166; daher besitzt sie ihre eigenen Adreßleitungen 131 und einige eigene Steuerleitungen. Die genaue Funktion der RF0 158 wird durch viele Leitungen bestimmt: C21, C8, C2, C1, C0, die Inhalte von WRM 234 und die Adressen RF0A6 bis RF0A0 (siehe Fig. 5). Das Signal Steuerleitung 448 C2 = 0 wählt die RF0 158 aus. Die sieben Adreßleitungen 131 wählen 1 aus 128 Bits zum Lesen oder Schreiben aus, während C1 und C0 die Schreibquelle auswählen. Bei bestimmten Kombinationen der Steuerleitungen C1 und C0 hängt die Schreibquelle für die RF0 158 vom Zustand von C21 und C8 und von den Inhalten des Arbeitsregisters M 234 ab. Diese bilden Befehle, sogenannte M-abhängige Befehle, die eine größere Flexibilität des Prozessors 102 zulassen. Die Tabelle 6 zeigt die Steuerleitungsfunktion für die Registergruppe 0 158. Tabelle 6
  • wobei "n" die binäre Kombination von {RF0A6, RF0A5, ... RF0A0} ist und im Bereich 0 ≤ n ≤ 127 liegt.
  • Das Logikdiagramm der Fig. 5 zeigt die Verbindung der RF0 158 mit dem DIR 154 genauer. C21, C8, C2, C1, C0 und RF0A6 bis RF0A0 sind die Steuer/Adreß-Leitungen, die allen 1024 PEs gemeinsam sind. Die Signale C280 und M250 stammen vom WRC 248 bzw. WRM 234. SM 262 stammt von der ALU 260. R 322, 2R 324, L 310 sowie 2L 312 sind Signale von den vier nächsten Nachbarn dieser PEs.
  • Um die Hardware effizienter zu gestalten, werden vom DIR 154 und der RF0 158 dieselben Adreßleitungen 131 und ein Großteil derselben Hardware gemeinsam genutzt. Die Speicherkarte der Tabelle 2 benötigt eine 8-Bit-Adresse. Diese Adresse besteht aus der Steuerleitung C2 als MSB. Die Adreßleitungen RF0A6 bis RF0A0 bilden die weniger signifikanten Bits. C2 wird nicht als Adresse betrachtet, da die Auswahl des DIR gegenüber dem RF0 im Befehlsmnemonic implizit ist. Andere Register werden in den Speicherraum abgebildet, so daß der gesamte undefinierte Speicherraum in der Speicherabbildung der Tabelle 2 reserviert ist.
  • REGISTERGRUPPE 1 (RF1)
  • Die RF1 166 arbeitet unabhingig von der RF0 158; daher besitzt sie ihre eigenen Adreßleitungen 133 und einige eigene Steuerleitungen. Die genaue Funktion der RF1 166 wird durch viele Leitungen bestimmt: C21, C5, C4, C3, die Inhalte von WRM 234 und die Adressen RF0A6 bis RF0A0 (133). Das Signal Steuerleitung C5 = 0 wählt die RF1 aus. Die sieben Adreßleitungen 133 wählen 1 aus 128 Bits zum Lesen oder Schreiben aus, während C4 und C3 die Schreibquelle auswählen. Bei bestimmten Kombinationen der Steuerleitungen C4 und C3 hängt die Schreibquelle vom Zustand von C21 und von den Inhalten des Arbeitsregisters M 234 ab. Diese bilden Befehle, sogenannte M-abhängige Befehle, die eine größere Flexibilität des Prozessors zulassen. Die Tabelle 8 zeigt die Steuerleitungsfunktion für die Registergruppe 1. Tabelle 8
  • wobei "p" die binäre Kombination von {RF1A6, RF1A5, ... RF1A0} ist und im Bereich 0 ≤ p ≤ 127 liegt.
  • Das Logikdiagramm der Fig. 5 zeigt ferner die Verbindung der RF1 166 und des DOR 168 genauer. C21, C5, C4, C3 und RF1A6 bis RF1A0 sind die Steuer/Adreß-Leitungen, die allen 1024 PEs gemeinsam sind. Die Signale C280 und M250 stammen vom WRC 248 bzw. WRM 234. SM 262 und CY 264 stammen von der ALU 260.
  • Um die Hardware effizienter zu gestalten, werden vom DOR 168 und der RF1 166 dieselben Adreßleitungen 133 und ein Großteil derselben Hardware gemeinsam genutzt. Die Speicherkarte der Tabelle 4 benötigt eine 8-Bit-Adresse. Diese Adresse besteht aus der Steuerleitung C5, die das MSB darstellt. Die Adreßleitungen RF1A6 bis RF1A0 sind die weniger signifikanten Bits. C5 wird nicht als Adresse betrachtet, da die Auswahl des DOR gegenüber der RF1 im Befehlsmnemonic implizit ist. Andere Register werden in den Speicherraum abgebildet, so daß der gesamte undefinierte Speicherraum in der Speicherabbildung der Tabelle 4 reserviert ist.
  • LESE/SCHREIB-SCHALTUNG
  • Wie in Fig. 3 gezeigt, enthalten die Blöcke 156 und 169, die etikettierte Lese/Schreib-Schaltungen sind, einen oder mehrere Leseverstärker. Fig. 7 zeigt, daß die RF0 einen dynamischen 128-Bit-Schreib/Lese-Speicher enthält, der zu 1 128 konfiguriert ist. Der RF0-Datenspeicher 158 und das DIR-Eingangsregister 154 sind Teile derselben 1 168-DRAM-Spalte, wobei sich jedoch das DIR 154 von dem RF0-Teil 158 dadurch unterscheidet, daß in das DIR 154 von den Eingängen DI0-39 40 Bits parallel geschrieben werden können. Eine ähnliche Anordnung besteht für das DOR/RF1. Am DOR sind jedoch nur 24 parallele Ausgangsleitungen vorgesehen (D00-23). In einer Ausführungsform gibt es zwei Leseverstärker pro Prozessorelement 150. Einen Leseverstärker 156 für DIR/RF0 und einen anderen Leseverstärker 167 für DOR/RF1. Jeder Leseverstärker liest oder schreibt Daten des adressierten Abschnitts des Datenregisters 154 oder 168 oder der Registergruppe 158 oder 166. Die gelesenen Daten werden zwischen den Registern und Multiplexern (508), wie in Fig. 7 gezeigt, und den Speicherbänken DIR/RF0 und DOR/RF1 über die E/A-Leitungen 500, 502, 504 und 506 übertragen. Das genaue adressierte Bit im 1 128-Speicherabschnitt RF0 158 der DRAM-Spalte wird von den 128 Wortleitungen 160 ausgewählt, die von allen 1024 Prozessorelementen 150 gemeinsam genutzt werden. Die Steuervorrichtung 128 erzeugt 6 Adreßbits 131A für das DIR 154 für eine 1-aus-64-Adressenauswahl; (das siebte Bit wird decodiert als: "= 0" für eine Auswahl des DIR und "= 1" für ein nicht ausgewähltes DIR) und erzeugt 7 Adreßbits 1318 für die RF0 158 für eine 1-aus-128-Adreßauswahl. Dieselbe Adreßauswahl wird für RF0 oder DIR aller 1024 Prozessorelemente 150 erzeugt. In ähnlicher Weise wird ein zweiter 1 Bit breiter dynamischer Speicher 166, mit RF1 bezeichnet, an der Ausgangsseite des Prozessors 102 verwendet, der wiederum 7 Adreßbits 1338 für eine 1-aus-128-Adressenauswahl empfängt. Der Speicher RF1 166 ist einem 24-Bit-Datenausgangsregister 168, DOR genannt, zugeordnet, und empfängt 5 Adreßbits 133A für eine 1-aus-32-Adreßauswahl. Der Eingangskommutator 148 1024 Eingangsregister 154 während einer horizontalen Abtastperiode geladen werden können. Der Ausgangskommutator 174 kann, muß jedoch nicht unbedingt, mit derselben Rate getaktet werden wie der Eingang.
  • Der Zeigereingang 151 vom Kommutator 148 steuert einen Satz von 40 Eingangstransistoren 516 an, die die 40 Datenleitungen 118 (von den Paralleleingängen DI0-D139) mit den dynamischen Speicherzellen 518 verbinden. Diese Zellen besitzen zwei Anschlüsse und werden über die Zugriffstransistoren 520 und die gefalteten Bitleitungen 522 und 524, die mit dem Leseverstärker 156 verbunden sind, beschrieben oder auch ausgelesen, wenn sie von den Wortleitungen 526 adressiert werden. Es gibt 40 Wortleitungen 526 für den DIR-Abschnitt und 128 Wortleitungen 160 für den RF0-Abschnitt dieser dynamischen 168-Bit- Schreib/Lese-(DRAM)-Spalte.
  • Wie oben erwähnt, ist das DIR eine 2-Transistor-Doppelanschlußzelle. Das Lesen und Schreiben kann mit jedem Anschluß durchgeführt werden. Das DIR operiert wie ein dynamisches Hochgeschwindigkeits-Schieberegister. Die Doppelanschlußeigenschaft erlaubt den asynchronen Austausch von Daten mit dem DIR. Durch die Verwendung dynamischer Zellen wird das Layout des Schieberegisters erheblich reduziert. Auch wenn eine Dummy- Zelle verwendet werden kann, ist dies für den Zellenbetrieb nicht erforderlich.
  • Das Datenausgangsregister verwendet eine 3-Transistor-Doppelanschluß-Verstärkungszelle. Bei den meisten Anwendungen wird am Anschluß 167 Lesen und Schreiben zugelassen, während jedoch am zweiten Anschluß nur das Lesen durchgeführt wird. Das DOR 168 operiert ebenfalls als dynamisches Hochgeschwindigkeits- Schieberegister Das DOR mit der Verstärkungstransistorschaltung erlaubt das Lesen des Kondensators 519, ohne die Kondensatordaten zu zerstören. Im Betrieb ist eine logische "1" in der Zelle 519 größer als 1 VT des Transistors 1640. Wenn die Auswahlleitung 172 eingeschaltet ist, wird die Leitung 1642 schließlich auf eine logische "0" oder auf 0 Volt gezogen. Wenn die Ladung in der Zelle 519 kleiner ist als 1 VT (d. h. eine logische "0" oder Niedrigpegel), bleibt die Ladung auf der Leitung 1642 auf dem Vorladewert. Der Transistor 1642 ist der Zellenleseauswahltransistor. Alle 24 Datenausgangsleitungen 560 werden vom Transistor 1642 gleichzeitig erfaßt (d. h. der Tränsistor 1642 wählt die prozessorelementzellen aus). Wie gezeigt ist der Knoten 1650 isoliert. Diese Verbindung reduziert die Möglichkeit eines Datenverlustes in Zellen aufgrund von Störungen, die durch das Auslesen anderer Prozessorelementzellen erzeugt werden. Jeder der 128 Zellenabschnitte besitzt einen Komparator 1634 an der Ausgangsleitung, um die Signale zu erfassen. An den Komparatoreingang 1636 wird eine Referenzspannung angelegt. Der Source-Anschluß 1638 des Transistors 1630 ist mit VDD verbunden. Dies ist jedoch nicht notwendig, der Source-Anschluß 1638 kann auch mit einem weiteren Spannungspegel verbunden sein.
  • Die Fig. 8a-d zeigen Spannungspegel auf verschiedenen Leitungen und Knoten der DOR-Schaltung.
  • Fig. 9 zeigt eine alternative DOR-Zelle.
  • Wie oben erwähnt, verwendet eine bevorzugte Ausführungsform von PEs 150 für Videoanwendungen einen 40 Bit breiten Eingangsdatenbus 118 sowie einen 24 Bit breiten Ausgangsdatenbus 170. Diese Busbreiten führen in Verbindung mit den hohen Taktgeschwindigkeiten von 8 fsc (35 ns) zu einem hohen Leistungsverbrauch und zu Störungen auf den Busleitungen, wenn die gesamte Busbreite für die 1024 DIR 154 oder DOR 168 für die gesamte Taktperiode mit Leistung versorgt werden müssen. Da jedoch nur ein einzelnes DIR (oder DOR) zu einem bestimmten Abschnitt der Taktperiode gelesen oder geschrieben wird, ist es möglich, nur das geschriebene DIR 168 oder einen Abschnitt der seriellen DIR-Matrix, die das geschriebene DIR enthält, zu einem beliebigen gegebenen Zeitpunkt mit Leistung zu versorgen.
  • Fig. 10 zeigt eine Leistungsaufnahme- und Störunterdrückungssteuerschaltung 580 einer Eingangsbusleitung 118 des SVP 102. Die Schaltung 580 reduziert die Störungen und die Leistungsaufnahme des SVP 102 während eines Schreibens des DIR 154. Zum Zweck der Beschreibung und Erläuterung ist die 1024 40 DIR- Matrix 154 in 8 Segmente oder Abschnitte 586a-h unterteilt, die jeweils 128 PEs 150 enthalten. Die Daten werden in Speicherstellen jedes der 128 DIR-Segmente 586 mittels eines Segments des Kommutators 148 aufgenommen, der unter der Steuerung der entsprechenden Steuereinheit 602 operiert. Die Steuereinheit 1 (602a) besitzt ein Segment von Takteingängen 608, die synchron mit der horizontalen Abtastrate des Eingangsvideodatensignals auf der Leitung 118 gesteuert werden. Jede der 8 Steuereinheiten 602 ist mit einem Rücksetzsignal 610 verbunden. Das Rücksetzsignal veranlaßt die erste Steuereinheit 602a, einzuschalten, und schaltet die übrigen Einheiten 602b-h ab. Die Steuereinheit 602 gibt Signale aus, die ein Kommutatorfreigabesignal 151 zum Freigeben des Kommutators 588 für die obenbeschriebene Operation enthalten. Die einzelnen Ausgangssignale der Steuereinheit 602 enthalten ferner ein Einschalt-Ausgangssignal 606 zum Einschalten der nächsten benachbarten Steuereinheit für eine Operation, wenn das Datensignalschreiben in den aktuellen Operationsabschnitt kurz vor dem Abschluß steht. Wenn z. B. das Datenlesen von der Leitung 118 zum DIR-Abschnitt 586a kurz vor dem Abschluß steht, gibt die nächste benachbarte Steuereinheit 602b ihr Kommutatorsegment 588b frei, so daß es für ein Datenschreiben bereit ist. Wenn das Segment 602b den Kommutatorabschnitt 588b frei gibt, schaltet ein Signal auf der Leitung 604a die vorangehende Steuereinheit 602a ab, da sie das Schreiben von Daten in das Segment 586a abgeschlossen hat. Diese Einschalt/Ausschalt- Steuerungssequenz wird für jeden Abschnitt wiederholt, bis alle 1024 DIRs geladen worden sind. Auf diese Weise wird nur der Kommutator für die Gruppe von DIRs, die geschrieben werden, während eines Teils des Taktzyklus eingeschaltet. Gemäß der obenbeschriebenen Operation des SVP 102 werden während der horizontalen Austastlücke des videodatensignals die DIR-Daten in allen Abschnitten 586a-h in die RF0 aufgenommen, während das Steuervorrichtungsrücksetzsignal aktiv wird und eine neue Abtastzeile zur Eingabe bereit steht.
  • In Fig. 11 ist ein logisches Blockschaltbild einer bevorzugten Ausführungsform der Leistungsaufnahme- und Störunterdrückungssteuerschaltung 580, die in Fig. 10 gezeigt ist, genauer dargestellt. In Fig. 11 umfaßt die Steuerschaltung 580 Teilschaltungen, die Flip-Flops 614, 620 und 622 enthalten.
  • Im Betrieb triggert ein Rücksetzsignal am Eingang 610 den S- Eingang oder Setz-Eingang der Flip-Flops 614 und 620a. Dasselbe Rücksetzsignal 610 triggert die Löscheingänge der Flip- Flops 620b-620g und den Rücksetzeingang des Flip-Flops 622. Wenn der Setz-Eingang des Flip-Flops 620a getriggert wird, wird dessen Q-Ausgang aktiviert, um die Treiber 628 freizugeben. Wenn die Treiber 628 freigegeben sind, werden die Taktsignale an ihren Eingängen den Eingängen des Kommutators 588a zugeführt. Das Einschalten des Kommutators 588a für die Operation beginnt mit einem Hochpegel am Q-Ausgangssignal des Flip- Flops 614. Das Kommutatorfreigabesignal 151 triggert das Lesen der ersten 40 Bits des auf den Leitungen 118 vorhandenen Videodatensignals in die ersten DIR-Speicherstellen. Ein Signal auf der Leitung 604 setzt das Flip-Flop 614 zurück, nachdem der Kommutator 588a fertig ist.
  • Das Taktsignal 608 triggert den Kommutator 588, der wie oben beschrieben mit der ankommenden videosignalrate zeitlich gesteuert wird. Dieselben Taktsignale werden allen Takteingängen 608 gleichzeitig zugeführt. Da jedoch die Treiber 608b-608h gesperrt sind, sind ihre zugehorigen Kommutatoren 588b-588h nicht aktiviert. Der Kommutator 588a gibt sequentiell jede Signalleitung 151&sub0; bis 151&sub1;&sub2;&sub7; frei, die den DIR- Speicherstellen 0-127 des ersten Segments zugeordnet sind. Wenn die Signalleitung 151&sub1;&sub2;&sub7; für ein Schreiben des DIR 127 freigegeben wird, wird das Freigabesignal ferner dem Setz- Eingang des Flip-Flops 620b zugeführt und über die Leitung 606 dem Kommutator 588b zugeführt, um diesen einzuschalten. Der Setz- oder Q-Ausgang des Flip-Flops 620b aktiviert die Treiber 608b, um die Taktsignale an den Kommutator 588b für dessen Operation weiterzuleiten, wie mit Bezug auf den Kommutator 588a beschrieben worden ist. Wenn die Signalleitung 151&sub1;&sub2;&sub8; durch den Kommutator 588b aktiviert wird, wird über die Leitung 604 ein Signal zum Abschalten der Kommutatoren an den Rücksetz-Eingang des Flip-Flops 620a angelegt, um die Treiber 628a zu deaktivieren. Die Deaktivierung der Treiber 628a findet statt, nachdem die 40 Bits an Daten in das DIR 127 eingegeben worden sind. Die Einschalt- und Abschaltsequenz wird fortgesetzt, bis alle Kommutatoren 588a-588h aktiviert worden sind, um die DIR-Stellen 0-1023 zu laden. Das Flip-Flop 622 wird nach Abschluß der Operation des Kommutators 588h durch das Rücksetzsignal 610 zurückgesetzt.
  • Die Steuerschaltung 580 reduziert die Leistungsaufnahme erheblich, indem sie nur den Abschnitt der Schaltung einschaltet, der geschrieben wird. Dies dient ferner zur Verringerung der Störungen, die ansonsten auf den Datenleitungen vorhanden wären.
  • Fig. 12 zeigt eine Leistungs- und Störunterdrückungsschaltung zur Verwendung mit dem DOR 168 oder der Ausgangsseite des Prozessors 102. Die Schaltung der Fig. 12 operiert ähnlich der Schaltung der Fig. 11. Die Aufteilung des DIR und des DOR in 8 Sektionen dient nur der Erläuterung. In Abhängigkeit vom Chip- Layout ist es vorstellbar, 32 oder mehr Sektionen vorzusehen. Außerdem kann der Kommutator in einer alternativen Ausführungsform ein Teil der Steuereinheit sein. Die Kommutatorsegmente 588 können Teile eines einzelnen Kommutators sein, die als getrennte Kommutatoren funktionieren, oder es können mehrere einzelne Kommutatoren vorhanden sind.
  • STANDARD- UND NICHTSTANDARD-SIGNALE
  • Fernsehsysteme besitzen viele Signalquellen. Diese können in zwei Typen klassifiziert werden: Standard und Nichtstandard. Ein Standardsignal ist der Idealfall für digitale Schaltungen, während Nichtstandard-Signale für ein digitales Fernsehsystem viele Probleme mit sich bringen. Ein Beispiel eines Standardsignals ist ein Fernsehsender, bei dem die Farbsynchronsignalfrequenz, die horizontalen und vertikalen Synchronperioden sowie die Phasenbeziehungen zwischen diesen drei Signalen im wesentlichen unveränderlich sind. Ein privates Videoabspielgerät ist ein gutes Beispiel einer Nichtstandard-Signalquelle. Dieses wird so klassifiziert, da die genaue Beziehung zwischen den horizontalen Synchronimpulsen und dem Farbsynchronsignal während des Aufzeichnungs/Wiedergabeprozesses verloren geht und das Einbringen des Bandzitterns die zeitliche Beziehung zwischen aufeinanderfolgenden Halbbildern stört.
  • Obwohl Videodatensignale auf der Leitung 118 kontinuierlich dem SVP 102 zugeführt werden, halten die Matrixdateneingangsregister 109 zu einem Zeitpunkt nur eine Videoabtastzeile. Wie oben beschrieben, wird während der horizontalen Austastlücke die momentan gehaltene Abtastzeile von Daten in die RF0-Registergruppe geschoben, um die Eingangsregister für eine neue Abtastzeile von Daten freizumachen. Die neue Abtastzeile wird nach der horizontalen Austastlücke zugeführt. Während der nächsten Austastlücke und Abtastzeilenzeit werden die momentan in den Registergruppen RF0 und RF1 gehaltenen Daten von den PEs verarbeitet. Ferner können die Registergruppendaten über das Nachbarkommunikationsnetz zu anderen Prozessorelementen übertragen werden. Obwohl im allgemeinen nicht durchgeführt, können die Daten im DIR oder DOR direkt von den Prozessorelementen verarbeitetwerden. Diese Reihenfolge von Ereignissen ist bei Nichtstandard-Signalanwendungen nicht erwünscht, bei denen keine Pause (horizontale Austastlücke) im Eingangzsignal vorhanden ist. Ein Beispiel einer solchen Anwendung liegt vor, wenn das Eingangssignal ein Ausgangssignal eines Videoabspielgerätes (VCR) ist. In diesem Fall ist keine Zeit vorhanden, um das Signal anzuhalten und die Daten zwischen den Prozessorelementkomponenten, z. B. vom DIR zur RF0 und von der RF1 zum DOR, zu übertragen. Um dieses Problem zu lösen, kann die in Fig. 13 gezeigte SVP-Architektur verwendet werden. In Fig. 13 sind die 1024 Dateneingangsregister 154 in mehrere Segmente aufgeteilt. In diesem Beispiel sind die DIRs in zwei Segmente aufgeteilt, das linke Segment 650 und das rechte Segment 652. Es ist zu beachten, daß bei Bedarf mehr Segmente vorhanden sein können. Jedes Segment 650 und 652 enthält eine Hälfte (512) aller Prozessorelemente. Zur Vereinfachung der Darstellung und der Beschreibung sind jeweils nur ein Prozessorelement der linken Seite und ein Prozessorelement der rechten Seite gezeigt. Im Betrieb werden die Datensignale auf der Leitung 118 in die DIRs des Segments 650 übertragen, während die vorher im Segment 652 gespeicherten Daten gleichzeitig in die Registergruppe 656 übertragen werden. Nachdem die Daten vom DIR-Segment 652 in die Registergruppe 656 übertragen worden sind, übertragen die DIRs des Segments 650 ihre Daten zur Registergruppe 654, während die DIRs des Segments 652 neue Daten laden. Auf diese Weise muß nur eine Hälfte von DIRs des Prozessors gefüllt sein, bevor sie in die Registergruppe geschoben wird.
  • Ein Beispiel der Steuerschaltung 658 zum Steuern der Segmentauswahl und -operation ist ebenfalls in Fig. 13 gezeigt. Die Steuerschaltung 658 enthält DIR-Auswahltransistoren, wie z. B. die Transistoren 670 und 672 für die linke Hälfte sowie 674 und 676 für die rechte Hälfte. Der Source-Anschluß und der Drain-Anschluß des Auswahltransistors 670 sind zwischen dem DIR und dem Prozessorelement-Leseverstärker 678 angeschlossen. Der Gate-Anschluß des Transistors 670 ist mit dem Ausgang des UND-Gatters 682 verbunden. Der Eingangsanschluß 692 des UND- Gatters 682 empfängt ein Signal XFERLEFT oder XFERIGHT. Der Eingangsanschluß 690 empfängt das Mikrocode-Steuerbit C2. Wenn C2 = 1 gilt, ist das DIR ausgewählt; wenn C2 = 0 gilt, ist die RF0 ausgewählt.
  • Der Transistor 672 ist in ähnlicher Weise zwischen dem DIR 650 und dem Leseverstärker 678 angeschlossen. In ähnlicher Weise sind die Transistoren 674 und 676 des Segments 652 angeschlossen. Jedes DIR jeder Segmentsteuerschaltung enthält ferner ein 2-Transistor-Netzwerk, das die Leseverstärker bei Bedarf während der Operation in einen bekannten Zustand zwingt. Dies sind die Transistoren 662 und 664 für die DIRs der linken Hälfte und die Transistoren 666 und 668 für die DIRs der rechten Hälfte.
  • Der Source-Anschluß des Transistors 662 ist mit dem Source- Anschluß des Transistors 670 verbunden, während sein Drain- Anschluß geerdet ist. In ähnlicher Weise ist der Source-Anschluß des Transistors 664 mit dem Source-Anschluß des Transistors 672 verbunden. Der Drain-Anschluß des Transistors 664 ist jedoch mit VDD verbunden. Die Gate-Anschlüsse der Transistoren 662 und 664 sind mit dem Ausgang des UND-Gatters 684 verbunden. Das UND-Gatter 684 besitzt zwei Eingänge. Der Eingang 688 ist mit dem Ausgang des Invertierers 686 verbunden dessen Eingang mit dem Signal XFERLEFT/XFERRIGHT verbunden ist. Der Eingang 690 des UND-Gatters 684 ist mit dem Steuerbit C2 verbunden.
  • Der Steuerausgang vom UND-Gatter 684 ist von der Segmenthälfte 650 zu 652 kreuzgekoppelt, so daß der Ausgang die Transistoren 662 und 664 auf der linken Seite und die Transistoren 674 und 676 auf der rechten Seite steuert. Der Ausgang des UND-Gatters 682 ist in ähnlicher Weise zwischen den linken und rechten Hälften des Prozessors 102 kreuzgekoppelt. Auf der linken Seite steuert der Ausgang des Gatters 682 die Transistoren 670 und 672. Auf der rechten Seite steuert das Gatter 682 die Transistoren 666 und 668.
  • Im Betrieb führt ein Hochpegel auf den Signalen XFERLEFT und C2 zur Ausgabe eines Niedrigpegelsignals vom UND-Gatter 684 und zur Ausgabe eines Hochpegelsignals vom UND-Gatter 682.
  • Dies wählt die Inhalte der DIRs der linken Seite für die Übertragung zur RF0 aus und aktiviert die DIRs der rechten Seite für das Laden. Ein Niedrigpegel oder ein Signal XFERRIGHT am Anschluß 692 bei gleichzeitigem C2 = 1 wählt die DIRs der linken Seite für das Laden aus und wählt die DIRs der rechten Seite für das Übertragen von Daten zur RF0 aus. Diese Sequenz wird wiederholt, so daß die DIR-Abtastung kontinuierlich in kolbenähnlicher Weise abwechselnd Daten empfängt und überträgt.
  • Nachdem eine volle Abtastzeile in die DIRs geladen worden und in die Registergruppen übertragen worden ist, führt ein vom Prozessor 102 ausgeführtes Softwareprogramm eine logische ODER-verknüpfung der übertragenen geraden Adreßdaten mit Nullen durch, um die ursprünglichen Daten wiederzugewinnen. Die übertragenen ungeraden Adreßdaten werden mit Einsen logisch UND-verknüpft, um die ursprünglichen Daten wiederherzustellen. Dies ist in der Fig. 14 gezeigt. Nachdem die von der Datenleitung 118 empfangenen Daten aus den zwei Segmenten wiedergewonnen worden sind, kann die Verarbeitung wie oben beschrieben beginnen.
  • Fig. 15 zeigt ein alternatives Schema zum Wiedergewinnen der ursprünglichen übertragenen Daten. Statt die geraden und ungeraden Adressen separat wiederzugewinnen, können die Drain- Anschlüsse der Transistoren 664 und 668 in Fig. 13 auf Masse gezogen werden und die ungeraden und geraden Adressen gleich behandelt werden. Es tritt folgendes ein. Eingabe der ersten Hälfte: (XFERLEFT = 1); M = 1, A = INP(j), B = 0, C = 0, R1(n) = SM. Anschließend werden die ersten Daten mit den Ergebnissen des ersten Abschnitts ODER-verknüpft: (XFERLEFT = 0); M = 1, A = R1(n), B = INP(j), C = 1, R1(n) = CY.
  • Fig. 16 zeigt die DIR-Steuerschaltung der Fig. 13 genauer mit leicht veränderten Einzelheiten. Fig. 17 zeigt die DOR-Steuerschaltung der Fig. 16 genauer mit leicht veränderten Einzelheiten.
  • REGISTERGRUPPEN-AUFFRISCHUNG
  • Wie oben beschrieben, bestehen die Registergruppen aus dynamischen Zellen, die in aufeinanderfolgenden Auffrischperioden geeignet aufgefrischt werden, damit sie ihre Inhalte behalten. Es müssen nur jene Adressen aufgefrischt werden, die von der Software benutzt werden. Alle übrigen Adressen können ohne Auffrischung bleiben, da ihre Daten nicht benötigt werden.
  • Eine Auffrischungsoperation ist einfach ein Lesen der jeweiligen Adressen, die eine Datenerhaltung erfordern; daher hält bei vielen Anwendungen das Softwareprogramm die RFs aufgefrischt, wenn die Softwareschleife häufiger wiederholt wird als es die Auffrischperiode erfordert.
  • Das Auffrischen aller 256k Bits im SVP 102 erfordert nur 64 Zyklen. Dies liegt daran, daß jede RF zu einem Zeitpunkt 2 Bits liest und auffrischt (bei insgesamt 4 Bits pro PE). Um eine vollständige Auffrischung des gesamten SVP 102 durchzuführen, wird jede RF in ein beliebiges Arbeitsregister gelesen, die Adresse jedesmal um 2 inkrementiert und das ganze 64 mal wiederholt. Das folgende Programm erläutert eine Auffrischoperation.
  • Zum Beispiel:
  • A = R0(0): B = R1(0) ; Auffrischen von 4.1024 Bits
  • A = R0(2): B = R1(2) ; Inkrementiere Adresse um 2
  • :
  • :
  • A = R0(124): B = R1(124) ;
  • A = R0(126): B = R1(126) ; Auffrischen abgeschlossen
  • DIE ALU
  • In Fig. 5 ist die ALU 164 als einfacher Volladdierer/Subtrahierer 260 mit einem 1-Bit-Multiplizierer 258 (UND- Gatter) gezeigt. Die Eingänge stammen von WRM 234, WRA 238, WRB 242, WRC 248 und der Steuerleitung C21 252. Die Ausgänge der ALU 164 sind Summe 262 (SM), Übertrag 264 (CY) sowie Borgübertrag 266 (BW).
  • SCHALTBILD DER ALU
  • Wie in Fig. 5 gezeigt, besitzt die ALU 164 zwei Betriebsarten, die durch die Steuerleitung C21 gesteuert werden: eine Betriebsart, in der der Multiplizierer 258 freigegeben ist und M-abhängige Befehle gesperrt sind (C21 = 0), und die zweite Betriebsart, bei der der Multiplizierer 258 "durchgeschaltet" oder gesperrt ist und M-abhängige Befehle freigegeben sind (C21 = 1).
  • Die Auswahl der Betriebsart der ALU 164 hängt nur vom ausgeführten Programmbefehl ab. Das heißt, der SVP-Assembler setzt die Betriebsart der ALU 164 auf "M-abhängige Befehle freigegeben", wenn der Befehl in einer gegebenen Assemblerzeile die "M-Abhängigkeit" erfordert, während ansonsten der Betriebsmodus auf "gesperrt" gesetzt wird. Dies wird durchgeführt, um dem Addierer /Subtrahierer 260 zu ermöglichen, geeignet zu funktionieren, während M-abhängige Teilbefehle verwendet werden. Das heißt, der Multiplizierer 258 und die gesamte Klasse der M-abhängigen Teilbefehle nutzen das Arbeitsregister M 234 gemeinsam und schließen sich daher gegenseitig aus.
  • Die Tabelle 10 zeigt das Verhalten der ALU 164 in Abhängigkeit davon, ob der Multiplizierer 258 freigegeben oder gesperrt ist. Tabelle 10
  • Die ALU 164 führt die in Tabelle 11 gezeigten logischen Operationen durch, während die M-abhängigen Befehle gesperrt sind. Wenn kein Befehl in einer gegebenen Assemblerzeile M-abhängig ist, werden die M-abhängigen Befehle für alle Befehle der gesamten Zeile gesperrt. Tabelle 11
  • Hinweis [1]: CY = (C UND (a EXKLUSIV-ODER b)) ODER (a UND b)
  • Hinweis [2]: BW = (C UND NICHT(a EXKLUSIV-ODER b)) ODER (NICHT(a) UND b)
  • PE-ARBEITSREGISTER
  • In der Ausführungsform der Fig. 2 sind je Prozessorelement 150 (PE) vier Arbeitsregister 162 (WR) vorhanden: WRM, WRA, WRB und WRC. Alle vier Register können gleich sein, mit der Ausnahme, daß sich ihre Datenquellen und -ziele unterscheiden. Wie ferner in Fig. 5 gezeigt, umfaßt jedes WR einen Datenselektor oder Multiplexer und ein Flip-Flop. Alle vier Register werden von den internen SVP-Zeitablaufschaltungen gleichzeitig getaktet, unmittelbar nachdem gültige Daten von den RFs angekommen sind.
  • Die Tabelle 12 zeigt beispielhafte Datenquellen für jedes der vier Arbeitsregister. Tabelle 12
  • wobei M, A, B und C Arbeitsregister sind,
  • RF0 und RF1 Registergruppen sind,
  • L, R, L2 und R2 die Eingänge der nächsten Nachbarn sind,
  • CY und BW die Ausgänge Übertrag und Borgübertrag von der ALU sind,
  • KCB ein bedingter Übertrag/Borgübertrag ist (eine Funktion von WRM), und
  • 1 und 0 logische Pegel sind.
  • ARBEITSREGISTER M (WRM)
  • Das WRM 234, das Multipliziererregister, wird bei der Multiplikation, der Division, Maskierungsoperationen, einigen logischen Operationen und bei bedingten Operationen (M-abhängig) verwendet. Das WRM 234 ist einer der zwei Eingänge des Multipliziererblocks 258 der ALU. Es ist ferner über die Leitung 250 verbunden mit dem Divisionsmultiplexer, um den bedingten Übertrag/Borgübertrag-(KCB)-Befehl zu steuern, über die Leitung 382 mit dem RF1-Multiplexer 1 verbunden, um den bedingten Übertragsschreib-(KCY)-Befehl zu steuern, und über die Leitung 406 mit dem RF0-Multiplexer 1 verbunden, um die bedingten Richtungsbefehle zu steuern: XB, XR0(n), XR1(p), XINP(m) sowie XOUT(q). Das WRM 234 ist ferner mit dem Eingang des RF0-Multiplexers 2 verbunden, so daß es direkt in die RF0 geschrieben werden kann. Im allgemeinen sollte das WRM 234 mit einer "1" geladen werden, so daß der Multiplizierer 258 den Wert des WRA direkt an den Addierer/Subtrahierer in der ALU 164 weiterleitet
  • Der Datenselektor 232 (n-zu-1-Multiplexer) wählt eine von 10 möglichen Datenquellen für das WRM 234 in Abhängigkeit von den Steuerleitungen C20, C19, C18 und C8 aus, wie in Tabelle 13 gezeigt ist. Außerdem können die von den Leitungen R, R2, L und L2 genommenen Daten eine von vier Quellen innerhalb des ausgewählten nächsten Nachbarn 160 sein. Tabelle 13
  • ARBEITSREGISTER A (WRA)
  • Das WRA 238, das Summand-Minuend-Register, ist ein Universalarbeitsregister und wird bei den meisten Operationen verwendet, an denen die ALU 164 beteiligt ist. Das WRA ist der zweite Eingang 256 der zwei Eingänge des Multipliziererblocks 258 der ALU 164 und stellt den positiven Ausdruck dar, der in den Addierer/Subtrahierer-Block 260 eingegeben wird. Das WPA ist ferner ein Eingang des C-Multiplexers 244.
  • Der Datenselektor 236 (n-zu-1-Multiplexer) wählt eine von 10 möglichen Datenquellen für das WRA 238 in Abhängigkeit von den Steuerleitungen C17, C16, C15 und C8 aus, wie in Tabelle 14 gezeigt ist. Außerdem können die von den Leitungen R, R2, L und L2 genommenen Daten eine von vier Quellen innerhalb des ausgewählten nächsten Nachbarn 160 sein. Tabelle 14
  • ARBEITSREGISTER B (WRB)
  • Das WRB 242, das Summand/Subtrahend-Register, ist ein Universalarbeitsregister und wird bei den meisten Operationen verwendet, an denen die ALU 164 beteiligt ist. Bei einer Subtraktionsoperation wird das WRB 242 immer vom WRA 238 subtrahiert. Das WRB ist ferner ein Eingang des L/R-Multiplexers 305.
  • Der Datenselektor 240 (n-zu-1-Multiplexer) wählt eine von 10 möglichen Datenquellen für das WRB in Abhängigkeit von den Steuerleitungen C14, C13, C12 und C8 aus, wie in Tabelle 15 gezeigt ist. Außerdem können die von den Leitungen R, R2, L und L2 entnommenen Daten eine von vier Quellen innerhalb des ausgewählten nächsten Nachbarn 160 sein. Tabelle 15
  • ARBEITSREGISTER C (WRC)
  • Das WRC 248, das Übertrag/Borgübertrag-Register, ist der Übertragseingang (oder Borgübertragseingang) der ALU 164. Bei Mehrbit-Additionen hält das WRC 248 den CY 264 von der vorangegangenen Addition zwischen Bits, während bei Mehrbit-Subtraktionen das WRC 248 das Bit BW 266 hält. Der Ausgang des WRC gelangt zu den Registern A, B und M und zum RF0-Multiplexer 1.
  • Der Datenselektor 244 (n-zu-1-Multiplexer) wählt eine von 9 möglichen Datenquellen für das WRC 248 in Abhängigkeit von den Steuerleitungen C21, C11, C10 und C9 und von den Inhalten des WRM 234 aus, wie in Tabelle 16 gezeigt ist. Das heißt, bei bestimmten Kombinationen dieser vier Steuerleitungen hängen die an das WRC 248 weiterzuleitenden Daten von den Inhalten des Arbeitsregisters M234 ab. Dies ergibt Befehle, sogenannte M-abhängige Befehle, die eine größere Flexibilität des Prozessors 102 erlauben. Das WRC 248 führt einen beliebigen M-abhängigen Befehl aus, der den Operandenspezifizierer KCB (bedingter Übertrag/Borgübertrag) enthält. Tabelle 16
  • NÄCHSTER-NACHBAR-KOMMUNIKATION UND GLOBALER AUSGANG
  • Ein Nächster-Nachbar-Kommunikationssystem kann in jeder PE 150 vorgesehen sein, um direkte Speicher- und Register- Schreib/Lese-Fähigkeiten der vier nächsten Nachbar-PEs zu ermöglichen: die beiden auf der linken Seite und die beiden auf der rechten Seite des unmittelbaren PE 150. Außerdem kann dieselbe Schaltung verwendet werden, um einen globalen Merker zu erzeugen, der GO oder globaler Ausgang 178 genannt wird. Das Signal GO 178 ist eine Art der Anzeige eines internen Ereignisses nach außerhalb des SVP, ohne das das DOR 168 geladen und ausgelesen werden muß.
  • NÄCHSTER-NACHBAR-KOMMUNIKATION
  • Wie in Fig. 5 gezeigt, erzeugt jedes PE einen Ausgang 308, mit L/R (oder links/rechts) bezeichnet, der zu seinen vier Nachbar-PEs herausgeführt ist. Jedes PE 150 nimmt ferner vier L/R- Signale auf, ein Signal von jedem seiner vier Nachbarn. Diese sind bezeichnet mit L2 312 (das zweite PE auf der linken Seite), L 310 (das erste PE auf der linken Seite), R 322 (das erste PE auf der rechten Seite) sowie R2 324 (das zweite PE auf der rechten Seite). Fig. 18 zeigt dieses Verbindungssystem in einer kontinuierlichen Weise über mehrere Prozessorelemente.
  • Der Datenselektor 305 (4-zu-1-Multiplexer) wählt eine von vier Datenquellen innerhalb des PE(n) für die Ausgabe auf die L/R- Leitung 308 in Abhängigkeit von den Steuerleitungen C7 und C6 aus. Eine logische NULL 304, die Inhalte des WRB 268, oder eine Stelle aus entweder der Registergruppe RF0 (RAM0) 288 oder RF1 (RAM1) 286 kann mit dem nächsten Nachbar-Prozessorelement verbunden sein.
  • In Tabelle 17 sind die Datenquellen für L/R 308 als Funktion der Steuerleitungen aufgelistet.
  • GLOBALER AUSGANG
  • Wie in den Fig. 18 und 19 gezeigt, ist das globale Ausgangssignal 824 äquivalent zum logischen ODER 852 aller 1024 L/R- Leitungen 178, die die PEs verlassen. Das heißt, wenn ein oder mehrere PEs 103 in der Prozessormatrix 102 einen logischen EINS-Pegel auf ihrer L/R-Leitung 178 ausgeben, gibt auch das GO-Signal 824 eine logische EINS aus. Das GO-Signal ist bei Hochpegel aktiv. Fig. 19 zeigt ferner die Erzeugung des L/R- Signals, das das PE(n) verläßt, sowie dessen Beziehung zum globalen Merkersignal GO (globaler Ausgang).
  • Vorsicht ist geboten, wenn Nächster-Nachbar-Kommunikationsbefehle in derselben Assemblerzeile mit GO-Befehlen verwendet werden, da beide dieselbe Hardware gemeinsam benutzen, weshalb sich deren Verwendung im allgemeinen gegenseitig ausschließt. In jedem Fall zeigt der SVP-Assembler irgendwelche Konflikte an, die auftreten können.
  • KASKADIEREN VON SVP-CHIPS
  • Auf der in Fig. 20 gezeigten Chipebene sind die Nächster- Nachbar-Kommunikationsleitungen herausgeführt, so daß mehrere SVPs kaskadiert werden können, wenn eine Verarbeitungsbreite von mehr als 1024 Bits erforderlich ist. Auf der linken Seite des SVP 102 befinden sich die Ausgänge L und 2L sowie die Eingänge L und 2L. Auf der rechten Seite befinden sich die Ausgänge R und 2R sowie die Eingänge R und 2R. Um eine Verwechslung mit den Verbindungen zu vermeiden, werden diese Stifte bezeichnet mit CC0L792, CC1L794, CC2L796, CC3L798 und CC0R800, CC1R802, CC2R804, CC3R806, so daß es nur erforderlich ist, CC0L mit CC0R usw. zu verbinden.
  • Fig. 20 zeigt die kaskadierende Verbindung für zwei oder mehr SVPs. Die Eingänge an den Rändern sollten in den meisten Fällen wie in der Figur geerdet werden, jedoch hängt dies von der speziellen Anwendung ab. Eine alternative Verbindung der SVPs ist in Fig. 21 gezeigt. Die Verbindung der Fig. 21 erlaubt, daß das Bild in einem Videoverarbeitungssystem um einen Zylinder gewickelt wird, indem die Umwicklungsverbindung geschaffen wird. Wenn diese Leitungen verwendet werden, muß mit den Befehlen, die R/L/2R/2L-Übertragungen verwenden, ein Zyklus mit Wartezustand verwendet werden, um eine ausreichende Laufzeit zwischen den SVP-Chips zur Verfügung zu stellen. Ein internes Buszeitablaufdiagramm für einen Wartezustand-Einzelbefehl ist in Fig. 24 gezeigt.
  • BEFEHLSMODI
  • Im SVP gibt es vier Befehlsmodi: Einzel, Doppel, Wartezustand- Einzel und Leerlauf. Die beiden ersten dieser Modi arbeiten in Kombination mit einer beliebigen gültigen Assemblerbefehlszeile, während der dritte mit Befehlen arbeitet, die Daten von einem unmittelbaren Prozessorelement nach links und nach rechts austauschen, und der vierte ein Leerlaufmodus ist, indem die PEs nicht getaktet werden, um Leistung einzusparen.
  • Alle Befehle erfordern zur Vervollständigung nur einen Taktzyklus, wobei sich jedoch die Dauer dieses Taktzyklus in Abhängigkeit vom Zyklustyp ändert. Die zwei Zykluslängen sind "normal" und "verlängert". Die Länge eines "verlängerten" Zyklus beträgt ungefähr das 1,5 fache der Länge eines "normalen" Zyklus. Die "verlängerte" Zeit läbt den Warteanteil des Wartezustands-Einzelbefehls zu oder ermöglicht, daß während des Doppelbefehls zusätzliche ALU-Operationen ausgeführt werden. Der Leerlaufbefehl wird nur verlängert, um weitere Leistung einzusparen.
  • Es gibt zwei Steuerbits, die den Modus des Befehls für den aktuellen Zyklus setzen. Die vier Modi sind in Tabelle 18 als Funktion der Steuerbits C23 und C22 gezeigt. Tabelle 18
  • Während einer Assemblierung ist der Einzelbefehlsmodus die Vorgabe. Wenn geeignete Einzelbefehlspaare in der Assemblersequenz erscheinen, wird jedes Paar automatisch durch einen Doppelbefehl ersetzt, solange dies nicht durch eine Assembleranweisung verhindert wird. Die Verwendung von Doppelbefehlen verringert die Gesamtausführungszeit.
  • EINZELBEFEHLSMODUS
  • Der Einzelbefehlsmodus ist der grundlegendste der vier Modi. In einem einzelnen normalen Taktzyklus wird eine Sequenz < LESEN> -< REGISTER> -< ALU> -< SCHREIBEN> durchgeführt. Die Tabelle 19 zeigt Einzelheiten der Op-Code-Struktur für den Einzelbefehl. Tabelle 19
  • wobei {aaaaaaa} = 7-Bit-Adreßfeld für RF1,
  • wobei {bbbbbbb} = 7-Bit-Adreßfeld für RF0,
  • und { n nnn ... nnn} Registersteuerbits des Op-codes
  • WARTEZUSTAND-EINZELBEFEHLSMODUS
  • Der Wartezustand-Einzelbefehlsmodus ist eine zeitverlängerte Version des Einzelbefehlsmodus. In einem einzelnen verlängerten Taktzyklus wird eine Sequenz < LESEN> -< WARTEN> -< REGISTER> - < ALU> -< SCHREIBEN> durchgeführt. Die hinzugefügte "Warte"- Periode läbt eine Laufzeit von Signalen zu, die die Chipgrenzen überqueren, wenn zwei oder mehr SVP-Vorrichtungen kaskadiert sind. Dieser Befehlsmodus ist im allgemeinen nicht erforderlich, wenn die SVPs nicht kaskadiert sind.
  • SVP-Assembleranweisungen ermöglichen, daß dieser Modus leitungsweise freigegeben wird. Der Assembler untersucht den Befehl, um zu ermitteln, ob dieser irgendeine Nächster-Nachbar-Kommunikation verwendet, und erzeugt den geeigneten Wartezustand-Befehl. Es gibt vier Anweisungen während der Assemblierung: WAITL, WAITR, WAITB und WAITN.
  • WAITL - Modus Warten, wenn ein beliebiger Befehl in der Assemblerzeile eine Referenz auf Daten enthält, die von links in den SVP eintreten, z. B. A = LR0(n), oder A = XR0(n); ansonsten Modus = Einzel.
  • WAITR - Modus = Warten, wenn irgendein Befehl der Assemblerzeile eine Referenz auf Daten enthält, die von rechts in den SVP eintreten, z. B. A = RR0(n) oder A = XR0(n); ansonsten Modus = Einzel.
  • WAITB - Modus = Warten, wenn irgendein Befehl in der Assemblerzeile eine Referenz auf Daten enthält, die von einer der beiden Richtungen in den SVP eintreten, z. B. A = RR0(n) oder A = LR0(n) oder A = XR0(n); ansonsten Modus = Einzel.
  • WAITN - Modus = Einzel, ungeachtet der Datenrichtungsbefehle. Diese Anweisung wird verwendet, um irgendwelche vorher ausgegebenen WAITx-Anweisungen aufzuheben.
  • Tabelle 20 zeigt die Op-Code-Struktur für den Wartezustand- Einzelbefehl genauer. Tabelle 20
  • wobei {aaaaaaa} = 7-Bit-Adreßfeld für RF1,
  • wobei {bbbbbbb} = 7-Bit-Adreßfeld für RF0,
  • und { n nnn ... nnn} Registersteuerbits des Op-Codes
  • DOPPELBEFEHLSMODUS
  • Der SVP-Assembler und die Hardware sind fähig, automatisch einen Befehl zu erzeugen und auszuführen, der äquivalent ist zu zwei Einzelbefehlen, jedoch zur Ausführung einen verlängerten Zyklus erfordert. Durch diese Fähigkeit wird eine Gesamtdurchsatzverbesserung erreicht. Während dieses verlängerten Zyklus wird eine Sequenz < LESEN> -< REGISTER> -< ALU> -< REGISTER> - < ALU> -< SCHREIBEN> durchgeführt. Die zusätzliche Zeit für den verlängerten Zyklus wird für eine zweite ALU- und Registeroperation verwendet. Dies ist möglich, da die verlängerten Zyklen während Lese/Schreib-Operationen für jede Registergruppe mit einem 2-Bit-Cache arbeiten. Der SVP-Assembler ermittelt, wie diese Cache-Speicher am besten genutzt werden, indem Einzelbefehle wann immer möglich zu Doppelbefehlen konvertiert werden. Diese Operation kann durch zwei Assembleranweisungen DRI bzw. ERI eingeschaltet und abgeschaltet werden.
  • Der Doppelbefehl wird verwendet, wenn die Muster der zwei aufeinanderfolgenden Befehle so beschaffen sind, wie in Tabelle 21a, b gezeigt. Die Registergruppenadressen müssen nur so beschaffen sein, wie gezeigt, wenn sie gelesen oder geschrieben werden. Tabelle 21a Tabelle 21b
  • wobei xxxxxxx = ohne Bedeutung
  • aaaaaa0 = 7-Bit-Adresse für RF1, erster Befehl
  • bbbbbb0 = 7-Bit-Adresse für RF0, erster Befehl
  • aaaaaa1 = 7-Bit-Adresse für RF1, zweiter Befehl
  • bbbbbb1 = 7-Bit-Adresse für RF0, erster Befehl
  • n nnn ... nnn = 22-Bit-Steuerungs-Op-Code
  • Der Assembler assembliert optional diese vier Typen von Befehlsmustern zu Doppelbefehlen, wobei deren entsprechende Op- Codes so erzeugt werden, wie in Tabelle 22 gezeigt ist. Tabelle 22
  • wobei 0000000 = Assembler füllt mit Nullen auf, wenn Speicher nicht verwendet wird
  • aaaaaa0 = 7-Bit-Adresse für RF1, Doppelbefehl
  • bbbbbb0 = 7-Bit-Adresse für RF0, erster Doppelbefehl
  • n nnn ... nnn = 22-Bit-Steuerungs-Op-Code
  • LEERLAUFBEFEHLSMODUS
  • Der Leerlaufbefehl soll in erster Linie Leistung einsparen. Er kann jederzeit ausgeführt werden, wenn die PEs die Verarbeitung des aktuellen Datenpakets beendet haben und auf das nächste Paket warten. Wenn ein Leerlaufbefehl entdeckt wird, werden alle Schaltungen der parallelen Prozessoren nicht mehr getaktet, mit Ausnahme des DIR und des DOR, die unabhängig gesteuert werden.
  • Die WRs sind statisch und bleiben daher erhalten; die RFs sind jedoch dynamisch. Die Bits, die erhalten werden sollen, müssen wahlweise aufgefrischt werden, wie oben beschrieben worden ist.
  • Während eines Leerlaufbefehls wird der Rest des Op-Code-Feldes in einem Befehlsregister zwischengespeichert, wird jedoch von den nachfolgenden Logikblöcken ignoriert. Die Bits C21 bis C0 sollten während dieser Zeitspanne gleich 0 sein, um sicherzustellen, daß die interne Pipeline korrekt gefüllt wird, wenn die Verarbeitung fortgesetzt wird. Die Tabelle 23 zeigt Einzelheiten der Op-Code-Struktur für den Leerlaufbefehl. Tabelle 23
  • wobei (xxxxxxx) = 7-Bit-Adressfeld für RF1 ist ohne Bedeutung
  • und (xxxxxxx) = 7-Bit-Adressfeld für RF0 ist ohne Bedeutung
  • 0 000 ... 000 = 22-Bit-steuerung ist null während Leerlauf
  • EXTERN-BUS-OPERATION
  • Die Operation des externen Busses 130 für den SVP-Chip ist einfach, da die einzige Forderung ist, daß dem Baustein ein 38-Bit-Mikrocode-Befehl (24 Steuersignale, 14 Adreßsignale) und ein Impuls PCK mit den geeigneten Einschwing- und Haltezeiten zur Verfügung gestellt wird. Da die Dateneingangsregister 154 und Datenausgangsregister 168 asynchron zur Prozessormatrix 105 operieren, ist eine gewisse Form von Synchronisation erforderlich, bevor die Prozessormatrix 105 Daten zum/vom DIR oder DOR überträgt. In Videoanwendungen wird dies möglicherweise gehandhabt, indem während der horizontalen Austastlücke übertragen wird.
  • INTERN-BUS-OPERATION
  • Die steigende Flanke des externen Prozessortakts (PCK) triggert eine Reihe von internen Takten, die die Zeitsteuerung für den internen Bus 171 erzeugen. Fig. 22 zeigt die Sequenz der Ereignisse auf den internen Bussen 171 des SVP 102 für den Einzelbefehlsmodus.
  • Der SVP-Assembler erzeugt automatisch einen sogenannten Doppelbefehl aus zwei Einzelbefehlen, vorausgesetzt, diese sind bis auf die Adreßfelder identisch.
  • Der vom Assembler erzeugte Doppelbefehl erfordert einen entsprechenden Hardwaremodus. Fig. 23 zeigt die Sequenz der Ereignisse für den Doppelbefehlszyklus.
  • Wenn SVPs kaskadiert werden (Fig. 20 und 21) erfordert der langsame Ausbreitungsweg zwischen den Chips eine zusätzliche Zeitspanne, wenn die Nächster-Nachbar-Kommunikation verwendet wird. Die langsamen Zyklen werden eingerichtet, indem sie einen Wartezustand-Einzelzyklus erhalten. Dieser Zyklus führt die Operation eines Einzelbefehlszyklus durch, erfordert jedoch die Zeitspanne eines Doppelbefehlszyklus, wie in Fig. 24 gezeigt ist.
  • Der Leerlaufzyklus ermöglicht der PA 105, größtenteils abgeschaltet zu werden, bis sie gebraucht wird. Dies ist in Fig. 25 gezeigt.
  • BEFEHLSREGELN
  • Der SVP wird auf Mikrocode-Ebene programmiert. Diese Mikrocode-"Teilbefehle" werden kombiniert, um den Befehlsabschnitt einer Befehlszeile in der SVP-Assemblersprache zu bilden. Dieser Abschnitt erläutert, wie diese Befehle aufgebaut sind und wie der Assembler nach Konflikten sucht. Einige der Hauptelemente in diesem Abschnitt sind:
  • * Regeln zum Erstellen von Befehlszeilen
  • - Operanden-Ziel/Quellen-Namen
  • - Regeln zum Kombinieren von Teilbefehlen
  • - das Op-Code-Feld
  • * Die Befehlskonfliktmaske
  • REGELN FÜR DIE ERSTELLUNG VON BEFEHLSZEILEN
  • Die SVP-Assemblerquelle ist derjenigen anderer Assembler ähnlich; jede Zeile enthält einen Befehl, eine Assembleranweisung, einen Kommentar oder eine Makroanweisung. Die SVP-Assemblerzeile unterscheidet sich jedoch insofern, als eine einzelne Zeile einen Befehl enthält, der mehrere Teilbefehle umfaßt. Diese Teilbefehle werden kombiniert, um einen einzelnen Op-Code zu erzeugen, wenn sie assembliert werden.
  • Eine "Befehlszeile" besteht aus einem optionalen Etikett, einem oder mehreren Teilbefehlen plus einem optionalen Kommentarfeld.
  • Ein gültiger "Befehl" besteht aus einem oder mehreren Teilbefehlen, so daß untereinander keine Teilbefehlkonflikte auftreten.
  • Ein "Teilbefehl" umfaßt drei Teile: einen Zieloperanden, einen Zuweisungsoperator (der SVP-Assembler erkennt das "="-Zeichen) sowie einen Quelloperanden in dieser Reihenfolge.
  • < destination_operand> = < source_operand> .
  • OPERANDEN- ZIEL/QUELLEN-NAMEN
  • Die Tabelle 24 listet legale Operanden-Ziel/Quellen-Namen für die Teilbefehle und die gültigen Bereiche für deren Operanden (in Dezimaldarstellung) auf: Tabelle 24
  • wobei K, X einen bedingten Befehl auf der Grundlage des Zustands von WRM anzeigen
  • K anzeigt, daß die Bedingungsquelle die unmittelbare ALU ist
  • X anzeigt, daß die Bedingungsquelle vom Nachbar-Prozessor stammt
  • REGELN ZUM KOMBINIEREN VON TEILBEFEHLEN
  • Ein Quellenoperand kann in einer Befehlszeile mehr als einmal spezifiziert werden:
  • B = A, C = A ist legal
  • Ein Zieloperand kann in einer Befehlszeile spezifiziert werden:
  • B = A, C = B ist legal
  • C = A, C = B ist nicht legal.
  • Jede Registergruppe kann mehr als einmal als Quelloperand spezifiziert werden, wenn die Adresse für jeden Teilbefehl dieselbe ist:
  • A = R0(13), B = R0(13) ist legal (gleiche Adresse)
  • A = R0(13), B = R0(100) ist nicht legal (gleiche RF, unterschiedliche Adressen)
  • A = R0(13), B = R1(100) ist legal (verschiedene RF).
  • Es kann nur entweder RF0, RF1, DIR oder DOR als Zieloperand in einer Assemblerzeile spezifiziert werden:
  • C = BW, R0(10) = SM ist legal (Einzel-Speicher-Schreiben)
  • R0(13) = A, R1(13) = B ist nicht legal (gleichzeitiges Schreiben in zwei Speicherbänke).
  • Wenn R0, R1, INP oder OUT als Quellenoperand und Zieloperand spezifiziert sind, müssen die Quellen- und die Zieladresse gleich sein:
  • B = R0(22), R0(22) = SM ist legal (lesen/modifizieren/schreiben)
  • C = R0(22), R1(123) = C ist legal (verschiedene RF)
  • C = R0(22), R0(123) = C ist nicht legal (gleiche RF, verschiedene Adressen)
  • B = R1(25), INP(10) = SM ist legal (verschiedene RF)
  • B = R0(25), INP(10) = SM ist nicht legal (R0 und INP sind in der gleichen RF)
  • Im allgemeinen ist jede Regel, die oben für die Registergruppen R0 und R1 dargestellt worden ist, ebenso auf INP (DIR) und OUT (DOR) anwendbar, mit der Ausnahme, daß der Adreßbereich von "n" und "p" gleich 0 bis 127 ist, während er für "m" gleich bis 39 und für "q" gleich 0 bis 23 ist.
  • Das heißt, da der Befehl:
  • B = R0(10), R0(10) = SM legal ist,
  • ist
  • B = INP(10), INP(10) = SM ebenfalls legal.
  • Fig. 26 zeigt eine alternative Ausführungsform eines Prozessorelements 150. Wie gezeigt, enthält das Prozessorelement 151 der Fig. 26 vier Leseverstärker je Prozessorelement. Zwei für DIR/RF0-Schreib- und -Leseoperationen. Zwei für DOR/RF1- Schreib- und -Leseoperationen. Bei der Ausführungsform der Fig. 26 lesen die Registergruppe 0 und die Registergruppe 1 in jedem Speicherzyklus jeweils zwei Datenbits (insgesamt 4 Bits je Zyklus). Es werden jedoch nur zwei der vier Datenbits während eines Einzelzyklus-Betriebsmodus verwendet. Um eine Verschwendung dieser Leseoperationen zu vermeiden, können die vier Bits so verarbeitet werden, daß zwei 2-Bit-Cache-Speicherbänke gebildet werden. In diesem Format werden die ansonsten unbenutzten erfaßten Daten verwendet und eine Reduktion der Zykluszeit erreicht.
  • Um das Lesen der Daten und der Daten(bar) zu kompensieren, werden den entsprechenden Lese/Schreib-Steuerschaltungen invertierte Adreßsignale 1658 und 1660 zugeführt. Alternativ kann von den Eingangsdatenleitungen jedes zweite Signal invertiert werden. In dieser Ausführungsform würde ferner jede zweite Datenausgangsleitung invertiert.
  • Fig. 27a zeigt eine Einzelzyklusoperation zum Lesen von Daten aus jeder Registergruppe in ein Prozessorelement und zum Schreiben der Daten in eine der Registergruppen-Speicherbänke.
  • Fig. 27b zeigt, wie die Doppelbefehlszyklen ermöglichen, daß das Lesen in einem Zyklus mit aufeinanderfolgenden Adressen zweimal stattfindet. Statt jedoch zwei volle Zykluszeiten bis zum Abschluß zu benötigen, sind nur ungefähr 1,5 Zykluszeiten erforderlich.
  • Dies ist in Fig. 28 und im folgenden Beispiel dargestellt. Man betrachte eine Addition der 4-Bit-Zahlen X&sub3;X&sub2;X&sub1;X&sub0; und Y&sub1;&sub3;Y&sub1;&sub2;Y&sub1;&sub1;Y&sub1;&sub0;. Die Summe ist eine 5-Bit-Zahl X&sub4;X&sub3;X&sub2;X&sub1;X&sub0;, die X ersetzt. X&sub4; wird aus der Summe des vorangehenden Übertrags und den zwei MSBs (X&sub3; und Y&sub1;&sub3;) erhalten. Dies ist erforderlich, um negative Zahlen abzudecken. Ursprünglich war kein Übertrag vorhanden. Ein Befehlssatz für eine solche Addition ist in Tabelle 25 zusammengestellt. Tabelle 25
  • Bei der Ausführung des ersten Befehls zur Durchführung der Addition der Bits X&sub0; und Y&sub1;&sub0; liest der Leseverstärker die an der Adreßsteille RF0(0) und RF1(0) gespeicherten Daten. Diese Adreßstellen können den geraden Bitleitungsstellen der DRAM- Spalte zugewiesen sein. Der nachfolgende Befehlssatz liest die Bits X1 und Y11 aus den Adreßstellen RF0(1) und RF1(11) entsprechend den nächsten Bitleitungen in der Matrix. Diese können den ungeraden Bitleitungen zugewiesen sein, die den geraden Bitleitungen für jeden Leseverstärker folgen. Dies wird wiederholt, bis die Addition abgeschlossen ist.
  • Wie mit dem Befehlssatz der Tabelle 25 gezeigt, wird deutlich, daß die Befehlsleitungen 2, 3 und 4 identisch sind, mit Ausnahme der unterschiedlichen adressierten Orte der gespeicherten Daten. Wenn wie oben erwähnt die Lesesequenz mit einer geraden Bitleitung beginnt, ist klar, daß die Daten gleichzeitig aus aufeinanderfolgenden gerade-ungerade, gerade-ungerade Blöcken gelesen werden. Wenn daher der Befehl, der einem geraden Lesen von Daten folgt, identisch ist, ist es möglich, die vorher gelesenen Daten zu verwenden, die ansonsten verworfen würden. Wie im obigen Beispiel sind die Befehle 1 und 2 nicht zu einem Doppelbefehl (DI) konvertierbar. Obwohl eine der Adreßregeln für einen Doppelbefehl erfüllt ist (beide adressierten Register lesen aus geraden Stellen gefolgt von ungerade adressierten Stellen), sind die Befehle nicht gleich. Es ist zu beachten, daß der Befehl 1 sagt, Übertrag (CY) ist gleich null, während der Befehl 2 sagt, CY ist gleich dem Übertrag, der über das "C"-Register weitergeleitet worden ist. Durch Überprüfen der Befehle 3 und 4 kann schnell festgestellt werden, daß die Befehle kombiniert werden können, um einen Doppelbefehl zu bilden. Es ist zu beachten, daß ein Lesen gerader Adressen gefolgt wird von einem Lesen ungerader Adressen, und daß beide Befehle identisch sind (mit Ausnahme der adressierten Stellen). Der Befehl Nummer 5 zum Berechnen des letzten Bits ist ein einzelner Befehl und kann somit nicht kombiniert werden, da kein Befehl zum Kombinieren vorhanden ist. Die Tabelle 25 zeigt die Einsparung an Zykluszeit im obigen einfachen Beispiel aufgrund der Kombination von Befehlen. Im obigen Beispiel wird die Zykluszeit von 5 auf 4,5 Zyklen reduziert.
  • Gemäß dem Doppelbefehlskonzept können für jeden Registersatz mehr als zwei Leseverstärker verwendet werden. Wenn z. B. drei oder vier (insgesamt sechs und acht Leseverstärker je Prozessorelement) verwendet werden, kann eine dreifache und vierfache Kompression für eine weitere Reduzierung der Zykluszeit durchgeführt werden.
  • DAS OP-CODE-FELD
  • Der Steuerabschnitt des Op-Codes besteht aus acht Oktalziffern. Jede der Ziffern entspricht einem der Schaltungsblöcke der Fig. 5, so daß ein Benutzer, der mit dem Op-Code-Format ein wenig vertraut ist, den Op-Code direkt lesen kann. Die Tabelle 26 zeigt, welche Bits welchen Blocks zugeordnet sind. "CIC" ist die bedingte Befehlssteuerung. Tabelle 26
  • wobei CIC = bedingte Befehlssteuerung
  • WRM = Arbeitsregister "M",
  • WRA = Arbeitsregister "A",
  • WRB = Arbeitsregister "B",
  • WRC = Arbeitsregister "C",
  • NNC = Nächster-Nachbar-Steuerung,
  • RF1 = Registergruppe 1 und Datenausgangsregistersteuerung,
  • RF0 = Registergruppe 0 und Dateneingangsregistersteuerung.
  • In Fig. 29 ist eine Steuervorrichtung 128 gezeigt, die mit dem SVP 102 und mit einem Softwareprogrammentwicklungs- und Fernsehbetriebsemulationssystem 900 verbunden ist. Das Entwicklungssystem 900 enthält ein Host-Computersystem 912, eine Host- Computerschnittstellenlogik 914, einen Mustergenerator 916 sowie einen Datenselektor 918.
  • Das Host-Computersystem 912 kann im Entwicklungssystem 900 viele Formen annehmen. Solche Formen umfassen einen Personalcomputer, eine Fernsteuereinheit, einen Texteditor oder andere Einrichtungen zum Entwickeln eines Steuerungsalgorithmus. Die Host-Computerschnittstellenlogik 914 enthält eine Schaltung zum Emulieren eines Haupt-Mikrocontrollers eines Fernsehgeräts. Im Entwicklungssystem 900 arbeitet die Host- Computerschnittstellenlogik 914 mit dem Mustergenerator 916 zusammen, um eine Schnittstelle zum Host-Computersystem 912 und dem lokalen Kommunikationsbus 930 zu bilden. Der Mustergenerator 916 erzeugt den Zeitablauf und andere Muster, um den Programmalgorithmus auf die algebraische Genauigkeit zu überprüfen. Der Mustergenerator 916 erzeugt ferner Echtzeit-Testvideodaten für die Fehlerbeseitigung im SVP-Algorithmus und in der Hardware. Ein Datenmusterprogrammierer (oder Selektor) 918 wird verwendet, um Daten für die Eingabe in den SVP unter den 40 Eingangsleitungen 920 oder von den vom Datenmustergenerator 916 erzeugten Mustern auszuwählen. Wie gezeigt, ist der Datenselektor 918 in Serie zwischen die 40 Dateneingangsleitungen 920 und die 40 SVP-Eingangsanschlubstifte 118 eingesetzt. Im Entwicklungssystem 900 ist ein Fangspeicher (oder Feldspeicher) 121 vorgesehen, um die verarbeiteten Daten von 8 der 24 Ausgangsleitungen 170 aufzufangen. Die gewünschten 8 der 24 Ausgangsleitungen werden von einem 3-zu-1-Oktalmultiplexer 171 ausgewählt. Auf diese Weise kann ein Feld der verarbeiteten Videodaten aufgefangen (oder gespeichert) werden und für eine Echtzeit-Analyse der SVP-Operationen zur Host-Schnittstelle 914 und/oder zum Host-Computersystem 912 zurückgeführt werden.
  • Die Hardwareschnittstelle 932 zwischen der Host-Computerschnittstellenlogik 914 und dem Host-Computer 912 wird im Entwicklungssystem 900 erreicht durch herkömmliche parallele Schnittstellenverbindungen. In einer alternativen Ausführungsform kann ein gewöhnliches EIA-RS-232C-Kabel verwendet werden, wenn die Schnittstellengeschwindigkeit kein primärer Aspekt ist. Ein IIC-Bus, hergestellt von PHILIPS ELECTRONICS CORPORATION kann als Schnittstellenleitung 930 zwischen der Host-Computerschnittstellenlogik 914 und der Steuervorrichtung 128 verwendet werden.
  • Bei Videosignalverarbeitungsanwendungen erzeugt die Steuervorrichtung 128 Steuersignale für den SVP-Prozessorbaustein 102, die mit der vertikalen Synchronisierungskomponente und der horizontalen Synchronisierungskomponente des ankommenden Fernsehsignals auf der Leitung 110 der Fig. 1 synchronisiert sind.
  • Fig. 30 zeigt einen Fernseh-Mikrocontroller 1700. Der Mikrocontroller 1700 bewirkt die Voreinstellung der internen Fernsehschaltung nach der Initialisierung (Einschalten des Systems). Der Mikrocontroller 1700 empfängt externe Signale, wie z. B. diejenigen von einer Personalcomputer-Tastatur 1702, einer Fernsteuereinheit 1704 oder eines Videosignaldecodierers 1712, decodiert diese und sendet die Steuersignale an andere Fernsehsystemkomponenten. Solche Systemkomponenten umfassen die Steuervorrichtung 128, den SVP-Prozessorbaustein 102, eine Tonverarbeitungsschaltung, UHF- und VHF-Abstimmvorrichtungen und dergleichen. Diese externen Steuersignale umfassen z. B. Kontrast, Helligkeit und Farbsättigung. Der Videosignaldecodierer 1712 empfängt und decodiert Signale wie z. B. Untertitel und Zweitsprachensignale.
  • Wie in Fig. 29 gezeigt, umfaßt eine Steuervorrichtung 128 eine Hauptsteuervorrichtung 902, einen Vertikalzeitablaufgenerator 904, einen Horizontalzeitablaufgenerator 906, einen Konstantengenerator 908 und einen Befehlsgenerator 910. Im Betrieb versorgt die Steuervorrichtung 128 den SVP-Prozessorbaustein 102 über die Leitungen 946 mit Betriebskonstanten, über die Leitungen 948 mit Steuerbefehlen und über die Leitungen 950 mit Zeitablaufsignalen. Die externen Steuerleitungen 938 vom Horizontalzeitablaufgenerator 906, 952 vom Vertikalzeitablaufgenerator 904 sowie 934 von der Hauptsteuervorrichtung 902 führen die Zeitablauf- und Steuersignale den anderen Entwicklungssystemkomponenten zu. Wie oben mit Bezug auf die Fig. 20 und 21 erläutert worden ist, können mehrere SVP-Prozessorbausteine kaskadiert werden. Solche Komponenten umfassen Spezialmultiplexer und externe Feldspeicher.
  • Fig. 31 zeigt eine Steuervorrichtungsarchitektur 128 der Fig. 29, die vom Entwicklungssystem 900 abgetrennt ist. Die Fig. 31 zeigt die Steuervorrichtung 128, wie sie als separate integrierte Schaltung vorliegen kann. In dieser Ausführungsform sind die externen Steuerleitungen 934, 938 und 952 nicht vorhanden. Die Hauptsteuervorrichtung 902 (MC) interpretiert die externen Anweisungen vom Benutzer, wie sie von der Host- Computerschnittstellenlogik 914 oder vom Fernsehsystem-Mikrocontroller 1700 übersetzt werden, und erzeugt eine Serie von Steuercodes für den Vertikalzeitablaufgenerator 904, den Horizontalzeitablaufgenerator 906, den Befehlsgenerator 910, die Spezialmultiplexer (nicht gezeigt) und andere gewünschte externe Logik, die ein Umschalten einmal je Feld oder Halbbild erfordert. Die Hauptsteuervorrichtung 902 kann einen extern programmierbaren Speicher enthalten, der dem Benutzer ermöglicht, Software herunterzuladen. Die Hauptsteuervorrichtungslogik und die Programme sind jedoch vorzugsweise auf dem Chip in der Firmware implementiert.
  • Der Datenausgang der Hauptsteuervorrichtung 902 wird auf den Leitungen 932 und 936 dem Vertikalzeitablaufgenerator 904 und dem Horizontalzeitablaufgenerator 906 zugeführt. Der Vertikalzeitablaufgenerator 904 führt ein Steuersignal über die Leitungen 944, 940 und 942 dem Horizontalzeitablaufgenerator 906, dem Konstantengenerator 908 und dem Befehlsgenerator 910 zu. Die Zeitablaufsignalausgänge vom Horizontalzeitablaufgenerator 906 werden über die Leitungen 950 dem Prozessor 102 zugeführt. In ähnlicher Weise führen der Konstantengenerator 908 die Betriebskonstanten und der Befehlsgenerator 910 die Steuerbefehle dem Prozessor 102 über die Leitungen 946 bzw. 948 zu.
  • Kurz, in der gesamten Operation steuert die Hauptsteuervorrichtung 902 die Videosignalverarbeitung mit Feld- oder Halbbildgeschwindigkeit, während der Vertikalzeitablaufgenerator 904 die Vertikalrichtungsoperation mit Zeilengeschwindigkeit steuert. Der Horizontalzeitablaufgenerator 906 steuert die Horizontalrichtungsoperation mit Pixelgeschwindigkeit. Die Steueranweisungen werden von der Fernsehsystemsteuervorrichtung 1702 über einen einfachen synchronen seriellen Zweidraht-Bus 930 zur Hauptsteuervorrichtung 902 weitergeleitet. Sowohl der Modus der Operation (zum Anfordern unterschiedlicher Spezialmerkmale wie z. B. Bild-im-Bild, Mehrfach-Bild, Standbild und andere) als auch die Inhalte der Hilfsregister 1196 der Fig. 52. Die Hilfsregister 1196 werden im folgenden genauer beschrieben. Sie leiten SVP-Prozessorbaustein-Systemvariablen, wie z. B. "Schärfe" und dergleichen, über den Anweisungsbus 930 weiter. Die Hauptsteuervorrichtung 902 ist eine mittels Firmware programmierbare Zustandsmaschine mit verschiedenen Befehlen einschließlich bedingter Sprünge und Vektorsprünge.
  • In Fig. 32 ist die Hauptsteuervorrichtung 902 genauer gezeigt. Die Ausführungsform der Hauptsteuervorrichtung der Fig. 32 enthält einen Asynchron/Synchron-Umsetzungslogikabschnitt 958 mit einem seriellen Dateneingang 954 und einem seriellen Takteingang 956. Die Datenübertragung vom Mikrocontroller 1700 zur Hauptsteuervorrichtung 902 wird mit einem seriellen Kommunikationsverfahren über einen seriellen Dateneingang 930 bewerkstelligt. In einer bevorzugten Ausführungsform ist das Format der seriellen Daten ein 10-Bit-Wort mit führendem höchstwertigen Bit.
  • Wie oben erwähnt, werden der serielle Takt und der serielle Datenausgang vom Mikrocontroller 1700 über die Datenleitungen 930a und 930b der Hauptsteuervorrichtung 902 zugeführt. Die Asynchron/Synchron-Umsetzungslogik 958 empfängt die seriellen Eingangssignale auf den Leitungen 930 und setzt diese vom seriellen Format in ein paralleles Format um. Die Asynchron/Synchron-Umsetzungslogik 958 enthält Register zur Durchführung dieser Aufgabe. Wenn die Daten in ein paralleles Format umgesetzt worden sind, werden sie in den Registern gehalten und zu einem gewünschten Zeitpunkt auf den Datenleitungen 960 oder 1198 ausgegeben. Acht der 10 Datenbits der Logik 958 werden parallel in das 8-Bit-Register 962 geladen. Die oberen 4 Bits werden über die Datenleitungen 964 zum Multiplexer 968 übertragen; die unteren 4 Bits werden in ähnlicher Weise über die Datenleitungen 966 übertragen. Der Multiplexer 968 empfängt ferner die externen Merkereingänge auf den Leitungen 970 und 972. Die Asynchron/Synchron-Umsetzungslogik 958 gibt ferner auf der Leitung 957 einen 1-Bit-Merkerausgang aus.
  • Im Betrieb zeigen die 4 Bits von den Leitungen 964 einen Steuerbefehl oder eine Betriebsart für die Steuervorrichtung 128 (Bild-im-Bild (PIP)) und dergleichen an. Wenn ein PIP-Modus angewiesen ist, beschreiben die vier auf den Datenleitungen 966 übertragenen Bits den Punkt auf dem Fernsehbildschirm, auf dem das Teilbild zu plazieren ist. Mit vier Leitungen kann eine von 16 möglichen Positionen angewiesen werden. Die externen Merker 970 und 972 ermöglichen die Synchronisation der asynchronen Operationen, wenn zwei oder mehr SVPs kaskadiert werden, oder die Synchronisation zwischen einem SVP und zusätzlichen externen Hardware-Steuervorrichtungen, falls vorhanden, und zeigen außerdem an, mit welchem Befehl in einer Softwareprogrammsteuervorrichtung 128 die Ausführung eines neuen Signals beginnen soll.
  • Der Multiplexerausgang 974 dient zum Maskieren der Freigabebgik 976. Die Logik 976 führt einen Test mit den Datenbits vom Register 962 durch. Der Maskenfreigabelogikausgang auf der Leitung 982 steuert, ob der Hauptsteuervorrichtungs-Adreßzähler 984 die Adressierung sequentiell fortführt oder ob er einen Sprung ausführt. Der Ausgang des Multiplexers 968 wird ferner über die Leitung 978 als Eingang dem Multiplexer 980 zugeführt. Der Multiplexer 980 besitzt neun Datenausgangsleitungen 986, die die Eingänge dem Hauptsteuervorrichtungs- Adreßprogrammzähler 984 zuführen. Die Adresse auf den Leitungen 988 des Hauptsteuervorrichtungs-Adreßzählers 984 adressiert Speicherstellen im Hauptsteuervorrichtungs-Programmspeicher 990. Das Adreßsignal wird ferner über die Leitungen 992 für Unterroutinenaufrufoperationen dem Rückkehrregister 994 zugeführt. Der Ausgang des Registers 994 wird über die Leitung 996 als weiteres Eingangssignal dem Multiplexer 980 zugeführt.
  • Der Hauptsteuervorrichtungs-Programmspeicher 990 besitzt 14 Ausgangsleitungen 998. Der Mikrocodeausgang enthält Adressen- und Betriebsmodus-Befehle für den vertikalzeitablaufgenerator (VTG) 904 und den Horizontalzeitablaufgenerator (HTG) 906. Diese Signale werden über die Leitungen 936 und 932 dem HTG und dem VTG zugeführt. Einige der Mikrocode-Ausgangsbits auf den Leitungen 998 werden ferner dem Befehlsdecodierer 1002 zugeführt und von diesem decodiert, der seinerseits Operationssteuersignale über die Leitungen 1004 dem Multiplexer 980 und dem Hauptsteuervorrichtungs-Programmadreßzähler 984 zuführt. Außerdem werden die Mikrocode-Ausgangsbits von den Leitungen 998 über die Leitungen 1008 als weitere Eingangssignale dem Multiplexer 980 und als Steuersignale dem Multiplexer 968 zugeführt.
  • Die Hauptsteuervorrichtung 902 enthält ferner eine Hilfsregistersteuerlogik 1012. Neun Signalleitungen 1198 von der Asynchron/Synchron-Umsetzungslogik 958 sind als Eingangssignal an die Hilfsregistersteuerlogik 1012 angeschlossen. Die Operation der Hilfsregister wird im folgenden mit Bezug auf Fig. 40 beschrieben.
  • In Fig. 33 ist der Vertikalzeitablaufgenerator 904 der Fig. 31 genauer gezeigt. Der Vertikalzeitablaufgenerator (VTG) 904 erzeugt Steuercodes an den Ausgängen 944, 940 und 942 für den Horizontalzeitablaufgenerator 906, den Konstantengenerator 908 und den Befehlsgenerator 910. Im Entwicklungssystem 900 erzeugt der Konstantengenerator 908 ferner den Zeitablauf für die Schaltungen, die eine Auflösung von einer Horizontalzeile erfordern, über die externe Steuerleitung 952. Der Vertikalzeitablaufgenerator 904 enthält einen Vertikalsequenzzähler (VSC) 1020. Der Vertikalsequenzzähler 1020 ist ein Aufwärtszähler. Der Zähler 1020 empfängt über die Leitungen 932 ein Steuermodussignal von der Hauptsteuervorrichtung 902. Das Modussignal weist unter anderem an, ob z. B. eine Bild-im-Bild- Operation gewünscht ist. Das Modussignal ist im wesentlichen eine Startadresse für den Vertikalsequenzzähler 1020. Der VSC 1020 erzeugt eine Adresse für den Vertikalsequenzspeicher 1024. Der Vertikalsequenzspeicher 1024 speichert Zeitablaufsignale und andere Signale für Initialisierungs- und Synchronisierungsoperationen des Horizontalzeitablaufgenerators 906, des Befehlsgenerators 910 und des Konstantengenerators 908. Die Informationssequenzen, die im Vertikalsequenzspeicher 1024 gespeichert sind, werden während einer typischen Operation wiederholt. Der Speicher 1024 speichert neben den Informationssequenzen die Anzahl der Wiederholungen der gespeicherten Sequenzen. Der Sequenzspeicher 1024 kann einen Schreib/Lese- Speicher (RAM), einen Nur-Lese-Speicher (ROM) oder andere Formen von programmierbaren Logikmatrizen (PLA) enthalten.
  • Die Wiederholungszahl wird über die Leitung 1027 dem Wiederholungszähler 1028 zugeführt. Der Wiederholungszähler 1028 ist ein Abwärtszähler, der ausgehend von der Sequenzwiederholungszahl abwärts zählt. Wenn vom Zähler 1028 ein Ende-der-Wiederholung-Bit erfaßt wird, wird über die Leitung 1032 ein Steuersignal an die Zählersteuerlogik 1034 weitergeleitet. Die Zählersteuerlogik 1034 gibt ein Signal auf der Leitung 1036 aus, um dem Vertikalsequenzzähler 1020 zu signalisieren, zur nächsten Adreßstelle vorzurücken. Über die Leitung 1040 wird ein weiteres Signal ausgegeben, um den Vertikalschleifenzähler 1030 zu inkrementieren. Die Initialisierung der Zählersteuerlogik 1034 wird durch die vertikalen und horizontalen Synchronisierungssignale des ankommenden Fernsehsignals gesteuert. Die Synchronisierungssignale werden über die Leitungen 1038 zugeführt.
  • Beim Vertikalsequenzspeicher 1024 wird die Steuerkomponente des Signals auf der Leitung 1026 dem Vertikalschleifenzähler 1030 zugeführt, um den Schleifenzähler an einer gewünschten Stelle zu starten. Der Vertikalschleifenzählerausgang, der auf den Leitungen 1042 ausgegeben wird, adressiert Speicherstellen im Vertikalschleifenspeicher 1044. Der Speicher 1044 kann ebenfalls ein RAM, ein ROM oder eine PLA sein. Der Speicher 1044 speichert Schleifenmuster (Programme), Startadressen und Etiketten für den HTG, den VTG und den Befehlsgenerator (IG). Die Steuerdatenbits vom Vertikalschleifenspeicher 1044 werden dem Wiederholungszähler 1028 zugeführt, um anzuzeigen, daß eine Schleifensequenz abgeschlossen ist, und um zu inkrementieren. Die Bits werden ferner dem Registerladesequenzer 1054 zugeführt. Der Registerladesequenzer 1054 enthält einen decodierten Takt zum Steuern der Zwischenspeicher 1048, 1050 oder 1054. Der Registerladesequenzer 1054 erzeugt ferner ein Inkrementierungssignal zum Inkrementieren des Vertikalschleifenzählers 1044. Die Daten werden aus den Zwischenspeichern 1048, 1050 und 1052 mit einer Rate von bis zu einmal je Horizontalzeilenzeitspanne getaktet
  • Im Betrieb erzeugt der Vertikalschleifenzähler 1030 ein Ausgangssignal 1042 für den Vertikalschleifenspeicher 1044, der seinerseits Modussteuersignale ausgibt, die vom Horizontalzeitablaufgenerator-Moduszwischenspeicher 1048, vom Konstantengenerator-Moduszwischenspeicher 1050, dem Befehlsgenerator- Modusspeicher 1052, dem Registerladesequenzer 1054 und dem Wiederholungszähler 1028 zwischengespeichert werden. Der Registerladesequenzer 1054 erzeugt ein Ausgangssignal für den Vertikalschleifenzähler 1030 und für die Zwischenspeicher 1048, 1050 und 1052. Alle Moduszwischenspeicher erzeugen ihre entsprechenden Ausgangssignale für den Horizontalzeitablaufgenerator, den Konstantengenerator und den Befehlsgenerator auf den Ausgangsleitungen 944, 940 und 942, wenn sie getriggert werden.
  • Der Vertikalzeitablaufgenerator 904 dient ferner dazu, den Horizontalzeitablauf in einen anderen Modus umzuschalten, Betriebsbefehle zu ändern, um Fernsehsignale in vergrößerung oder mit einem anderen Filteralgorithmus zu verarbeiten, und externe Multiplexer zu wechseln. Diese Liste ist lediglich erläuternd und soll nicht als erschöpfend für die zahlreichen Funktionen betrachtet werden.
  • In Fig. 34 ist ein Horizontalzeitablaufgenerator 906 der Fig. 31 genauer gezeigt. Zwei der sieben Ausgangsleitungen vom Vertikalzeitablaufgenerator 904 sind dem Horizontalsequenzzähler (HSC) 1062 zugeführt. Die restlichen zwei der sieben sind als Eingangssignal dem Multiplexer 1074 zugeführt. Die anderen beiden Eingangsleitungen 936 in den Multiplexer 1074 sind Modussteuersignale von der Hauptsteuervorrichtung 902 der Fig. 31. Ein steuersignal von der Fernsehsystemsteuervorrichtung 1702 der Fig. 30 steuert die Auswahl zwischen diesen Eingängen. In einigen Fernsehbetriebsarten, wie z. B. 16 Teilbilder, Bild-im-Bild, ändern sich einige Muster im Vertikalzeitablaufgenerator nicht, obwohl sich die Muster im Horizontalzeitablaufgenerator ändern. In diesem Fall wird der Multiplexer 1074 verwendet, um zwei der VTG-Steuerbits um den Vertikalzeitablaufgenerator herum direkt zum Horizontalzeitablaufgenerator zu leiten. Dementsprechend können die 7 HTG- Steuerbits alle vom VTG stammen, oder es können fünf vom VTG stammen und die übrigen beiden von der Hauptsteuervorrichtung stammen. Der Ausgang des Multiplexers 1074 wird vom Zwischenspeicher 1078 zwischengespeichert. Der Zwischenspeicher 1078 wird mit einem Haupttakt des Fernsehsystems getaktet.
  • Das auf den Leitungen 944 eingegebene VTG-Modussignal ist eine Startposition für den Horizontalsequenzzähler 1062. Der Zählerstartpositionsausgang des Zählers 1062 wird mit den zwei Bits vom Zwischenspeicher 1078 kombiniert, um eine Speicherstelle im Horizontalsequenzspeicher 1066 zu adressieren. Mit einem 7-Bit-VTG-Modus-Eingang können bis zu 128 unterschiedliche Muster identifiziert werden. Jedes Muster ist 23 Bits breit - die Breite der Busleitung 950. Der Horizontalsequenzspeicher 1066 speichert Informationen, die anzeigen, wenn eine gewünschte Schleife (oder ein Muster) auf dem Fernsehbildschirm auftritt. Wenn z. B. 16 mögliche Teilbildpositionen vorhanden sind, verändert sich die Zeitablaufeinleitung in Abhängigkeit davon, an welcher Stelle das Teilbild plaziert ist. Der Wiederholungszählerwert wird über die Leitungen 1084 dem Wiederholungszähler 1088 zugeführt. Der Zähler 1088 ist ein Aufwärtszähler, der die Anzahl der Wiederholungen einer Schleife zählt. Wenn die gewünschte Anzahl der Wiederholungen erreicht ist, signalisiert die Zählersteuerlogik 1092 dem Horizontalsequenzzähler 1062, fortzufahren. Die Zählersteuerlogik 1092 wird durch das Horizontalsignal des auf der Leitung 1094 zugeführten Fernsehsignals initialisiert.
  • Die Host-Schnittstelle 914 der Fig. 31 kann eine Unterbrechungspunktanforderung (BPREQ) oder Unterbrechungsmerker an alle Funktionsblöcke und an die Lese- und Schreib-Schaltung weiterleiten. Unter Verwendung von Unterbrechungspunktsignalen kann ein Programmierer die Programmausführung z. B. in einer beliebigen horizontalen Zeile anhalten, um den Algorithmus, den Zeitablauf und dergleichen zu untersuchen.
  • Eine Komponente des Speichers, die vom HSM 1066 ausgegeben wird, erzeugt einen Startort für den Horizontalschleifenzähler 1086. Ein Steuersignal wird über die Leitung 1100 ausgegeben, um die Operation des HSM 1086 zu steuern. Der Horizontalschleifenzähler 1086 erzeugt eine Adresse für den Horizontalschleifenspeicher 1104. Der Schleifenspeicher 1104 hält die Daten, die beschreiben, wie das Wiederholungsmuster aussieht. Eines der 24 Ausgangsbits des Speichers 1104 wird auf der Leitung 1108 ausgegeben, um anzuzeigen, daß das Ende einer Schleife erreicht ist. Die restlichen 23 Bits werden im Zwischenspeicher 1110 für die Eingabe in den SVP-Prozessor 102 zwischengespeichert.
  • Im Betrieb erzeugt der Horizontalzeitablaufgenerator (HTG) 906 Zeitablaufsignale für die SVP-Schaltungen, die Zeitflanken mit Pixeltaktraten erfordern, Feldspeichervorrichtungen, DIR, DOR, externe Multiplexer, D/A-Umsetzer und dergleichen. Er kann Zeitflanken bis hinunter zu einer Auflösung von einem Abtasttakt erzeugen. Der Horizontalzeitablaufgenerator beschreibt ferner, wie der Zeitablauf in Horizontalrichtung aussieht. Wenn Spezialeffekte gewünscht sind, wird der Horizontalzeitablauf in Abhängigkeit davon geändert, ob ein Bild-im-Bild, ein Mehrfachbild, eine vergrößerung etc. gewünscht ist. In diesem Modus kann der horizontale Zeitablauf an einer bestimmten Horizontalzeile geändert werden, um eine Manipulation von Daten zu erlauben.
  • Fig. 35 zeigt ein Blockschaltbild eines Konstantengenerators 908 der Fig. 31. Fünf Vertikalzeitablaufgenerator-Modusbits werden dem Konstantensequenzzähler 116 zugeführt. Die 5 Bits können bis zu 32 unterschiedliche Konstantenketten identifizieren. Jede Konstantenkette kann bis zu 15 Bits besitzen - die Breite des Ausgangsbusses 946. Der CSC-Ausgang auf den Leitungen 1118 adressiert die Schleifenadressenwerte und den entsprechenden Wiederholungswert, die im Konstantensequenzspeicher 1120 gespeichert sind. Die Konstantensequenzspeicheradresse wählt eine Startposition für den Konstantenschleifenzähler 1126 aus. Der Zähler 1126 beginnt an der angezeigten Position und wird inkrementiert, bis er ein Ende-der-Schleife- Bit erreicht. Der Wiederholungswert, der von 0 bis 31 reicht, wird dem Wiederholungszähler 1128, einem Abwärtszähler, Zugeführt. Wenn der Wiederholungszähler auf null dekrementiert wird, weist ein Signal auf der Leitung 1130 der Zählersteuerlogik 1132 an, den Konstantensequenzzähler 1116 zu inkrementieren. Die Zählersteuerlogik inkrementiert ferner den Schleifenzähler 1126, bis ein Ende-der-Schleife-Signal erfaßt wird. Der Konstantenschleifenzähler 1126 zeigt eine Startspeicherstelle für den Konstantenschleifenspeicher 1142 an. Eines der 16 Ausgangsbits vom Konstantenschleifenspeicher 1142 erzeugt ein Ende-der-Schleife-Signal, um den Wiederholungszähler 1128 zu dekrementieren.
  • Der Schleifenspeicher 1142 speichert einzigartige Betriebskonstanten für die einzelnen Prozessorelemente. Solche Daten enthalten die Werte für die emulierten Filter. CG 908 arbeitet synchron zum HTG, um die erzeugten Daten in die Dateneingangsregister zu takten. Anschließend überträgt ein im IG residentes Programm diese Konstanten in die Prozessorregistergruppen. Der Konstantengenerator kann einen Datenstrom mit einer Auflösung von einer Abtasttaktperiode erzeugen.
  • Fig. 36 zeigt einen Befehlsgenerator 910 der Fig. 31 genauer. Der Befehlsgenerator 910 enthält eine Sprungmerkerzuweisungssteuerlogik 1224, die ein Horizontalsynchronsignal 1218, ein Modussteuersignal 1220 vom vertikalzeitablaufgenerator 904 sowie die Merkersignale 1222 empfängt. Die Sprungmerkerzuweisungs-Logik 1224 leitet fünf der elf Vektor-Sprungadressenbits an den Eingang 1226 des Befehlsprogrammregister-Multiplexers (IPRX) 1230 weiter. Die 5 Bits auf den Leitungen 1226 sind die niedrigstwertigen der insgesamt 11 Bits.
  • Die Sprungmerkerzuweisungslogik 1224 führt ferner ein Sprungsignal 1228 dem Befehlsdecodierer 1234 zu. Der Befehlsdecodierer 1234 erzeugt mehrere Ausgangssignale. Eine Leitung 1236 führt eines der Ausgangssignale zurück zu einem Eingang der Sprungmerkerzuweisungslogik 1224. Die Leitungen 1238 führen ein decodiertes 4-Bit-Multiplexerausgangssteuersignal 1238 dem IPRX 1230 zu. Die Leitungen 1240 führen die Steuersignale der Inkrementierungssteuerlogik 1242 und einem Globalrotationsadreßgenerator (RF1) 1244 sowie einem Globalrotationsadreßgenerator (RF0) 1246 zu. Das auf den Leitungen 1240 ausgegebene 4-Bit-Steuersignal weist die Globalrotationsadreßgeneratoren 1244 und 1246 an, Daten für ihre entsprechenden Registergruppen zu laden oder zu verschieben. Die der Inkrementierungssteuerlogik 1242 zugeführten Signale stellen den Adreßzähler 1290 und 1292 so ein, dab er um +1 inkrementiert, wenn ein Einzelbefehlsbetrieb implementiert ist, und um +2 inkrementiert, wenn eine Doppelbefehlsoperation implementiert ist.
  • Der IPRX 1230 gibt eine 11-Bit-Befehlsadresse auf den Leitungen 1248 an das Befehlsprogrammregister 1250 aus. Das Ausgangssignal 1252 vom Befehlspunktregister 1250 ist eine Adresse für den Befehlsprogrammspeicher 1258. Die Adresse 1252 wird ferner zum HOLD-Eingang 1254 des IPRX 1230 zurückgeführt. Der HOLD-Eingang hält die Ausgangsspeicheradresse für eine Neuadressierung, falls gewünscht. Die Adresse 1252 wird ferner einer +1-Inkrementierungssteuerlogik 1256 zugeführt. Die Inkrementierungslogik 1256 inkrementiert das Rückkehrregister 1264 oder weist den IPRX 1230 an, zur nächsten Adresse vorzurücken. Das Rückkehrregister wird durch ein CALL-Eingangssignal zwischengespeichert.
  • Der Befehlsprogrammspeicher (IPM) 1258 speichert den SVP- Systemmatrix-Befehlssatz im Mikrocode. Der Matrixbefehlssatz ist oben dargestellt worden. Eine vollständige Beschreibung der 44 Bits ist darin enthalten. Die 44 Befehlsbits vom Befehlsprogrammspeicher 1258 werden an verschiedene Orte verzweigt, wie im Matrixbefehlssatz ausgeführt ist. Zum Beispiel ist das Bit Nr. 43 ein Unterbrechungspunktmerker. Dieses Bit wird über die Leitung 1270 der Unterbrechungspunktsteuervorrichtung 1274 zugeführt. Andere Steuerbits werden den VECTOR-, JUMP- und CALL-Eingängen des IPRX 1230 und dem Eingang 1282 des Befehlsdecodierers 1234 zugeführt. Ein Maskenwertbit zur Auswahl eines Merkers wird über die Leitung 1223 der Sprungmerkerzuweisungslogik 1224 zugeführt. Wenn die Unterbrechungspunktsteuervorrichtung 1274 freigegeben ist, während ein Unterbrechungspunktbit gelesen wird, wird ein Unterbrechungssignal auf den Leitungen 1280 und 1284 ausgegeben, um die Operation anzuhalten und einen Test durchzuführen. Die Unterbrechungspunktsteuervorrichtung 1274 empfängt ferner ein Unterbrechungspunktzeilen-(BPline)-Eingangssignal 1276 und ein Rücksetzeingangssignal 1278. Die Befehlsbits 0 bis 23 werden vom Befehlsprogrammspeicher (IPM) 1258 zum Steuercodezwischenspeicher 1194 verzweigt. Die Bits 25 bis 31 werden zum RF0- Adreßzähler 1290 verzweigt. Die Bits 32 bis 38 werden zum RF1- Adreßzähler 1292 verzweigt. Die Bits 39 bis 42 werden zum Wiederholungszähler 1294 und zur Inkrementierungssteuerlogik 1242 verzweigt. Der Inkrementierungssteuerzähler 1242 empfängt ferner die Eingänge 1240 vom Befehlsdecodierer, der ferner ein 4-Bit-Steuereingangssignal an die globalen Rotationsadreßgeneratoren (RF1) 1244 und (RF0) 1246 weiterleitet. Der zwischengespeicherte Befehlsausgang vom Steuercodezwischenspeicher 1194 wird der Hilfsregister- und Steuerlogik 1196 zugeführt, die ferner globale Variablensignale auf der Leitung 1152 empfängt. Der Ausgang des Steuercodezwischenspeichers 1194 wird ferner direkt in Form der Mikrocode-Bits 0 bis 23 auf der Leitung 1200 ausgegeben. Die Ausgänge 948 werden dem SVP-Prozessorbaustein zugeführt.
  • Im Betrieb führt der Befehlsgenerator 910 der SVP-Prozessormatrix einen Strom von Daten, Befehlen, Adressen und Steuersignalen mit einer gewünschten Taktrate zu. Der erzeugte Mikrocode manipuliert die arithmetisch/logischen Einheiten der Prozessorelemente, Multiplexer, Register und dergleichen des SVP 102 der Fig. 1 und weist diese an. Der Befehlsgenerator 910 kann zusätzlich zu den Kernbefehlen Befehle erzeugen, die dem SVP-Kernprozessor erlauben, in der Art eines einfachen Mikroprozessors zu operieren. In diesem Modus werden Befehle ausgeführt, wie z. B. unbedingte Sprünge, Aufrufe und Sprünge nach bestimmten Merkertests der Merker 0, 1 und dergleichen. Die Merker können extern getestet werden. Der Befehlsgenerator 910 kann interne Steuercodes vom Vertikalzeitablaufgenerator 904 oder von der Hauptsteuervorrichtung 906 empfangen und empfängt Merker vom Horizontalzeitablaufgenerator 906.
  • Während des Betriebs wird der im Befehlsprogrammspeicher (IPM) 1258 gespeicherte Befehlsmikrocode geholt, interpretiert und vom Befehlsdecodierer 1234 ausgeführt. Einige der decodierten Signale können als Adreßauswahl für den Befehlsprogrammregister-Multiplexer (IPRX) 1230 verwendet werden, um die im Befehlsprogrammregister (IPR) 1250 zwischengespeicherte Adresse zu verändern. Die Befehlscodes steuern die verschiedenen Typen von Befehlssätzen, z. B. bedingte oder unbedingte Sprünge, Unterroutinenaufrufe oder Rücksprünge, Vektoradressierung mit aktualisiertem Moduswert, Einzel- oder Doppelbefehl, Hilfsregistersteuerung für die Verteilung der globalen Variablen sowie die globale Rotation für die RAM-FILE(0 und 1)- Adressen und dergleichen.
  • Wenn das Unterbrechungspunktsignal während der Fehlerbeseitigungsstufe ausgegeben wird, setzt die Unterbrechungspunktsteuervorrichtung 1274 den Inhalt des IPR 1250 auf einen vorgegebenen Wert, um den Fluß des Programms in spezielle Unterroutinen zu lenken, um die von den SVP-Operationen verarbeiteten Daten zu prüfen. Diese Unterbrechungsfunktion kann durch den maskierbaren Eingang der Horizontalzeile BPline 1276 innerhalb eines gegebenen Halbbilds des Videosignals gesteuert werden.
  • Der Wiederholungszähler 1294 reduziert die erforderliche Menge an Speicherstellen im IPM 1258, indem er eine Anzahl aufeinanderfolgender, identischer Befehle als eine Kombination dieses Befehlscodes und der Zahl des Wiederholungszählers darstellt. Wenn z. B. der Wiederholungszähler 1294 nicht null ist, wird der Befehlsprogrammzähler nicht vorgerückt, da derselbe Befehl lediglich mit einer anderen Adresse wiederholt wird. Dies ermöglicht das Wiederholen eines Befehls, ohne daß er in mehreren Speicherstellen gespeichert ist. Wie im Befehlssatz gezeigt, ist der Befehlswiederholungswert im Mikrocode in den Bits 39 bis 42 codiert.
  • Fig. 37 zeigt eine alternative Verbindungsbeziehung zwischen der Steuervorrichtung 128 und dem SVP-Prozessorbaustein 102 der Fig. 1. Der Oszillator 1157 führt, wie gezeigt, die Zeitablaufsignale den verschiedenen SVP-Systemkomponenten über die Leitungen 1156 zu. Der Osziallator wird von den horizontalen und vertikalen Synchronsignalen des ankommenden Videosignals getriggert. Die Ausgangsleitungen 1160a und 1160b führen die Taktsignale dem Konstantengenerator 908 und dem Multiplexer 1164 zu. Ein Taktsignal wird ferner über die Leitung 1158 dem Befehlsgenerator 910 zugeführt. Ähnliche Verbindungen können zu anderen Komponenten eingerichtet werden, falls erforderlich. In Fig. 37 wählt der Multiplexer 1164 als Datenquelle für die Dateneingangsregister 154 das ankommende digitalisierte Videosignal oder die Konstanten vom Konstantengenerator 908 aus. Andere Eingänge in die Dateneingangsregister 154 enthalten den Ausgang von den Halbbildspeichern, wie z. B. dem Halbbildspeicher 120 der Fig. 1, oder andere Datenquellen.
  • Die Konstanten werden in vorbestimmbaren Mustern den einzelnen Prozessorelement-Registergruppen für die Verwendung während der Datenverarbeitung zugeführt. Der Konstantengenerator ermöglicht jedem Prozessorelement, einen einzigartigen Konstantenwert zu besitzen, falls gewünscht. Im Gegensatz dazu teilen die globalen Variablen allen SVP-Prozessorelementen dasselbe mit. Um Konflikte mit dem ankommenden Videosignalkonstanten zu vermeiden, werden sie getrennt vom ankommenden Videosignal geladen. Die Konstanten werden mit dem vom Horizontalzeitablaufgenerator 906 erzeugten Zeitablauf in das DIR 154 geschoben. Bei Videoanwendungen ist es möglich, mit jeder neuen Horizontalzeile neue Konstanten zuzuführen.
  • Fig. 38 zeigt eine alternative Ausführungsform der Konstantengenerator-Architektur der Fig. 35. Die Schaltung der Fig. 38 umfaßt einen Sequenzspeicher 1120 (mit einer Eingangsleitung 1176 zum Empfangen einer Zeitablaufmusternummer) mit den Ausgangsleitungen 1122, 1178 und 1124. Der Ausgang 1122 führt eine Schleifenmusternummer dem Schleifenzähler 1182 zu, der seinerseits über die Leitungen 1184 eine Adresse zum Schleifenspeicher 1142 weiterleitet Der Ausgang 1178 führt der Steuerlogik 1132 ein Ende-der-Zeitablaufsequenz-Signal zu, die ferner ein Ende-der-Schleife-Signal vom Schleifenspeicher 1142 über die Leitung 1188 empfängt. Der Ausgang 1124 führt eine N- Bit-Zahl, die die Anzahl der Wiederholungen eines Befehlsmusters anzeigt, dem Wiederholungszähler 1128 zu.
  • Die Fig. 39 und 40 sind Beispiele von Inhalten, die im Sequenzspeicher 1120 und im Schleifenspeicher 1142 gespeichert sind. In Fig. 39 besitzt die Spalte I Einträge für die Zeitablaufmusternummer der im Speicher 1120 gespeicherten Muster. Die Spalte II besitzt Einträge für das Ende-der-Zeitablaufsequenz- Signal. In diesem Beispiel ist das Signal ein logischer Hochpegel oder eine Eins, die einer Kette a von logischen Niedrigpegeln oder Nullen folgt, wenn mehrere Schleifenmuster zu wiederholen sind. Ein einzelnes Bit ist vorgesehen, wenn nur ein Schleifenmuster vorhanden ist. Die Spalte III besitzt Einträge für die Anzahl der Wiederholungen jedes Schleifenmusters. Die Spalte IV besitzt Einträge für die Schleifenmusternummer der zu wiederholenden Schleifenmuster.
  • Fig. 40 zeigt die Inhalte des Schleifenspeichers 1142, die Spalte I besitzt Einträge für die Schleifenmusternummer, die der Spalte IV der Fig. 39 entsprechen. Die Spalte II besitzt Einträge für das Ende-der-Schleife-Signal. Dieses Signal ist ein logischer Hochpegel oder eine Eins, die mehreren Nullen folgt. In dieser Darstellung sind im Speicher 1142 vier verschiedene Schleifen gespeichert. Die Spalte III listet die zu wiederholenden Konstanten auf.
  • Fig. 41 ist ein Flußdiagramm der Sequenz der Ereignisse zum Zuführen der Konstanten des Zeitablaufmusters #4 zum SVP- Prozessorbaustein 102. Die Sequenz beginnt an der Stelle 1198, wenn ein Programmbefehl den Konstantengenerator 908 anweist, die Konstanten dem SVP-Prozessor 102 zuzuführen. Die Sequenz fährt mit Schritt 1200 fort, um die Zeitablaufmusternummer in den Zähler 1116 einzugeben. Die Zeitablaufmusternummer vom Zähler 1116 wird verwendet, um eine Sequenz von Mustern im Sequenzspeicher 1120 zu adressieren. Die Zeitablaufmusternummer ist in diesem Beispiel vier. Die Sequenz rückt anschließend zum Schritt 1202 vor, wobei der Zählerausgang 1118 die Startspeicherstelle für die Zeitablaufmustersequenz #4 adressiert. Die Sequenz rückt anschließend zum Schritt 1204 fort, wobei der Sequenzspeicher 1120 der Steuerlogik 1170 signalisiert, den Sequenzzähler 1116 auf 0 zurückzusetzen. Die Sequenz rückt anschließend zum Schritt 1206 vor, wobei der Sequenzspeicher 1120 den Wiederholungszähler 1128 mit der Anzahl der Wiederholungen der Schleife lädt und den Schleifenzähler 1182 mit der ersten Schleife lädt. In diesem Beispiel gibt es drei Schleifen im Zeitablaufmuster #4. Die erste Schleife, das Schleifenmuster #3, soll 31 mal wiederholt werden. Die zweite Schleife ist ebenfalls das Schleifenmuster #3 und wird 31 mal wiederholt. Die 5-Bit-Adresse setzt die maximale Anzahl von Wiederholungen in diesem Beispiel auf 31 fest. Durch Ändern der Bitbreite kann eine größere Anzahl zugewiesen werden. Wenn im vorliegenden Fall gewünscht ist, mehr als 31 Wiederholungen durchzuführen, müssen lediglich dieselben Schleifenmuster wiederholt werden. Dies wird mit dem Zeitablaufmuster #4 bewerkstelligt.
  • Nach dem Schritt 1206 rückt die Sequenz zum Schritt 1207 vor, wobei der Sequenzspeicher 1120 den Wiederholungszähler 1128 mit der Wiederholungszahl des ersten Schleifenmusters lädt. Dies ist in diesem Beispiel #3. Der Schleifenzählerausgang adressiert eine Speicherstelle im Schleifenspeicher 1142. Die Sequenz rückt zum Schritt 1208 vor, wobei der Schleifenspeicher 1174 die Kette der Konstanten ausgibt, die der Schleife #3 entsprechen. In diesem Beispiel ist die Konstantenkette gleich 8-5-7-3-2-19. Die Sequenz rückt anschließend zum Schritt 1210 vor, wobei die Steuerlogik 1132 den Schleifenzähler 1182 nach dem Durchlaufen jeder Konstante inkrementiert. Im Schritt 1212, wenn das Ende-der-Schleife-Bit von der Steuervorrichtung 1132 nicht erfaßt worden ist, wird die Operation ausgehend vom Schritt 1208 wiederholt, bis die letzte Konstante in der Schleife weitergeleitet worden ist und das "1"-Ende-der- Schleife-Signal erfaßt worden ist. Die Sequenz rückt anschließend zum Schritt 1214 vor, wobei die Steuerlogik 1170 den Schleifenzähler 1182 zurücksetzt und den Wiederholungszähler 1128 mittels der Signale auf den Leitungen 1186 bzw. 1192 dekrementiert. Anschließend rückt die Sequenz zum Schritt 1216 vor. Im Schritt 1216 kehrt die Sequenz zum Schritt 1207 zurück, wenn der Wiederholungszähler 1128 noch nicht 0 erreicht hat. Wenn der Wiederholungszähler 1128 0 erreicht hat, fährt die Sequenz mit Schritt 1221 fort, wobei die Steuerlogik 1132 den Sequenzzähler um +1 inkrementiert, woraufhin die Sequenz zum Schritt 1206 zurückkehrt und die Schritte wiederholt werden. Wenn im Schritt 1223 der Sequenzzählerinhalt größer ist als die Anzahl der Sequenzen, hält die Operation im Schritt 1227 an.
  • GLOBALER ROTATIONSADRESSENZÄHLER (FÜR RF0 UND RF1)
  • In Fig. 42 ist ein fünfpoliges Filter 792 mit endlicher Impulsantwort (FIR-Filter) und N Bit Auflösung gezeigt, der im vorliegenden SVP-Baustein 102 implementiert sein kann. Durch Verwenden der Übernächster-Nachbar-Architektur der Fig. 18 können 2N Befehle gegenüber der Einzel-Nächster-Nachbar-Architektur eingespart werden. Zum Beispiel ist in Bezug auf den im folgenden enthaltenen Befehlssatz gezeigt, daß der Prozessor 102 N Befehle benötigt, um N Bits von 2L nach 1L zu bewegen und eine Addition durchzuführen. In ähnlicher Weise werden N Befehle benötigt, um N Bits von 2R nach 1R zu bewegen. Durch die Übernächster-Nachbar-Verbindungen werden gegenüber einem Einzel-Nächster-Nachbar-Kommunikationsnetz 2N Befehle eingespart. Wenn z. B. ein 12-Bit-FIR in der Übernächster-Nachbar- Anordnung implementiert ist, erfordert dies weniger als 68 % der Ausführungszeit eines Einzel-Nächster-Nachbar-Netzes.
  • Da der SVP ein mittels Software programmierbarer Baustein ist, können zusätzlich zum FIR der Fig. 42 (Horizontalfilter) verschiedene Filter und andere Funktionen implementiert werden. Diese umfassen z. B. vertikale und temporale FIR-Filter sowie IIR-Filter (vertikal und temporal).
  • In Fig. 43 sind vier Zeilenspeicher dargestellt: ein 8-Bit- Zeilenspeicher 824; ein 6-Bit-Zeilenspeicher 826 sowie zwei 4- Bit-Zeilenspeicher 828 und 830. Diese Zeilenspeicher können im vorliegenden SVP-Baustein 102 emuliert werden. Um die Technik darzustellen, sei angenommen, daß Fig. 44a eine Registergruppe darstellt, wie z. B. RF0 des Prozessorelements n, die die Bitstellen 00 bis 7F (0 bis 127) besitzt. Die Registergruppe 44a kann in mehrere Stücke unterteilt werden. In diesem Beispiel wird die Registergruppe in zwei Stücke unterteilt - ein oberes und ein unteres Stück (die nicht unbedingt gleich sind). Der obere Abschnitt umfaßt die Bitstellen 00 bis 3F. Der untere die Bitstellen 40 bis 7F. Wenn der obere Abschnitt dem globalen Rotationsspeicher zugewiesen wird, kann der untere Abschnitt als normal operierende Registergruppe verwendet werden. Zur Erleichterung des Verständnisses kann der globale Rotationsabschnitt z. B. reorganisiert werden in "P" Wörtern von "Q" Bits, wobei P Q kleiner oder gleich dem gesamten globalen Rotationsraum ist. Dies ist in Fig. 18b gezeigt, die eine Explosionsansicht des oberen Abschnitts der Fig. 44a ist. Jede Leitung des globalen Rotationsbereichs der Fig. 44b umfaßt 8 Bits der Registergruppe, die in eine gestapelte horizontale Anordnung transponiert sind. Wenn eine Adresse in diesem Speicherbereich spezifiziert wird, wird sie um einen "Rotationswert" = Q-Modulus des gesamten globalen Rotationsraums verschoben. Statt daß es erforderlich ist, die Daten durch die Speicherbank zu schieben, werden somit die einzelnen Zeilenspeicherteilmengen der Registergruppe zyklisch vertauscht. Dies wird mit dem folgenden Beispiel dargestellt.
  • Wenn die vier Beispielzeilenspeicher der Fig. 43 im globalen Rotationsbereich der Fig. 44b gespeichert werden, wird ein globaler Rotationsbefehl ausgeführt, dessen offensichtliche Wirkung für die Daten ist, daß sie dem Weg folgen: BTC; CTD; DTE; ETG; GTH; HTM und J; MTN; JTK; N und KTB. Auf den ersten Blick scheint die Bewegung ETG, HTM und J, sowie N und KTB ein Fehler zu sein, da anscheinend lediglich die alten Daten verschoben worden sind, die vor einer globalen Rotation vorhanden sind. Dies ist jedoch nicht der Fall, da unmittelbar nach der globalen Rotation die neuen Datenwerte A, F, I und L in diese Stellen geschrieben werden und somit die alten Werte E, H, K und N verloren gehen - wie es in einem Zeilenspeicher erwartet wird. Um die 1-Horizontalverzögerungen zu emulieren, wird der globale Rotationsbefehl je Horizontalzeilenzeitspanne einmal ausgeführt. Die SVP-Hardware erlaubt das Setzen des Werts von Q und des Maximalwerts des globalen Rotationsraumes.
  • Fig. 45 ist ein Logikdiagramm des Globalrotationsadreßgenerators für die Registergruppe 0 (RF0) 1246 der Fig. 36. Der Globalrotationsadreßgenerator für die Registergruppe 1 1244 der Fig. 36 ist identisch, weshalb sich die folgende Beschreibung auf beide Generatoren bezieht. Der Globalrotationsadreßgenerator 1246 empfängt eine relative Registeradresse vom Adreßzähler der Registergruppe 0 über die Leitungen 1291. Diese relative Adresse wird über die Leitungen 948 den Adreßregisterstellen in der Registergruppe 0 zugeführt. Die Mikrocode-Bits 32 bis 37 sind sechs der elf Bits, die über die Leitungen 1374 und 1382 vom Befehlsprogrammspeicher 1258 zugeführt werden. Die über die Leitungen 1374 zugeführten 6 Bits definieren die Menge der Register im Gesamtregisterbereich, die während eines Rotationsschrittes zu rotieren sind. Dies ist im vorangegangenen Beispiel die Wortlänge P. Zu Entwurfszwecken ist der durch die Bits 32 bis 37 definierte Wert in diesem Beispiel mit einem Faktor 2 skaliert. Der skalierte p-Wert wird den Registern 1370 zugeführt. Die Mikrocöde-Bits C48 bis 42, die vom Befehlsprogrammspeicher 1258 über die Leitungen 1382 zugeführt werden, definieren in diesem Beispiel den gesamten globalen Rotationsbereich oder Q. Für Entwurfszwecke sind die Rotationsbereiche mit einem Faktor 8 skaliert. Der skalierte Q-Wert wird den Registern 1380 zugeführt. Wenn eine globale Rotation beginnen soll, führt der Befehlsdecodierer 1234 der Fig. 36 ein Signal LMRx (x = 0 für RF0 und x = 1 für RF1) über die Leitungen 1243A der RF0 zu. Das Signal LMRx wird dem Modulusregister (MOD REG) 1380, dem Rotationswertregister (ROT VAL REG) 1370 und dem Offset-Register (OFST REG) 1450 zugeführt. Die Funktion des OFST REG 1450 wird im folgenden genauer beschrieben. Das LMRx-Signal lädt die auf den Leitungen 1374 und 1382 anliegenden Werte in die Register 1370 bzw. 1380 und setzt das Register 1450 zurück. Es ist lediglich notwendig, den LRMx-Befehl einmal auszuführen, bevor eine globale Rotation verwendet wird. Wenn die globale Rotationsgröße nicht verändert wird oder keine neue globale Rotation gestartet wird, muß er nicht erneut ausgeführt werden.
  • Der Addierer (ADD-a) 1390 addiert die Inhalte des ROT VAL REG 1370 zu den aktuellen Inhalten des OFST REG 1450. Der Ausgang des OFST REG auf den Leitungen 1396 ist eine Hälfte der Differenz zwischen dieser absoluten Registergruppenadresse und der auf den Leitungen 1291 ausgegebenen relativen Registergruppenadresse. ADD-a gibt einen neuen Offset-Wert auf die Leitungen 1600 an den "+"-Eingang des Subtrahierers-a 1373 und an den "1"-Eingang des Datenselektors-a 1372 aus. Der Subtrahierer-a 1373 subtrahiert die vier höchstwertigen Bits (MSBs) des Moduluswertes vom MOD REG 1380 und des 6-Bit-Ausgangs vom ADD-a 1390. Bevor diese Subtraktion durchgeführt wird, werden zwei niedrigstwertige 0-Bits (LSBs) zum globalen Rotationsbereichsausgangswert vom Register 1380 addiert. Die Addition der zwei 0-LSBs multipliziert den globalen Rotationsbereichsausgang mit 4. Der Subtrahierer 1373 ist optional und prüft, ob der Offset- Wert außerhalb des definierten globalen Rotationsbereichs liegt. In diesem Beispiel liegt der Offset-Wert innerhalb des globalen Rotationsbereichs, wenn der Subtrahiererausgang positiv ist (logischer Niedrigpegel). Der Datenselektorausgang 1602 wird dem "0"-Eingang des Datenselektors-a 1372 zugeführt.
  • Der Datenselektor 1372 wählt als Eingang den Ausgang des Subtrahlerers 1373, wenn der Selektorausgang positiv ist. Der Ausgang vom ADD-a 1390 wird ausgewählt, wenn der Selektorausgang negativ ist - was einen Offset außerhalb des globalen Rotationsbereichs anzeigt. Der Ausgang des Datenselektors-a 1372 ist ein korrigierter Offset-Wert. Der neue Offset-Wert, der vom Datenselektor-a 1372 ausgegeben wird, wird vom Offset- Register 1450 zwischengespeichert, wenn dieser durch das Signal GRLx 1243 vom Befehlsgenerator getaktet wird. Der GRLx-Befehl wird ausgeführt, um eine globale Rotation einzuleiten. Dies tritt üblicherweise zu Beginn oder am Ende einer Abtastzeile oder vor einer Übertragung vom DIR zum RF0 oder vom RF1 zum DOR auf. Ferner ist die Durchführung einer Übertragung während einer horizontalen Zeilenabtastung ebenfalls möglich.
  • Wie mit den Eingangsleitungen 1291 der Fig. 45 gezeigt, werden die 7 Bits, die die relative Registergruppenadresse definieren, als ein Eingangssignal dem Komparator (COMP) 1440 und als ein Eingangssignal dem Datenselektor-c (DSEL-c) 1420 zugeführt. Die dem COMP 1440 zugeführten sieben Bits sind die LSB-Bits eines 8-Bit-Eingangs. Das MSB ist ein 0-Bit, das auf der Leitung 1379 zugeführt wird. Der zweite Eingang in den COMP 1440 ist ein 5- Bit-Ausgang vom MOD REG 1380. Die fünf Ausgangsbits führen die höchstwertigen Bits eines 8-Bit-Eingangs dem COMP 1440 zu. Die drei LSB-Bits werden als Nullen von den Leitungen 1379 zugeführt. Der Komparator 1440 vergleicht die relative Adresse 1291 mit dem Ausgang des Moduluswert-Registers 1384. Wie erwähnt, ist der Ausgang 1384 ein skalierter Wert. Die Addition der drei 0-LSBs multipliziert den skalierten Wert mit 8. Der Komparator 1440 prüft auf eine globale Rotation. Wenn die relative Adresse größer oder gleich dem Ausgang des Modulusregisters 1380 ist, liegen die adressierten Registergruppenstellen außerhalb des definierten globalen Rotationsbereichs, weshalb eine globale Rotation nicht durchgeführt wird. Der Komparatorausgang 1388 wird als einer von zwei Eingängen dem ODER-Gatter 1376 zugeführt. Der zweite Eingang ist das Mikrocode-Steuerbit C2 (C5, falls die Registergruppe eins adressiert ist). Wie oben beschrieben worden ist, wird dann, wenn das Mikrocode-Bit C2 (oder C5) gleich 1 ist, das DIR (DOR) oder die Hilfsregister adressiert. Wenn C2 (C5) gleich 1 ist, wird nicht global rotiert. Wenn die relative Adresse außerhalb des Registergruppen-Globalrotationsbereichs liegt, antwortet der Datenselektor DSELc 1420 auf ein vom ODER- Gatter 1376 ausgegebenes Signal und wählt den relativen Adreßeingang als absoluten Adreßausgang 948 aus.
  • Der Subtrahierer-b SUB-b 1400 empfängt als einen von zwei Eingängen die relative Adresse. Der andere Eingang ist der Ausgang 1604 des Offset-Registers 1450 plus eines hinzugefügten 0-LSB-Bits. Der Subtrahierer-b 1400 ist optional und führt einen Globalrotationstest durch. Der Subtrahierer-b subtrahiert den relativen Adreßwert 1291 vom definierten Offset-Wert. Der Ausgang auf den Leitungen 1402 ist die absolute Adresse. Der absolute Adreßwert 1402 wird als einer der zwei Eingänge dem Addierer-b (ADD-b) 1410 und als einer der zwei Eingänge dem Datenselektor-b (DSEL-b) 1419 zugeführt. Wenn der Ausgang 1402 negativ ist, veranlaßt ein Signal 1394 an DSEL-b 1419 den DSEL- b 1419 zum Auswählen des Ausgangs 1606 vom ADD-b als absolute Adresse. ADD-b korrigiert das Auftreten einer negativen Adresse, da es keine negativen Adressen gibt. Der ADD-b 1410 addiert den Modulusregisterwert 1384 (mit drei angefügten 0- LSB-Bits) zum Subtrahierer-b-Ausgang 1402. Dies führt zu einer positiven absoluten Adresse, die vom ADD-b ausgegeben wird. Die Fig. 42c ist ein Flußdiagramm für die vorangegangene Sequenz von Ereignissen und ist ferner eine Fortsetzung des Flußdiagramms der Fig. 42a.
  • Im vorangegangenen Logikdiagramm der Fig. 42 ist ADD-a ein 6- Bit-Addierer, ADD-b ein 6-Bit-Addierer, SUB-a ein 4-Bit-Subtrahierer, SUB-b ein 6-Bit-Subtrahierer, DSEL-a ein 4-Bit- Datenselektor, DSEL-b ein 4-Bit-Datenselektor, DSEL-c ein 6- Bit-Datenselektor und COMP ein 8-Bit-Komparator.
  • Der Wert von [MOD REG] ist < Moduluswert> / 8, wie folgt:
  • < Moduluswert> = 0, 8, 16, 24 ... 112, 120, 128
  • [MOD] = 0, 1, 2, 3, ... 14, 15, 16.
  • Der Wert von [ROT VAL REG] ist < Rotationswert> / 2 und nimmt für das obige Beispiel jede beliebige Zahl zwischen 0 und [MOD REG] 4 an.
  • Wenn die relative Adresse vom Befehlsgenerator (REL ADRS) größer oder gleich den Inhalten von [MOD REG] 8 ist, wird die (REL ADRS) von DSEL-c ausgegeben. Ansonsten wird vom DSEL-c eine Modulosadresse ausgegeben, um eine globale Rotation durchzuführen.
  • If (REL ADRS) < [MOD REG] 8 : ((REL ADRS)-[OFST REG] 2) mod([MOD REG] 8)
  • If (REL ADRS) &ge; [MOD REG] 8 : (REL ADRS)
  • Die Fig. 46a und 46b sind Teile eines Flußdiagramms für eine globale Rotation.
  • In Fig. 47 ist eine Beispielschaltung zur Pipelineverarbeitung von Adressen, Daten, Steuersignalen und anderen Signalen, die von der Steuervorrichtung 128 empfangen werden, gezeigt. Die erläuternde Schaltung umfaßt einen Adreßpuffer 1436, der dem Faktorgenerator 1440 einen Eingang 1438 zuführt, dessen Ausgang vom Treiber 1444 dem Adreßfaktordecodierer 1448 zugeführt wird. Der Ausgang 1450 des Decodierers 1448 wird dem Zwischenspeicher 1452 zugeführt, der mit der auf der Leitung 1454 zugeführten Abtastfrequenz getaktet wird. Der Zwischenspeicher 1452 kann zwischen dem Takten durch ein Eingangssignal mit aktivem Niedrigpegel auf der Leitung 1458 zurückgesetzt werden. Der Ausgang des Zwischenspeichers 1452 wird dem Steuerleitungseingang des Abschnitts unter der Steuerung zugeführt, wie z. B. der Wortleitung 1462 eines Dateneingangsregisters, einer Eingangsregistergruppe, einer Ausgangsregistergruppe oder eines Datenausgangsregisters. Wenn eine externe Steuervorrichtung verwendet wird, wird ein Chipanschlußkontakt vorgesehen, um das Steuersignal in den SVP-Kern 102 einzugeben. Der Schaltungstyp der Fig. 47 kann ebenfalls auf der DOR-Seite verwendet werden. Fig. 48 ist eine Tabelle verschiedener Eingänge und Ausgänge für eine Pipeline-Schaltung.
  • In Fig. 49 ist ein Zeitablaufdiagramm dargestellt, um die verbesserte Geschwindigkeit der Vorrichtung darzustellen, die aus der Fähigkeit resultiert, kontinuierlich Signale dem SVP zuzuführen, ohne das es erforderlich ist, daß das Ergebnis der vorher ausgeführten Befehle ermittelt wird. Das Signal 1431 ist ein Speicheradressengiiltigkeitssignal, das dem Kern des SVP- Bausteins 102 über die externe Kontaktanschlußfläche zugeführt wird. Das Signal 1450 ist der decodierte Signalausgang des Adreßdecodierers 1448. Das Signal 1462 zeigt den Signalausgang des Treibers 1456, der z. B. der DIR-Wortleitung zugeführt wird. Wenn zum Zeitpunkt t0 ein Adressengültigkeitssignal ausgegeben wird, wird das Signal decodiert und zum Zeitpunkt t1 dem Zwischenspeicher 1452 zugeführt, wo es zum Zeitpunkt t3 zwischengespeichert wird. Nach dem Abtasten wird die decodierte Adresse den ausgewählten Wortleitungen zugeführt. Die Geschwindigkeit der Operation wird wesentlich erhöht durch die Fähigkeit, aufeinanderfolgende Signale dem Adreßpuffer kontinuierlich zuzuführen, bevor das vorangegangene Signal ausgeführt worden ist. In der vorliegenden Schaltung hält der Zwischenspeicher den Zustand der Adresse der aktuellen Operation, während die neue Adresse (für die nächste Operation) durch den Eingangspuffer, den Faktorgeneraton Treiber, die Verdrahtung und den Adreßdecodierer im Pipelineverfahren geladen wird. Wie oben erwähnt, wird die vorliegende Pipeline- Technik auf Datensignale, Steuersignale, Befehle, Konstanten und praktisch alle anderen Signale angewendet, die in einer vorherbestimmbaren Sequenz zugeführt werden.
  • In Fig. 50 ist gezeigt, wie die Signale weiter im Pipelineverfahren geladen werden, indem der Eingangspuffer als Zwischen- Speicher konfiguriert wird. Diese Zwischenspeicher können dann durch eine bestimmte Abzweigung des Rücksetzsignals 1482 und/oder des Abtastsignals 1484 zurückgesetzt und getaktet werden. Die Kontaktanschlußfläche 1486 empfängt ein Haupttakteingangssignal, das schließlich über das Pipeline-System zurückgeführt worden ist. In ähnlicher Weise erzeugt der Taktgenerator 1496 die Zwischenspeicher- und Rücksetzsignale für das System. Eine Vorrichtung dieses Typs kann für alle Steuer- und Adreßsignale der Steuervorrichtung vorgesehen sein.
  • Fig. 51 zeigt eine Steuerschaltung, die zum Steuern der Verteilung der globalen Variablen geeignet ist. Die Steuervorrichtung, wie sie oben beschrieben worden ist, leitet Adressierungs-, Steuer- und Datensignale an die SVP-Verarbeitungselemente weiter. Um Variablen in den SVP zu laden und diese Variablen global zu verteilen, kann die Steuervorrichtungshardware der Fig. 51 verwendet werden.
  • Wie gezeigt, kann die Steuervorrichtung so modifiziert werden, daß sie einen Satz von Hilfsregistern 1570 und eine Adressierungsstruktur umfaßt, die die M Register der SVP-Verarbeitungselemente moduliert, um die Variablen zu verteilen. Die Hilfsregister und der Modulationsabschnitt 1196 umfassen ein Hilfsspeicherregister 1510, wie z. B. einen RAM-Speicher, und einen 2-zu-1-Multiplexer (MUX) 1574. Die Hilfsregister 1570 besitzen einen 8-Bit-Datenladeeingang 1562, einen Datenschreibeingang 1564 sowie einen Registeradressen- oder Leseanschluß 1568, der zu 5 Bit mal 1 organisiert ist. Der Hilfsregisterschreibanschluß ist organisiert zu 2 Bit mal 8. Der Hilfsregisterausgang 1572 dient zum Triggern des Hochpegeleingangs des MUX 1574. Der Niedrigpegeleingang des MUX 1574 ist das Bit C18 des Op-Code-Ausgangs. Die Leitung 1576 führt ein Hilfsregisterbefehlsfreigabesignal dem MUX 1574 zu. Die Hilfsregister 1570 werden im folgenden genauer beschrieben.
  • In Fig. 51 ist eine Speicherabbildung der Registergruppe 1 (RF1) und des Datenausgangsregisters (DOR) eines Prozessorelements gezeigt. Wie erwähnt, ist die Hilfsregisteradresse in der Speicherkarte Teil der unbenutzten Adressen für RF1/DOR. Im Betrieb wählt der Vorgang des Adressierens des Bereichs "oberhalb" der DOR-Adresse im Speicher die Hilfsregister aus. Die in den Hilfsregistern gespeicherten Daten werden als vier Wörter von jeweils 8 Bits geschrieben, jedoch als 32 Wörter von jeweils 1 Bit gelesen. Wenn der Zustand eines Hilfsregisterbits Lesen ist, wird entweder der Hilfsregisterausgang oder das ursprüngliche Op-Code-Bit C18 direkt zum M-Register- Datenselektor MUX weitergeleitet, in Abhängigkeit vom Zustand der Hilfsregister-MUX-Freigabeleitung. Eine 0 oder eine 1 wird im Register M ausgewählt, wenn die Op-Code-Bits C19 und C20 beide gleich 1 sind; d. h. M-Ausgang = 0, wenn {C20, C19, C18} = {110} und M-Ausgang = 1, wenn {C20, C19, C18} = {111}.
  • Fig. 52 zeigt den Hilfsregister- und Steuervorrichtungsblock 1196 der Fig. 36. Im Registersatz gibt es vier 8-Bit-Register 1608A-B zum Speichern von insgesamt 32 globalen 1-Bit-Variablen. Die Variablen werden den Registern über die Leitungen 1562 zugeführt. Jeder Registersatz 1608A-B besitzt einen Taktsignaleingang zum Empfangen eines Schreibtaktsignals über eine Hilfsleitung 1563. Jeder Registersatz enthält ferner einen Lade-(LD)- oder Schreibfreigabe-Eingang 1610 sowie eine Ausgangsfreigabe (OE) 1612, die als Ausgang vom 1-zu-4-Decodierer 1616 angeschlossen ist. Die Lese/Schreib-Freigabe für die Register 1608A-B ist über entsprechende Leitungen 1614A-B mit dem zugehörigen Decodiererausgang verbunden. Eine 2-Bit- Registeradresse wird dem Decodierer 1616 über die Leitung 1618 von einem 2-zu-1-Datenselektor 1620 zugeführt. Der Datenselektor 1620 besitzt drei Eingänge. Der Eingang 1295 ist eine 2- Bit-Adresse, die das Register angibt, in das die auf den Leitungen 1562 zugeführten acht Bits geschrieben werden sollen. Der Eingang 948A ist eine 2-Bit-Adresse, die das zu lesende Register identifiziert. Die 2 Bits sind die Bits 3 und 4 der Registergruppenadreßbits. Vom Hilfsschreibfreigabetaktsignal 1564 wird entweder der Eingang 1295 oder der Eingang 948A ausgewählt. Die Bits 0 bis 2 werden einem Auswahleingang eines 8-zu-1-Datenselektors 1622 zugeführt. Wenn der Decodierer 1616 ein Ausgangsfreigabesignal einem bestimmten Register zuführt, während am Registertakteingang ein Taktsignal anliegt, identifizieren die Registergruppenadreßbits 0 bis 2 ein Bit im Registersatz für die Eingabe über die Leitung 1572 in den 2- zu-1-Datenselektor 1574. Wie oben beschrieben, wählt der Datenselektor 1574 entweder eine globale Variable als das C18- Bit für die Eingabe in die SVP-Prozessormatrix aus, oder wählt das ursprüngliche C18-Bit aus. Die Auswahl wird bestimmt durch die Registeradreßbits 5 und 6 und das C5-Steuerbit. Obwohl im obigen Beispiel die Adressierung der globalen Variablen in der Registergruppe 1 genau beschrieben ist, kann das Prinzip ebenso auf die Adressierung der Registergruppe 0 angewendet werden. Wenn die Registergruppe 0 adressiert wird, entspricht das Steuerbit C5 dem Steuerbit C2.
  • In der Speicherkarte für RF1, DOR (Tabelle 4) liegen die Adressen der Hilfsregister im reservierten Bereich. Die Hardware ist jedoch im Befehlsgenerator 910 angeordnet. Auf diese Weise können die Hilfsregister mit einem Satz (nicht mit N Sätzen) von Registern implementiert werden. Nur ein Registerbit wird von einem Adreßwert adressiert, im Gegensatz zum DOR, bei dem N Bits (d. h. 1024 Bits entsprechend der Anzahl der Prozessorelemente) durch einen Adreßwert gleichzeitig adressiert werden. Wenn die Adresse außerhalb des physikalischen Speichers des SVP-Kerns liegt, werden die Hilfsregister adressiert.
  • In Fig. 53 ist eine SVP-Steuervorrichtung mit z. B. einem ROM- Speicher in Verbindung mit einer Schaltung zum Reduzieren der Speicheranforderungen des Steuerungsspeichers gezeigt. Kurz, diese Reduktion wird erreicht durch Hinzufügen eines Wiederholungszählers 1588 und eines Zähl/Halte-Eingangs zum Programmzähler 1584 der Steuervorrichtung, wie gezeigt. Die Steuervorrichtungsdaten- und Adreßstellen werden vom N-Bit-Ausgang des Programmzählers sequentiell geordnet. Der Programmzähler wird über die Signaleingänge 1596 bzw. 1598 getaktet und zurückgesetzt. Die Steuervorrichtung erzeugt mehrere Ausgangssignale: ein 4-Bit-Zählersignal 1600, das in den Wiederholungszähler 1588 eingegeben wird und ein wiederholtes Hochzählen bis 16 erlaubt; den 24-Bit-Op-Code 1602, der auch als Mikrocode oder Mikrobefehl bezeichnet wird, der im Zwischenspeicher 1590 zwischengespeichert wird; eine 7-Bit-Adresse 1604, die vom Aufwärtszähler 1592 für die RF0-Operandenadresse verwendet wird; eine ähnliche 7-Bit-Adresse 1606, die von dem über RF1 zugeführten Aufwärtsadressenzähler 1594 verwendet wird. Außerdem wird ein 1-Bit-Steuersignal 1607 der Steuerlogik 1586 zugeführt, um anzuzeigen, ob ein Einzel- oder ein Doppelbefehl implementiert ist.
  • Der Durchlaufübertragsausgang des Wiederholungszählers wird in den Zähl/Halte-Eingang des Programmzählers eingegeben, um diesem zu signalisieren, die Operation anzuhalten, bis die Wiederholungssequenz beendet ist. Wenn der Befehl die erforderliche Anzahl von Wiederholungen wiederholt worden ist, signalisiert der Durchlaufübertragsausgang dem Programmzähler, seine Operation fortzusetzen. Dieses Durchlaufübertragsignal wird ferner in die Steuerlogik eingegeben, um diese in einen geeigneten Zustand für die gegebene Bedingung zu versetzen: Wenn der Wiederholungszähler in Betrieb ist, gibt die Steuerlogik einen 2-Bit-Code an den Registergruppen-Aufwärtszähler aus, um diesen in den Zählmodus zu versetzen. Wenn der Wiederholungszähler nicht in Betrieb ist, werden die Registergruppen- Aufwärtszähler in den Zwischenspeichermodus versetzt. Dieser 2- Bit-Ausgang zeigt ferner an, ob der Zähler für einen Einzelbefehlsmodus um 1 oder für einen Doppelbefehlsmodus um 2 inkrementiert werden soll.
  • Ein 32-Bit-Additionsbeispiel erläutert die Vorteile der obigen Schaltung. Ein Befehlssatz für die Addition von zwei 32-Bit- Wörtern ist im folgenden in gekürzter Form in Tabelle 27 gezeigt. Tabelle 27
  • Im Hinblick auf das vorher beschriebene Beispiel der Addition zweier 4-Bit-Wörter (Tabelle 25) ist klar, daß die Befehle 2 bis 31 des Befehlssatzes zu 15 Doppelbefehlen komprimiert werden können. Durch anschließendes Implementieren des Wiederholungszählermodus können die 15 Doppelbefehle als ein Einzelbefehl assembliert werden, der von der enthaltenen Hardware 15 mal wiederholt wird. Somit wird eine Addition zweier 32-Bit- Wörter von 33 auf 4 Befehle reduziert. Wenn der Wiederholungszähler aktiv ist, wird der Programmzähler angehalten und die zwei Adreßzähler inkrementieren selbständig um 1 für Einzelbefehle oder um 2 für Doppelbefehle. Aus der obigen Beschreibung der Operation wird klar, daß die Steuervorrichtungsspeicherreduktion, wie sie gemäß der vorliegenden Erfindung beschrieben wird, mit oder ohne gleichzeitige Verwendung von Doppelbefehlen implementiert werden kann. Wenn z. B. das obige 32-Bit- Additionsbeispiel ohne Doppelbefehle implementiert wird, kann der Wiederholungszählerbitwert erhöht werden, um eine größere Wiederholungszahl zu ermöglichen, oder die erste Wiederholung kann zweimal ausgeführt werden.
  • Die Fig. 54 zeigt eine alternative Ausführungsform des vorliegenden synchronen Vektorprozessor/Steuervorrichtungs-Chips. In Fig. 54 sind der Befehlsgenerator und die Hilfsregister auf dem Chip mit der SVP-Prozessorkernmatrix enthalten. Wie oben erwähnt worden ist, können die Steuervorrichtung 1626 und der SVP-Baustein 1628 auf einem Silicium-Chip gefertigt sein, um den Baustein 1630 zu bilden. Der Taktoszillator 1632 ist mit dem übertragenen Fernsehsignal phasengekoppelt und erzeugt Taktsignale für den Steuervorrichtungsabschnitt. Der Taktoszillator 1634 wird im allgemeinen so getaktet, wie es der SVP- Operations geschwindigkeit entspricht.
  • Die Fig. 1 und die zugehörigen Beschreibungen zeigen genauer, wie der SVP-Baustein und die Steuervorrichtung in einem Fernsehsystem eingebaut sind. Ferner ist eine Beschreibung darüber enthalten, wie ein Videokassetten/Band-Aufzeichnungsgerät 134 seinen Ausgang 136 dem SVP-Prozessor anstelle des übertragenen videosignals zuführen kann. Alternativ kann ein SVP-Baustein/Steuervorrichtungs-System direkt in einem Videobandaufzeichnungsgerät eingesetzt werden. Ein Beispiel, wie dies bewerkstelligt werden kann, ist in Fig. 55 gezeigt. Der Block 1630 kann ein oder mehrere SVP-Bausteine für das System 1629 enthalten. Das System 1630 enthält eine herkömmliche Abstimmschaltung 1644 zum Abstimmen des Empfangs des zusammengesetzten Videosignals oder des S-VHS-Videosignals. Die Farbtrennungs- und Demodulationsschaltung 1642 verarbeitet das abgestimmte Signal, wobei der Ausgang in der obenbeschriebenen Weise dem SVP-System 1630 zugeführt wird. Ein verarbeiteter Signalausgang wird von der Schaltung 1640 farbmoduliert, wobei entweder ein zusammengesetztes Videosignal oder ein S-VHS- Videosignal vom Modulator 1640 ausgegeben wird. Das zusammengesetzte Videosignal wird von der Schaltung 1638 HF-moduliert und zur Anzeige einem Fernsehantenneneingang oder Monitoreingang zugeführt.
  • Während eines Aufzeichnungsmodus wird das verarbeitete Videosignal von der Schaltung 1634 phasen- und FM-moduliert und von der Kopflogik 1636 in herkömmlicher Weise aufgezeichnet. Während der Wiedergabe wird das aufgezeichnete Signal vom Band gelesen und der Phasen- und FM-Demodulationsschaltung 1632 zugeführt. Anschließend kann das Signal erneut vom SVP-System 1630 verarbeitet und als Ausgangssignal ausgegeben werden. Ein oder mehrere Feldspeicher 120 können verwendet werden, um Daten in der mit Bezug auf Fig. 1 beschriebenen Weise aufzufangen.
  • Das hier offenbarte und beschriebene synchrone Vektorprozessorvorrichtungs- und Steuervorrichtungssystem ist nicht auf Videoanwendungen beschränkt. Die einzigartige Echtzeit-Leistungsfähigkeit des SVPs bietet flexible Entwurfsansätze für eine Vielzahl von Signalverarbeitungsanwendungen. Einige dieser Anwendungen sind in Tabelle 27 aufgelistet. Tabelle 27
  • Fig. 56 zeigt ein Universal-Digitalsignalverarbeitungs-System (DSP-System). Das System der Fig. 56 ist universell und kann verwendet werden zur digitalen Filterung, Faltung, Korrelation, schnellen Fouriertransformation, Cosinus-, Sinus-, Hadamard-, Walsh-Transformation und adaptiven Filterung, um nur einige wenige Beispiele zu nennen. Das System der Fig. 56 enthält einen Analog/Digital-Umsetzer zum Umsetzen von Analogeingangssignalen in digitale Signale. Ein SVP-System ist im Datenstrom angeordnet, um das Digitalsignal zu empfangen und ein verarbeitetes Datenausgangssignal zu erzeugen. Die verarbeiteten Daten können von einem A/D-Umsetzer in ein Analogsignal umgesetzt werden, oder das verarbeitete Digitalsignal kann direkt als Ausgang ausgegeben werden. Der Zeitablauf und die Steuerung für das System können von einer Zeitablauf- und Steuerschaltung erzeugt werden.
  • Fig. 57 zeigt ein Graphik/Bildverarbeitungssystem, das ein SVP-System enthält. Der SVP-Baustein empfängt Anweisungen von einem Host-Computer sowie Bilder, Überlagerungen und dergleichen von einem Speicher, der dem Host-Computer zugeordnet ist. Ein Halbbildspeicher kann verwendet werden, um ein Halbbild von Daten für die Wiedereingabe zur weiteren Verarbeitung aufzufangen. Der SVP-Ausgang kann von einem D/A-Umsetzer digitalisiert, von einer Matrix verarbeitet und von einer Anzeigevorrichtung angezeigt werden. Das Universalsystem der Fig. 57 kann verwendet werden, um verschiedene Operationen mit den Bildern durchzuführen. Das System der Fig. 57 kann verwendet werden, um in vielen computern eine Graphikplatine zu ersetzen. Einige der möglichen Operationen sind das Kombinieren von Bildern (Überlagerungen), das Ändern von Farben, das Vergrößern/Verkleinern, das Filtern, die Spektralanalyse und die Erzeugung von Zeichnungen (Zeichnen von Linien, Kreisen, Text und dergleichen).
  • Fig. 58 zeigt ein Sichtprüfsystem, das ein SVP-System enthält. Das System enthält eine Videokamera zum Sichten von Objekten, die überprüft oder anderweitig analysiert werden sollen. Die Kamera gibt ein Videosignal an die Eingänge eines A/D-Umsetzers aus, der das analoge Videosignal digitalisiert und ein digitales Eingangssignal für das SVP-System erzeugt. Das SVP- System kann ferner mit gespeicherten Bildern aus einem Speicher oder einer Maskenspeicherquelle wie z. B. einer optischen Platte versorgt werden. Der SVP kann einen Ausgang an eine Anzeigevorrichtung oder eine andere Indikatorvorrichtung und ferner an einen Host-Computer weiterleiten. Der Host-Computer kann verwendet werden, um eine Zeitablauf- und Steuerschaltung zu steuern, die ferner Signale dem A/D-Umsetzer, dem Speicher und dem SVP-Baustein-System zuführt. Das Sichtprüfsystem der Fig. 58 kann eine Untersuchung von Vorrichtungen vornehmen, indem es diese mit gespeicherten Hauptbildern vergleicht. Der Ausgang kann ein Bild, das Unterschiede anzeigt, ein einfacher Bestanden/Durchgefallen-Indikator oder ein komplexerer Bericht sein. Das System kann automatisch bestimmen, welche Vorrichtung untersucht wird. Andere Typen von Sensoren können ebenfalls verwendet werden, wie z. B. Infrarotsensoren oder Röntgensensoren und dergleichen. Eine Vor- und Nachverarbeitung der Bilder kann durchgeführt werden, um das Ergebnis weiter zu verbessern.
  • Fig. 59 zeigt ein Mustererkennungssystem, das ein SVP-System enthält. Der SVP-Baustein empfängt digitalisierte Eingangssignale vom Ausgang eines A/D-Umsetzers. Die gespeicherten Muster können ferner dem SVP für die Verarbeitung von einem externen Speicher zugeführt werden. Die Eingangsdaten werden verarbeitet und vom SVP wird eine Musternummer ausgegeben. Der A/D-Umsetzer, der Speichermuster-Speicher und der SVP können unter der Steuerung von Ausgangssignalen einer Steuer- und Zeitablaufschaltung arbeiten. Das Mustererkennungs system vergleicht die Eingangsdaten mit gespeicherten Daten. Dieses System geht über das Sichtprüfsystem hinaus und klassifiziert die Eingangsdaten. Aufgrund der Geschwindigkeit des SVPs können viele Vergleich in Echtzeit durchgeführt werden. Lange Sequenzen von Daten können klassifiziert werden. Eine beispielhafte Spracherkennungsanwendung ist in Fig. 60 gezeigt. Fig. 60 zeigt eine Sprachdatenabtastung mit einer Frequenz von 8 kHz. Da die Sprache mit relativ geringer Geschwindigkeit von 8 kHz abgetastet wird, hat der SVP genügend Zeit, um mit den übertragenen Sprachdaten viele Berechnungen durchzuführen. Ein Eingang von 1024 Abtastwerten ergibt ungefähr 1/8 Sekunde für die Verarbeitung von Daten, was ungefähr 1,4 Millionen Befehlen entspricht. Außerdem kann der SVP viele Zeilen von Daten speichern und somit Wörter, Ausdrücke oder sogar Sätze erkennen.
  • Fig. 61 zeigt ein typisches Radarverarbeitungssystem, das einen SVP verwendet. Das detektierte Radarsignal wird von der Antenne zu einer HF/ZF-Schaltung übertragen, wobei die FM/AM- Ausgänge einem A/D-Umsetzer zugeführt werden. Das digitalisierte Ausgangssignal wird vom SVP verarbeitet, wobei der Ausgang einer Anzeigevorrichtung zugeführt oder im Speicher gespeichert wird. Dieses System verarbeitet Pulsradar-Daten und speichert die Ergebnisse oder zeigt sie an.
  • Fig. 62 ist eine Bildtelephonsystem, das einen synchronen Vektorbaustein verwendet. Fig. 62 zeigt die Sender- und Empfängerseite. Die Videokamera betrachtet das Subjekt, wobei das Analogsignal von einem A/D-Umsetzer digitalisiert wird. Der digitalisierte Ausgang wird als Eingang dem SVP-Baustein zugeführt. Andere Eingänge umfassen Tabellen und den Ausgang eines Halbbildspeichers. Der SVP-DTMS-Ausgang wird in der Filterschaltung gefiltert und zu den Telephonleitungen weitergeleitet. Auf der Empfängerseite senden die Telephonleitungen die übertragenen Daten zu einem A/D-Umsetzer, wo die digitalisierten Signale von einem synchronen Vektorbaustein verarbeitet werden. Das Eingangssignal kann gemeinsam mit gespeicherten Daten in einem Halbbildspeicher verarbeitet werden. Der SVP- Ausgang wird von einem D/A-Umsetzer in ein Analogsignal umgesetzt und in einer Matrix plaziert und von einer Anzeigevorrichtung angezeigt. Das Bildtelephon komprimiert die eingegebenen Bilder, codiert diese anschließend als DTMF-Werte und sendet diese über die Telephonleitungen zu einem Empfänger. Es werden Zeichentabellen verwendet, um die Töne direkt im SVP zu erzeugen. Auf der Empfängerseite werden die DTMF-Töne im SVP digitalisiert und anschließend detektiert und dekomprimiert.
  • Die Fig. 63a und 63b zeigen ein FAX-System, das einen synchronen Vektorprozessor verwendet. Fig. 63 zeigt das übertragen oder Senden. Ein Vorlagenscanner scannt das zu übertragende Dokument, wobei die gescannten Binärdaten als Eingang dem SVP zugeführt werden. Es können Zeittabellen verwendet werden, um die Töne direkt im SVP zu erzeugen. Der SVP führt die Codierung und die Tonerzeugung durch. Die Töne werden an das Filter ausgegeben und anschließend den Telephonleitungen zugeführt. Auf der Empfängerseite werden die über die Telephonleitung empfangenen Daten vom A/D-Umsetzer digitalisiert und zur Tondetektion und zur Decodierung dem SVP zugeführt. Der decodierte SVP-Ausgang wird anschließend von einem Drucker ausgedruckt.
  • Fig. 64 ist ein Vorlagenscannersystem auf SVP-Basis, das gescannte Vorlagen in ASCII-Dateien konvertiert. Der Scannerausgang wird dem SVP zugeführt, wo er gemeinsam mit Zeichentabellen verarbeitet wird und der verarbeitete Ausgang in einem Speicher gespeichert wird. Das Vorlagenscannersystem digitalisiert die Daten ähnlich einem FAX-Gerät, führt jedoch eine Mustererkennung mit den Daten durch und konvertiert diese in das ASCII-Format.
  • Der SVP kann für eine Sicherheitsvideoübertragung verwendet werden. Dieses System ist in Fig. 65 gezeigt. Das System enthält eine Videosignalquelle, die einen Ausgang an einen Eingangspuffer weiterleitet Das gepufferte Signal wird zur Verarbeitung dem SVP zugeführt. Der SVP und der Eingangspuffer können unter der Steuerung einer Steuervorrichtung arbeiten. Das codierte Signal vom SVP wird einem Sender zugeführt, wo es zu einem Empfänger übertragen wird und erneut auf der Empfängerseite eingangsgepuffert und von einem SVP decodiert wird.
  • Der SVP im obigen System kann ein Videosignal verschlüsseln, indem er die Pixel in jedem Prozessorelement mit einer beliebigen Konstante multipliziert. Die Abbildung von Verschlüsselungskonstanten für die Prozessorelemente wird definiert durch ein ROM-codiertes Muster in den Codierungs- und Decodierungs- SVPs. Der Codierer sendet ein Codewort zum Decodierungs-SVP. Dieses Codewort verändert die Empfangsvorrichtung, um das Signal durch Multiplizieren mit der Inversen des Codierungsmusters zu demodulieren. Eine Darstellung des gesendeten Signals ist in Fig. 66 gezeigt.
  • Der SVP-Chip ist in einem Anschlußstift-Gittermatrix-Gehäuse untergebracht. Fig. 67 ist ein Anschlußstift-Layout des Chipgehäuses.
  • SVP-ANSCHLUSSSTIFT-GITTERMATRIX-CHIP-STIFTLAYOUT
  • Die Anschlußstiftnamen und die Gehäuseanschlußstiftkoordinaten für den SVP-SE-Chip sind in Tabelle 28 gezeigt. Tabelle 28 PGA-Stift-Layout
  • SIGNALBESCHREIBUNGEN
  • Die Signalbeschreibungen für den SVP sind in diesem Abschnitt dargestellt. Die folgende Tabelle 29 listet den Signalnamen, die Anzahl der Anschlußstifte dieses Signaltyps, die Tatsache, ob es ein Eingang oder ein Ausgang ist, sowie eine kurze Funktionsbeschreibung der Anschlußstifte auf. Tabelle 29 Tabelle 29 (Fortsetzung) Tabelle 29 (Fortsetzung)
  • BEFEHLSSATZ- ZUSAMMENFASSUNG
  • Die folgenden Abschnitte listen einige legale Teilbefehl- Mnemonics auf. Aus diesen Primitiven können Befehle auf höherer Ebene kreiert werden. Der Wert links des Zuweisungsoperators "=" in der Liste ist der Zieloperand, während sich der Quelloperand rechts befindet:
  • < Destination_operand> = < Source_operand>
  • Es werden Abkürzungen verwendet, um die Schreibweise zu verkleinern, wobei einige Synonyme verwendet werden, um die Verwirrung bei der Eingabe von Mnemonics zu verringern: Teilbefehle, deren Datenquelle vom Wert des WRM abhängt (d. h. M-abhängige Teilbefehle) weisen drei Zeilen auf. Die erste Zeile zeigt den in das Programm eingegebenen Teilbefehl, während die zweiten und dritten Zeilen das Operationsergebnis zeigen in Abhängigkeit davon, ob (WRM) = 0 bzw. (WRM) = 1 gilt. '(WRM)' ist der Inhalt der Arbeitsregisters WRM.
  • Zum Beispiel:
  • R0(n) = XR0(n) E- Eingegeben in Assemblerzeile
  • RR0(n) ; (WRM)=0 E- Quelle der Daten, wenn (WRM)=0
  • = LR0(n) ; (WRM)=1 E- Quelle der Daten, wenn (WRM)=1
  • Die Befehle sind in 8 Kategorien zusammengefaßt: RF0, RF1, WRA, WRB, WRC, WRM, ALU und GO. Einige Befehle erscheinen der Vollständigkeit halber in mehr als einer Kategorie. REGISTERGRUPPE RF0 / DATENEINGANGSREGISTER REGISTERGRUPPE RF1 / DATENAUSGANGSREGISTER ARBEITSREGISTER WRA ARBEITSREGISTER WRB ARBEITSREGISTER WRC ARBEITSREGISTER WRM GLOBALER AUSGANG ARITHMETISCH/LOGISCHE EINHEIT (ALU)
  • SVP-MATRIX-BEFEHLSSATZ FÜR BEFEHLSPROGRAMMSPEICHER 1258. FIG. 34
  • Die folgenden Tabellen listen alle legalen SVP-Matrix- Teilbefehle auf. Ferner sind für jeden Teilbefehl die Opcodes und Konfliktmasken aufgelistet. Die Konfliktmaske wird vom Assembler verwendet, um zu ermitteln, ob zwei Teilbefehle in derselben Zeile kombiniert werden können.
  • Alle vorangegangenen Befehle werden durch das 22-Bit-Matrix- Opcode-Feld und die Adreßfelder beschrieben. Variationen dieser Befehle und IG-Steuervorrichtungsbefehle sind in diesen und anderen Bits beschrieben.
  • In den folgenden Tabellen werden folgende Abkürzungen verwendet:
  • x - ohne Bedeutung
  • b - Unterbrechungspunkt-Bit, b = 1: BP (Unterbrechungspunkt) gesetzt bei unmittelbarer Adresse
  • b = 0: kein BP gesetzt bei unmittelbarer Adresse
  • r - Zweierkomplement der Wiederholungszahl, 0 &le; r &le; 15
  • m - R0-Speicheradreßwert, 0 &le; m &le; 127
  • n - DIR-Adreßwert, 0 &le; n &le; 39
  • p - R1-Speicheradreßwert, 0 &le; p &le; 127
  • q - DOR-Adreßwert, 0 &le; q &le; 23
  • k - Hilfsregister-Adreßwert, 64 &le; k &le; 95
  • z - Befehlsmodus (siehe Anhang C)
  • SVP-BEFEHLSGENERATOR-BEFEHLSSATZ
  • Die folgende Tabelle listet alle legalen Befehls-Mnemonics und deren Opcodes für den Befehlsgenerator sowie die Variationen der Matrixbefehle auf für Einzel-, Wartezustand-Einzel- und Doppelbefehle.
  • LEGENDE FÜR DIE IG-BEFEHLE:
  • x - ohne Bedeutung
  • b - Unterbrechungspunkt-Bit
  • rrrr - 4-Bit-Wiederholungszählwert in Zweierkomplementform
  • ppppppp - 7-Bit-Speicheradresse für RF1 oder DOR oder AUX
  • nnnnnnn 7-Bit-Speicheradresse für RF0 oder DIR
  • ii..i iii iii - Matrixbefehls-Opcode aus Anhang B.
  • 00..0 - alle Bits im Feld sind gleich
  • vvvvv - 5-Bit-Wert von den IG-Modus-Eingangsstiften
  • aaaa aaaaaaa - 11-Bit-Sprungadresse
  • cccc cc00000 - 11-Bit-Sprungadresse, bei der 5 LSBs = 00000
  • mmmm mm - 6-Bit-Rotationsmodulus geteilt durch 2. Daher muß der Rotationsmodulus ein ganzzahliges Vielfaches von 2 sein. Gültige Werte: 0 &le; mmmmmm &le; 63
  • zzzzz - 5-Bit-Rotationsschrittwert geteilt durch 4. Daher muß der Rotationschrittwert ein ganzzahliges Vielfaches von 4 sein. Gültige Werte: 0 &le; zzzzz &le; 31 IG-BEFEHLS-OPCODES:
  • Die Funktion der in der obigen Opcode-Tabelle aufgelisteten IG-Befehle wird im folgenden erläutert.
  • MATRIXBEFEHLE:
  • Einzel
  • Wartezustand-Einzel
  • Doppel
  • Leerlauf
  • Sprungbefehle:
  • JMP < adr1> unbedingter Sprung zur Adresse < adr1> .
  • JME < val> ,< adr1> JUMP bei MODE EQUAL. Sprung zu < adr1> , wenn < val> = ((Modusregister)), sonst gehe zur nächsten Anweisung.
  • JMT < adr2> JUMP bei MODE TABLE. Sprung zur Modustabelle bei < adr2> mit Tabelleneinsprungpunkt von < (Modusregister)> . < adr2> ist eine 11-Bit- Adresse mit den 5 LSBs gleich 00000. Die absolute Adresse ist:
  • (< adr2> UND 07E0h) + < (Modusregister)>
  • Die Tabelle bei < adr2> enthält wahrscheinlich JMP-Befehle zu Unterroutinen im Programm; jedoch kann in der Tabelle ein beliebiger Befehl verwendet werden. Die Tabelle muß an einer 5-Bit-Grenze angeordnet sein.
  • MERKERTESTBEFEHLE:
  • JFAZ < adr1> JUMP bei FLAG 'A' ZERO. Sprung zu < adr1> , wenn Merker 'A' gleich 0 ist, sonst gehe zu nächster Anweisung. Dies ist ein Hardware- Merker.
  • JFBZ < adr1> JUMP bei FLAG 'B' ZERO. Sprung zu < adr1> , wenn Merker 'B' gleich 0 ist, sonst gehe zu nächster Anweisung. Dies ist ein Hardware- Merker
  • CALL/RETURN-BEFEHLE:
  • CALL < adr1> CALL. Plaziere aktuelle Adresse plus 1 im 'Rückkehrregister', dann springe unbedingt zu < adr1> . Dies ist ein Einzelebenen-CALL; wenn CALL-Befehle verschachtelt werden, springt der RET-Befehl zu dem Befehl zurück, der dem letzten CALL-Befehl folgt.
  • RET RETURN. Rücksprung zur Adresse: < (Rückkehrregister)> .
  • MODUSREGISTER-BEFEHLE:
  • UMR Aktualisiere das Modusregister mit dem neuesten Wert. Der IG arbeitet asynchron zu den Zeitablaufgeneratoren und der Hauptsteuervorrichtung. Daher ist es notwendig, neue Moduswerte zu einem vorhersagbaren Zeitpunkt zu erhalten. Externe Schaltungen (üblicherweise der Vertikalzeitablaufgenerator) aktualisieren das temporäre Modusregister des IGs zu einem beliebigen Zeitpunkt, jedoch beeinflußt dieser Wert solange nicht die IG-Befehle, bis ein UMR-Befehl ausgeführt wird. Dieser Wert bleibt wirksam, bis der nächste UMR- Befehl ausgeführt wird.
  • GLOBALROTATIONS-BEFEHLE:
  • LRM0 < mod> ,< rot> Lade Rotationmodulusregister für RF0. Ein Bereich des Speichers in der RF0 kann zwischen den Adressen 0 und < mod-1> als Globalrotationsspeicher deklariert sein. < mod> ist der Globalrotationsmodulus und besitzt die gültigen Werte 0, 2, 41 ... 122, 124, 126. Wenn der Befehl GRL0 ausgeführt wird, wird der Speicher innerhalb des Globalrotationsraums um < rot> Bit rotiert. < rot> hat die gültigen Werte 0, 4, 8, ... 116, 120, 124.
  • LRM1 < mod> ,< rot> Lade Rotationmodulusregister für RF1. Ein Bereich des Speichers in der RF1 kann zwischen den Adressen 0 und < mod-1> als Globalrotationsspeicher deklariert sein. < mod> ist der Globalrotationsmodulus und besitzt die gültigen Werte 0, 2, 4, ... 122, 124, 126. Wenn der Befehl GRL1 ausgeführt wird, wird der Speicher innerhalb des Globalrotationsraums um < rot> Bit rotiert. < rot> hat die gültigen Werte 0, 4, 8, ... 116, 120, 124.
  • GRL0 Globalrotation links RF0 modulo < mod> Schrittweite < rot> , wobei < mod> und < rot> vom LRM0-Befehl definiert werden.
  • GRL1 Globalrotation links RF1 modulo < mod> Schrittweite < rot> , wobei < mod> und < rot> vom LRM1-Befehl definiert werden. BEFEHLSSATZ DER HAUPTSTEUERVORRICHTUNG (MC)
  • OUT Ausgangssteuersignal.
  • Die MC hält ihre Ausführung nach dem "OUT"-Befehl an, und setzt ihre Ausführung fort, wenn "FSYNC" kommt.
  • TBOUT tabelliertes Ausgangssteuersignal.
  • Die Tabelle muß mit bis zu 16 "OUT"-Befehlen aufgebaut sein. Einer der "OUT"-Befehle wird durch den Inhalt von "COMB" ausgewählt. Die Zieltabelle muß an einer 16er-Grenze angeordnet sein. JMP Sprung zu < Etikett> .
  • TCMA Test COMA, wenn COMA gleich < c> ist, dann springe zu < Etikett> .
  • wenn COMA ungleich < c> ist, dann führe nächsten Befehl aus. Ziel muß an 4er-Grenze angeordnet sein.
  • TXF10 Testet "Merker1" und "Merker0". Sprung, wenn [((c EXKLUSIV-NICHT-ODER Merker1) ODER m) UND ((d EXKLUSIV-NICHT-ODER Merkero) ODER n)] Wenn "Merker1" und "Merker0" gleich < cd> sind, dann springe zu < Etikett> . Wenn "Merker1" und "Merker0" ungleich < cd> sind, dann führe nächsten Befehl aus. Der Merkertest wird mittels < mn> maskiert. "0" = Test, "1" = Maske. Das Ziel muß an einer 4er-Grenze angeordnet sein.
  • TXF32 Testet "Merker3" und "Merker2". Sprung, wenn [((c EXKLUSIV-NICHT-ODER Merker3) ODER m) UND ((d EXKLUSIV-NICHT-ODER Merker2) ODER n)] Wenn "Merker3" und "Merker2" gleich < cd> sind, dann springe zu < Etikett> . Wenn "Merker3" und "Merker2" ungleich < cd> sind, dann führe nächsten Befehl aus. Der Merkertest wird mittels < mn> maskiert. Das Ziel muß an einer 4er-Grenze angeordnet sein.
  • ALIGN2 Erzeuge folgende Befehle ausgehend von nächster 4xN-Adresse (N ist ganze Zahl).
  • ALIGN4 Erzeuge folgende Befehle ausgehend von nächster 16xN-Adresse (N ist ganze Zahl).
  • Dateien; Eingangsdatei
  • Objektdatei
  • Listingdatei
  • Befehlsformat; Etikettfelder
  • Befehlsfelder
  • Mnemonicfelder
  • Operandenfelder
  • Kommentarfelder
  • Konstanten; ganze Binärzahlen
  • ganze Oktalzahlen
  • ganze Dezimalzahlen
  • ganze Hexadezimalzahlen
  • Symbole
  • Anweisungen; .PAGE
  • .TITLE "Zeichenkette"
  • .WIDTH < Breite>
  • .COPY < Dateiname>
  • .END
  • .SET < Wert>
  • .ASECT
  • *1 TCMA, TCMB, TXF10 und TXF32 können nur zu einer Adresse springen, bei der die zwei LSBs gleich 00 sind. Der Assembler sollte dies berücksichtigen und das < Etikett> an der richtigen Grenze plazieren.
  • *3 TBOUT kann nur auf Adressen zeigen, bei denen die vier LSBs gleich 0000 sind. Diese vier LSBs werden durch COMB ersetzt. Der Assembler sollte dies berücksichtigen und das < Etikett> an der richtigen Grenze plazieren.
  • *4 c = 1 + INTEGER(b/4)
  • Es ist klar, daß verschiedene Ausführungsformen der Erfindung Hardware, Software oder mikrocodierte Firmware verwenden können. Die hier enthaltenen Prozeß- und Zustandsübergangsdiagramme sind ebenso repräsentativ für Diagramme für Ausführungsformen auf Mikrocode- oder Software- Basis. Die Verbindungen und Kopplungen können über Widerstände, direkt elektrisch, kapazitiv digital, analog über Schnittstellen, elektromagnetisch, optisch oder mit irgendeiner anderen geeigneten Vorrichtung bewerkstelligt werden.

Claims (7)

1. Befehlsgeneratorschaltung zum Liefern von Befehlen an eine Videosignal-Verarbeitungsvorrichtung (10) mit mehreren Ein- Bit-Prozessorelementen (102), wobei jedes Prozessorelement (102) Eingänge für den Empfang von Befehlen (130, 135, 137) und, in Benutzung, für die Ausarbeitung von Befehlen enthält,
dadurch gekennzeichnet, daß die Befehlsgeneratorschaltung Eingänge (942) für den Empfang von Betriebsmodussignalen aus einer externen Quelle aufweist,
daß jeder Befehl aus einem Steuercode und eine Registeradresse enthält, wobei der Steuercode wenigstens eines Befehls angibt, daß der Befehl ein wiederholungsbefehl ist,
daß jedes Prozessorelement die Befehle gemäß dem entsprechenden Steuercode und der Registeradresse ausführt,
und daß die Befehlsgeneratorschaltung enthält:
einen Befehlsprogrammspeicher (1258),
einen Programmzähler (1230, 1250), der an einen Adresseneingang (1252) des Befehlsprogrammspeichers (1258) angeschlossen ist und einen Moduseingang (942) enthält, der die Betriebsmodussignale aus der externen Quelle empfängt, wobei der Programmzähler (1230, 1250) für das Zuführen einer Adresse zu dem Adresseneingang des Befehlsprogrammspeichers (1258) entsprechend dem empfangenen Betriebsmodussignal vorgesehen ist;
einen Steuercode-Zwischenspeicher (1194) mit einem Eingang, der an einen Befehlsausgang (1268) des Befehlsprogrammspeichers (1258) angeschlossen ist, sowie einem Ausgang (C0-C23) zum Anschließen an die mehreren Prozessorelemente (102) zum Zwischenspeichern des Steuercodes eines aus dem Befehlsprogrammspeicher (1258) abgerufenen Befehls und zum Zuführen des darin gespeicherten Steuercodes zu den mehreren Prozessorelementen (102);
einen Registeradressen-Zwischenspeicher (1290, 1292) mit einem Eingang, der an den Befehlsausgang des Befehlsprogrammspeichers (1258) angeschlossen ist, sowie einem Ausgang (948) für das Anschließen an die mehreren Prozessorelemente (102) zum Zwischenspeichern der Registeradresse eines aus dem Befehlsprogrammspeicher (1258) abgerufenen Befehls und zum Zuführen der darin gespeicherten Registeradresse an die mehreren Prozessorelemente (102);
eine Befehlsdecodierschaltung (1234, 1242, 1294), die an den Befehlsausgang des Befehlsprogrammspeichers (1258), den Steuercode-Zwischenspeicher (1194) und den Registeradressen- Zwischenspeicher (1290, 1292) angeschlossen ist, wobei die Befehlsdecodierschaltung (1234, 1242, 1294) dem Steuern des Steuercode-Zwischenspeichers (1194) dient, damit der darin gespeicherte Steuercode erneut den mehreren Prozessorelementen (102) zugeführt wird und der Registeradressen-Zwischenspeicher (1290, 1292) gesteuert wird, um die darin gespeicherte Registeradresse fortzuschalten und die fortgeschaltete Registeradresse den mehreren Prozessorelementen (102) bei der Feststellung zuzuführen, daß der Steuercode des aus dem Befehlsprogrammspeicher abgerufenen Befehls einen Wiederholungsbefehl anzeigt.
2. Befehlsgeneratorschaltung nach Anspruch 1, bei welcher die Befehle wenigstens einen ersten Wiederholungsbefehl und wenigstens einen zweiten Wiederholungsbefehl enthalten, und bei welcher:
die Befehlsdecodierschaltung (1234, 1242, 1294) dazu dient, den Registeradressen-Zwischenspeicher (1290, 1292) so zu steuern, daß die darin gespeicherte Registeradresse um eins fortzuschalten, wenn festgestellt wird, daß der Steuercode des aus dem Befehlsprogrammspeicher abgerufenen Befehls einen ersten wiederholungsbefehl anzeigt, und dazu dient, den Registeradressen-Zwischenspeicher (1290, 1292) so zu steuern, daß die darin gespeicherte Registeradresse um zwei fortgeschaltet wird, wenn festgestellt wird, daß der aus dem Befehlsprogrammspeicher abgerufene Befehl einen zweiten Wiederholungsbefehl anzeigt.
3. Befehlsgeneratorschaltung nach Anspruch 1 oder Anspruch 2, ferner enthaltend:
ein Hilfsspeicherregister (1196) mit einem an eine externe Quelle angeschlossenen externen Eingang (1562, 1563, 1564), einem an den Ausgang (948) des Registeradressen-Zwischenspeichers (1290, 1292) angeschlossenen Registeradresseneingang und einem an den Steuercode-Zwischenspeicher (1194) angeschlossenen Steuercodeeingang (1291) sowie einem Steuercodeausgang (C0-C23) zum Anschließen an die mehreren Prozessorelemente (102), wobei das Hilfsspeicherregister (1196) einen vorbestimmten Abschnitt eines Steuercodes entsprechend einer externen Eingabe anstelle des vorbestimmten Abschnitts des in dem Steuercode-Zwischenspeicher gespeicherten Steuercodes liefert, wenn ein vorbestimmter Zustand einer vorgewählten Untergruppe des Ausgangs (948) des Registeradressen- Zwischenspeichers (1290, 1292) und ein vorbestimmter, vom Steuercode-Zwischenspeicher (1194) empfangener Steuercode festgestellt werden.
4. Befehlsgeneratorschaltung nach einem der Ansprüche 1 bis 3, bei welcher die Registeradresse jedes Befehls eine erste Registeradresse und eine zweite Registeradresse umfaßt, jedes Prozessorelement (102) eine von einer ersten Registeradresse abhängige erste Registerdatei (158) sowie eine von einer zweiten Registeradresse abhängige zweite Registerdatei (166) enthält, wobei:
die Registeradressen-Zwischenspeicher (1290, 1292) aus einem ersten Adressenregister-zwischenspeicher (1290), der die erste Registeradresse jedes Befehls empfängt, sowie einem zweiten Registeradressen-Zwischenspeicher (1292), der die zweite Registeradresse jedes Befehls empfängt, enthält, und die Befehlsdecodierschaltung (1234, 1242, 1294) den Registeradressen-Zwischenspeicher (1290, 1292) so steuert, daß die in dem ersten Registeradressen-Zwischenspeicher (1290) gespeicherte erste Registeradresse und die in dem zweiten Registeradressen-Zwischenspeicher (1292) gespeicherte zweite Registeradresse fortgeschaltet werden.
5. Befehlsgeneratorschaltung nach Anspruch 4, bei welcher wenigstens ein Befehl einen Globalrotationsbefehl enthält, wobei die Befehlsgeneratorschaltung ferner enthält:
erste und zweite Globalrotations-Adressengeneratoren (1246, 1244) mit jeweils einem Eingang (1291, 1293), der an den Ausgang eines entsprechenden ersten und zweiten Registeradressen-Zwischenspeichers (1290, 1292) angeschlossen ist, und einem Ausgang (948) zum Anschließen an die mehreren Prozessorelemente sowie einem Steuereingang (1243, 1245), wobei die ersten und zweiten Globalrotations-Adressengeneratoren (1244, 1246) dazu dienen, entsprechend einem an dem Steuereingang empfangenen Globalrotations-Steuersignal die entsprechende Registeradresse einer Modulrotation zu unterziehen;
wobei die Befehldecodierschaltung (1234, 1242, 1294) ferner einen Steuerausgang (1240) enthält, an dem ein Globalrotations-Steuersignal entsprechend dem Steuercode eines Befehls erzeugt wird, wenn festgestellt wird, daß der Steuercode eines Befehls einen Globalrotationsbefehl anzeigt.
6. Befehlsgeneratorschaltung nach einem der Ansprüche 1 bis 5, ferner enthaltend:
eine Synchronisiersteuerschaltung (1224) mit einem Synchronisierungseingang (1222) für den Empfang eines externen videosignals mit einem Synchronisiersignal (1038), der an den Befehlsprogrammspeicher (1258) angeschlossen ist, wobei der Programmzähler (1230, 1250), der Steuercode-Zwischenspeicher (1194), die Registeradressen-Zwischenspeicher (1290, 1292) und die Befehlsdecodierschaltung (1234, 1242, 1294) dazu dienen, die Zuführung der Befehle zu den Prozessorelementen (102) mit dem Synchronisiersignal (1038) des externen Videosignals (15) zu synchronisieren.
7. Befehlsgeneratorschaltung nach einem der Ansprüche 1 bis 6, bei welcher wenigstens ein Wiederholungsbefehl eine Angabe einer Anzahl von Wiederholungen innerhalb des Steuercodes enthält, und bei welcher:
die Befehlsdecodierschaltung (1234, 1242, 1294) den Steuercode-Zwischenspeicher (1194) so steuert, daß der darin gespeicherte Steuercode den mehreren Prozessorelementen (102) zugeführt wird, und den Adressenregister-Zwischenspeicher (1290, 1292) so steuert, daß die in diesem Zwischenspeicher gespeicherte Registeradresse so oft fortgeschaltet und die fortgeschaltete Registeradresse so oft den mehreren Prozessorelementen (102) zugeführt wird, wie in dem Steuercode eines aus dem Befehlsprogrammspeicher abgerufenen Befehls angegeben ist, wenn festgestellt wird, daß der Steuercode des aus dem Befehlsprogrammspeicher abgerufenen Befehls einen Wiederholungsbefehl angibt.
DE69030712T 1989-10-13 1990-10-15 Befehlsgeneratorarchitektur für Videosignalprozessorsteuerung Expired - Fee Related DE69030712T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US42147389A 1989-10-13 1989-10-13
US42148689A 1989-10-13 1989-10-13
US07/421,500 US5210836A (en) 1989-10-13 1989-10-13 Instruction generator architecture for a video signal processor controller

Publications (2)

Publication Number Publication Date
DE69030712D1 DE69030712D1 (de) 1997-06-19
DE69030712T2 true DE69030712T2 (de) 1997-12-18

Family

ID=27411314

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69030712T Expired - Fee Related DE69030712T2 (de) 1989-10-13 1990-10-15 Befehlsgeneratorarchitektur für Videosignalprozessorsteuerung

Country Status (4)

Country Link
EP (1) EP0428269B1 (de)
JP (1) JP3145103B2 (de)
KR (1) KR0179362B1 (de)
DE (1) DE69030712T2 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212628B1 (en) 1998-04-09 2001-04-03 Teranex, Inc. Mesh connected computer

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4432052A (en) * 1981-04-13 1984-02-14 Texas Instruments Incorporated Microcomputer device using dispatch addressing of control ROM
DE3856124T2 (de) * 1987-11-13 1998-06-10 Texas Instruments Inc Serieller Videoprozessor und Verfahren

Also Published As

Publication number Publication date
JP3145103B2 (ja) 2001-03-12
KR910008594A (ko) 1991-05-31
DE69030712D1 (de) 1997-06-19
EP0428269B1 (de) 1997-05-14
EP0428269A2 (de) 1991-05-22
JPH03248229A (ja) 1991-11-06
KR0179362B1 (ko) 1999-05-15
EP0428269A3 (en) 1993-06-16

Similar Documents

Publication Publication Date Title
US5598545A (en) Circuitry and method for performing two operating instructions during a single clock in a processing device
US5628025A (en) Timing and control circuit and method for a synchronous vector processor
US5210836A (en) Instruction generator architecture for a video signal processor controller
US5163120A (en) Second nearest-neighbor communication network for synchronous vector processor, systems and methods
US5327125A (en) Apparatus for and method of converting a sampling frequency according to a data driven type processing
US5539891A (en) Data transfer control circuit with a sequencer circuit and control subcircuits and data control method for successively entering data into a memory
DE69031865T2 (de) Ein SIMD-Prozessor als digitales Filter
CA1254659A (en) Programmed implementation of real-time multiresolution signal processing apparatus
US7595808B2 (en) Method and apparatus for updating a color look-up table
DE69030705T2 (de) Netzwerk zur Kommunikation mit dem übernächsten Nachbarn in Vektorprozessorsystemen und Verfahren
DE69028981T2 (de) Fernsehen mit verbesserter Auflösung
DE3888221T2 (de) Speichersystem für bemusterte Daten, zum Beispiel für ein Bildvergrösserungssystem in einem Fernsehempfänger.
DE69030706T2 (de) Schaltung zur kontinuierlichen Videosignalverarbeitung in einem synchronen Vektorprozessor
Chin et al. The Princeton Engine: A real-time video system simulator
US5408673A (en) Circuit for continuous processing of video signals in a synchronous vector processor and method of operating same
DE69433392T2 (de) Videodatenprozessor und Videosignaldatenverarbeitung
US5680600A (en) Electronic circuit for reducing controller memory requirements
US5105387A (en) Three transistor dual port dynamic random access memory gain cell
US5327541A (en) Global rotation of data in synchronous vector processor
DE3856124T2 (de) Serieller Videoprozessor und Verfahren
US5452425A (en) Sequential constant generator system for indicating the last data word by using the end of loop bit having opposite digital state than other data words
DE3486243T2 (de) Elektronischer Einzelbildspeicher mit Schnellsortierung und Verfahren zu seinem Betrieb.
DE69030712T2 (de) Befehlsgeneratorarchitektur für Videosignalprozessorsteuerung
DE69030704T2 (de) Signal-Pipelining im synchronen Vektorprozessor
DE3650069T2 (de) Datenprozessor.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee