-
GEBIET DER
ERFINDUNG
-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung
zum Laden gewünschter
Programmdaten in funktionale Schaltungen, die bestimmte Operationen
in Übereinstimmung mit
gelieferten Programmdaten ausführen.
-
HINTERGRUND
DER ERFINDUNG
-
In
Systemen, die mit diesem Typ einer funktionalen Schaltung oder funktionaler
Schaltungen versehen sind, wird die Implementierung verschiedenartiger
Betriebsarten oder Anwendungen möglich gemacht,
indem Programme oder Einstellwerte (im Folgenden Programmdaten genannt)
in funktionale Schaltungen geladen werden.
-
Dieser
Typ von herkömmlichem
System ist geeignet, verschiedene Typen oder viele Mengen dieser
Typen im Voraus in einem Speicher zu speichern (Programmdaten vorzubereiten),
wobei der Mikroprozessor in Reaktion auf eine angeforderte Anwendung
eine Menge von Programmdaten aus dem Speicher ausliest und die Programmdaten
in funktionale Schaltungen lädt.
Aus diesem Grund muss der Mikroprozessor Speicheradressen für alle Mengen von
Programmdaten im Voraus in einem Speicher halten.
-
Wenn
jedoch infolge von Systemversions-Upgrades und dergleichen Änderungen,
die die Datenlänge
der in dem Speicher gespeicherten Programmdaten betreffen, eintreten,
werden unvermeidlich die Adressen oder Speicherorte bzw. Speicherelemente
der in dem Speicher gespeicherten Programmdatenmengen verändert. In
einem solchen Fall muss die Software in Übereinstimmung mit solchen Änderungen,
die die Programmdaten-Speicheradressen auf Seiten des Mikroprozessors
betreffen, korrigiert werden, was äußerst lästig ist.
-
Außerdem führt in dem
System, in dem der oben genannte Mikroprozessor Programmdaten aus dem
Speicher ausliest und sie in funktionalen Schaltungen speichert,
der Mikroprozessor selbst eine Verarbeitung aus, während das
Steuerprogramm sukzessive aus dem Speicher ausgelesen und decodiert
wird, weshalb dies zeitaufwändig
ist und es schwierig ist, eine Programmspeicherung schnell auszuführen. Daher
war dies nicht für
Systeme gedacht, die nach ihrem Einschalten oder nach einem Betriebsartenwechsel
sofort arbeiten müssen.
-
Die
GB-Patentanmeldung Nummer
GB2276257 beschreibt
ein konfigurationssensitives Programmladen. Insbesondere beschreibt
sie ein Verfahren, das die Übertragung
von gespeicherter Firmware während
des Hochlaufens eines Computers ermöglicht und die Schritte umfasst,
in denen Konfigurationsinformationen gelesen werden, die in einer
Konfigurationstabelle in der ersten Speichervorrichtung gespeichert
sind, ausgewählte
Softwaremodule aus der ersten Speichervorrichtung in eine zweite
Speichervorrichtung übertragen
werden und die ausgewählten
Softwaremodule an ausgewählten Adressenbereichen
in der zweiten Speichervorrichtung gespeichert werden, und zwar
sämtliches
in Übereinstimmung
mit der Konfiguration.
-
Ausführungsformen
der vorliegenden Erfindung wenden sich wenigstens einigen der Probleme des
Standes der Technik zu und zielen darauf ab, ein Programmladeverfahren
und eine Programmladevorrichtung zu schaffen, die so beschaffen
sind, dass die Ladeverarbeitung von Programmdaten auch dann, wenn Änderungen
der Speicheradressen oder der Datenlänge der in dem Programmspeicher
gespeicherten Programmdaten stattfinden, ausgeführt wird, ohne Änderungen
der Software zu bedürfen.
-
Außerdem schafft
eine weitere Ausführungsform
der vorliegenden Erfindung ein Programmladeverfahren und eine Programmladevorrichtung,
die so beschaffen sind, dass die Ladeverarbeitung von Programmdaten
mit hoher Geschwindigkeit und Wirksamkeit ausgeführt wird.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Eine
Ausführungsform
der Erfindung umfasst ein Programmladeverfahren zum Laden gewünschter
Programmdaten in eine oder mehrere funktionale Schaltungen, die
bestimmte Operationen in Übereinstimmung
mit gelieferten Programmdaten ausführen, wobei das Verfahren umfasst:
einen
Schritt, in dem mehrere Mengen von Programmdaten gehalten werden,
indem jede Menge getrennt in bestimmten Speicherbereichen in einem Programmspeicher
zusammen mit Halteadressenzeigern, die die Speicheradressen jeder
Programmdatenmenge an vorgegebenen Speicheradressen in dem Programmspeicher
angeben, gespeichert wird,
einen Schritt, in dem Programmbezeichnungsinformationen,
die irgendeinem einzelnen Zeiger unter den Adressenzeigern entsprechen,
angegeben werden, um die gewünschte
Programmdatenmenge zu bezeichnen,
einen Schritt, in dem anhand
der Programmbezeichnungsinformationen die ihnen entsprechenden Adressenzeiger
ausgelesen werden und in dem die Speicheradressen der Programmdatenmengen,
die durch die Programmbezeichnungsinformationen bezeichnet sind,
in Übereinstimmung
mit den ausgelesenen Adressenzeigern berechnet werden; und
einen
Schritt, in dem die Programmdatenmengen aus den berechneten Speicheradressen
ausgelesen und an entsprechende funktionale Schaltungen übertragen
werden.
-
Die
Erfindung gemäß einer
weiteren Ausführungsform
ist jenes Programmladeverfahren, in dem Gruppen von Programmdaten
in jeder Menge an aufeinander folgenden Speicheradressen in den Speicherbereichen
des Programmspeichers gespeichert werden.
-
Die
Erfindung gemäß einer
weiteren Ausführungsform
ist jenes Programmladeverfahren, in dem Übertragungsziel-Identifizierungsinformationen,
die für
die Identifizierung jener der funktionalen Schaltungen verwendet
werden, die als Übertragungsziele dienen,
in einem bestimmten ersten Abschnitt jeder Gruppe von Programmdaten
enthalten sind.
-
Die
Erfindung gemäß einer
weiteren Ausführungsform
ist jenes Programmladeverfahren, in dem Übertragungsprogrammlängen-Informationen,
die für
die Darstellung der Länge
der Programmdaten verwendet werden, die an die als Übertragungsziele dienenden
funktionalen Schaltungen übertragen
werden sollen, in einem bestimmten zweiten Abschnitt jeder Gruppe
von Programmdaten enthalten sind.
-
Die
Erfindung gemäß einer
weiteren Ausführungsform
ist jenes Programmladeverfahren, in dem die Programmbezeichnungsinformationen
Informationen sind, die die Speicheradressen von ihnen entsprechenden
Zeigerinformationen darstellen.
-
Außerdem ist
eine weitere Ausführungsform eine
Programmladevorrichtung, die so betreibbar ist, dass sie gewünschte Programmdaten
in eine oder mehrere funktionale Schaltungen lädt, die so betreibbar sind,
dass sie bestimmte Operationen in Übereinstimmung mit gelieferten
Programmdaten ausführen,
wobei
die Programmladevorrichtung einen Programmspeicher (10)
besitzt, der so betreibbar ist, dass er mehrere Mengen von Programmdaten
hält, indem
sie in bestimmten Speicherbereichen gespeichert werden, und dass
er an vorgegebenen Speicheradressen Adressenzeiger hält, die
die Speicheradressen jeder Menge von Programmdaten angeben,
wobei
die Programmladevorrichtung Programmbezeichnungsmittel (14)
besitzt, die so betreibbar sind, dass sie Programmbezeichnungsinformationen
angeben, die irgendeinem einzelnen Zeiger unter den Adressenzeigern
entsprechen, um eine gewünschte Programmdatenmenge
zu bezeichnen,
wobei die Programmladevorrichtung einen Programmlader
(12) besitzt, der so betreibbar ist, dass er in Übereinstimmung
mit den Programmbezeichnungsinformationen die ihnen entsprechenden Adressenzeiger
ausliest und die Mengen von Programmdaten aus den Adressen ausliest,
die durch die ausgelesenen Adressenzeiger angegeben werden und dass
er die ausgelesene Menge von Programmdaten an entsprechende funktionale
Schaltungen überträgt.
-
Die
Erfindung gemäß einer
weiteren Ausführungsform
ist jene Programmladevorrichtung, in der Speicherzugriffszeit-Einstellungen,
die die eingestellte Zugriffszeit für den Programmspeicher repräsentieren,
an bestimmten Speicherplätzen
in dem Programmspeicher gespeichert sind, wobei der Programmlader
so beschaffen ist, dass er das Auslesen von Programmdaten aus dem
Programmspeicher gemäß einer
im Voraus festgelegten Niedergeschwindigkeits-Zugriffszeit beginnt
und das Lesen von Programmdaten aus dem Programmspeicher gemäß der Zugriffszeit
ausführt,
die durch die oben genannten Speicherzugriffszeit-Einstellungen
angegeben werden, nachdem er die Zugriffszeitdaten ausgelesen hat.
-
Die
Erfindung gemäß einer
weiteren Ausführungsform
ist jene Programmladevorrichtung, die so aufgebaut ist, dass eine
Gruppe von Programmdaten, die dem Programmlader entsprechen, in
dem Kopf jeder Menge von Programmdaten, die durch die oben genannten
Zeiger angegeben wird, gespeichert ist, wobei die Speicherzugriffszeit-Einstellungen
in der Gruppe von Programmdaten enthalten sind.
-
KURZBESCHREIBUNG
DER ZEICHNUNG
-
1 ist
ein Blockschaltplan, der eine Grundkonfiguration eines Systems zeigt,
das das Verfahren und die Vorrichtung für das Programmdatenladen der
vorliegenden Erfindung verwendet.
-
2 ist
eine Figur, die ein Beispiel einer Anordnung zeigt, die zum Speichern
in den Speicherbereichen des Programmspeichers (ROM) in dem System
gemäß der Ausführungsform
verwendet wird.
-
3 ist
eine Figur, die ein Beispiel einer Speicheranordnung und Inhalte
von Programmdatenmengen zeigt, die in dem Programmspeicher (ROM)
in dem System gemäß der Ausführungsform gespeichert
sind.
-
4 ist
ein Blockschaltplan, der eine Schaltungskonfiguration eines Programmladers
in dem System gemäß der Ausführungsform
zeigt.
-
5 ist
ein Ablaufplan, der zur Erläuterung der
Funktionsweise einer Steuereinheit eines Programmladers in dem System
gemäß der Ausführungsform
verwendet wird.
-
6 ist
ein Blockschaltplan, der zur Erläuterung
der Funktionsweise einer Steuereinheit eines Programmladers in dem
System gemäß der Ausführungsform
verwendet wird.
-
7 ist
ein Blockschaltplan, der eine Konfiguration einer Programmdatenladeeinheit
zeigt, die in funktionalen Schaltungen in dem System gemäß der Ausführungsform
vorgesehen ist.
-
8 ist
ein Blockschaltplan, der eine Konfiguration einer Speicherzugriffszeit-Umschalteeinheit zeigt,
die in einem Programmlader in dem System gemäß der Ausführungsform enthalten sein kann.
-
9 ist
ein Zeitdiagramm, das die Wellenformen der Betriebstaktsignale zeigt,
die in der Speicherzugriffszeit-Umschalteeinheit erhalten werden.
-
10 ist
ein Blockschaltplan, der die Schaltungskonfiguration eines Bildprozessors
als eines der spezifischen Anwendungsbeispiele des Systems gemäß der Ausführungsform
zeigt.
-
BESCHREIBUNG
DER AUSFÜHRUNGSFORMEN
-
Im
Folgenden werden unter Verweis auf die beigefügte Zeichnung Ausführungsformen
der Erfindung erläutert.
-
1 zeigt
die Grundkonfiguration eines Systems, das ein Programmladeverfahren
und eine Programmladevorrichtung gemäß der Ausführungsform der vorliegenden
Erfindung verwendet.
-
Dieses
System enthält
(n + 1) funktionale Schaltungen FC0, FC1, ..., FCn, wovon jede in Übereinstimmung
mit gelieferten Programmdaten (Programmen oder Einstellwerten) arbeitet.
Dann sind ein Speicher für
die Programmspeicherung, beispielsweise ein ROM (Festwertspeicher) 10,
ein Programmlader 12 und eine Programmbezeichnungseinheit,
beispielsweise ein Mikroprozessor (MPU) 14, für das Laden
von Programmdaten in wieder beschreibbarer Weise in diese Schaltungen
vorgesehen. Unter diesen kann der Mikroprozessor 14 als eine
für das
System im Wesentlichen externe Einheit fungieren.
-
Außerdem kann,
wie später
beschrieben wird, der Programmlader 12 einer der funktionalen Schaltungen
FC in dem System hinzugefügt
sein.
-
In
diesem System sind mehrere Betriebsarten oder Anwendungen vorbereitet,
wobei eine Menge von Programmdaten, die für alle funktionalen Schaltungen
FC0, FC1, ..., FCn vorgesehen ist, erzeugt wird oder für jede Betriebsart
gesetzt bzw. eingestellt wird. Mehrere Programmdatenmengen, die den
jeweiligen mehreren Betriebsarten entsprechen, sind zusammen in
dem ROM 10 gespeichert.
-
Der
Programmlader 12 ist mit dem ROM 10 über einen
Adressenbus 16, einen Datenbus 18 und die erforderlichen
Steuerleitungen (nicht gezeigt) verbunden. Außerdem ist er mit dem Mikroprozessor 14 über einen
geeigneten Bus oder eine Kommunikationsschnittstelle 15 verbunden.
-
Außerdem ist
der Programmlader 12 mit den funktionalen Schaltungen FC0,
FC1, ..., FCn über
einen gemeinsamen internen Adressen/Daten-Bus 20 und eine
erforderliche Steuerleitung wie etwa eine Bussignalidentifizierungsleitung 22,
die dazu verwendet wird, zu ermitteln, ob das Signal auf dem Bus 20 ein
Adressensignal oder ein Datensignal ist, oder eine Schreib-Steuerleitung 24,
die dazu verwendet wird, die Daten selektiv nur für eine der
funktionalen Schaltung FCi auf den internen Bus 20 zu schreiben und
dergleichen, verbunden.
-
2 zeigt
ein Beispiel einer Anordnung von Daten (Speicherabbild), wie sie
in dem Speicherbereich des ROM 10 gespeichert ist.
-
Falls
in dem ROM 10 beispielsweise die Daten 8 Bits und die Adressen
16 Bits lang sind, hat er eine Speicherkapazität von 8☐216 Bits.
In dem Beispiel von 2 ist ein (m + 1)-Anteil (wobei
m eine ganze Zahl ist von Adressenzeigern V0 – Vm in dem Speicherbereich
mit den Adressen 0 – V2m
+ 1 gespeichert.
-
Da
jeder Adressenzeiger VK (K = 0 – m)
eine Datenlänge
von 16 Bits besitzt, ist er hier in ein oberes Byte (8 Bits) VHK
und ein unteres Byte (8 Bits) VKL unterteilt und in zwei Adressen
geschrieben. Wenn m beispielsweise 255 ist, ist es möglich, 256 Adressenzeiger
in dem ROM 10 einzurichten, was bedeutet, dass bis zu 256
Mengen von Programmdaten darin gespeichert sein können.
-
In
Verbindung mit der oben beschriebenen Einstellung von Adressenzeigern
sind entsprechende Mengen von Programmdaten in Speicherorten, die
durch die Adressenzeiger in dem ROM 10 angegeben sind,
in der Weise gespeichert, dass eine erste Menge von Programmdaten
in einem bestimmten Speicherbereich, der die einem ersten Adressenzeiger
V0 entsprechende Adresse V0 als Start-Speicheradresse verwendet,
gespeichert ist, eine zweite Menge von Programmdaten in einem bestimmten Speicherbereich,
der die einem zweiten Adressenzeiger V1 entsprechende Adresse V1
als Start-Speicheradresse verwendet, gespeichert ist.
-
Bei
diesem Typ von Speichermanagementsystem können die Programmbezeichnungsinformationen,
die zum Bezeichnen von Programmdatenmengen verwendet werden, beispielsweise
Programmnummern PN, die entsprechenden Adressenzeiger bezeichnen.
In dieser Weise ist es möglich,
die Speicherorte der Ziel-Programmdaten anhand der bezeichneten
Adressenzeiger zu bestimmen.
-
3 zeigt
ein Beispiel einer Speicheranordnung und Dateninhalte einer in dem
ROM 10 gespeicherten Menge (der K-ten Menge) von Programmdaten.
-
Zuallererst
sind Ein-Byte-Daten DFC0, die zum Unterscheiden des funktionalen
Blocks FC (beispielsweise FC0), der als erstes Übertragungsziel dient, in einer Startadresse
VK – 1
gespeichert. Daten LK0, die durch Addieren von 2 zum Wert der Datenlänge (Bytenummer)
der Programmdaten, die an das erste Übertragungsziel übertragen
werden sollen, erhalten werden, sind als zwei Bytes (LK0H, LK0L)
in den zwei aufeinander folgenden Adressen VK – 1 + 1, VK – 1 + 2
gespeichert.
-
Als
Nächstes
sind 2-Byte-Daten AD0 (AD0H, AD0L), die die Start-Speicheradressen
der Register oder Speicher, in die Programmdaten geschrieben werden
sollen, in dem ersten Übertragungsziel
(funktionale Schaltung) zeigen, als Übertragungszieladressen in
der vierten und fünften
Adresse VK – 1
+ 3 und VK – 1
+ 4, die als Nächste
kommen, gespeichert.
-
Programmdaten,
die in das erste Übertragungsziel
(funktionale Schaltung) geladen werden sollen, sind in Adressen
in Ein-Byte-Einheiten Da(1), Da(2), ... über Adressen, die von der nächsten,
der sechsten, Adresse VK – 1
+ 5 bis zu der Adresse, die (Programmdatenlänge LK0☐2) entspricht,
gehen, gespeichert.
-
Wie
oben beschrieben worden ist, ist eine erste Gruppe von Programmdaten,
die der funktionalen Schaltung entspricht, die als erstes Übertragungsziel
dient, an aufeinander folgenden Speicheradressen (VK – 1, VK – 1 + 1,
VK – 1
+ 2, ...) in dem Startabschnitt einer K-ten Menge von Programmdaten
gespeichert.
-
Die
letzte Adresse der oben genannten ersten Gruppe von Programmdaten
ist VK – 1
+ LK0 + 3☐1. In dieser Formel entspricht der dritte Ausdruck, d.h.
die Konstante 3, den drei Adressen, die DFC0, LK0H, LK0L zugewiesen
sind.
-
Eine
zweite Gruppe von Programmdaten, die einer funktionalen Schaltung
entspricht, die als zweites Übertragungsziel
dient, ist in demselben Format wie die oben genannte erste Gruppe
ab der Adresse (VK – 1
+ LK0 + 3) nach dieser letzten Adresse (VK – 1 + LK0 + 3☐1) gespeichert.
Die Programmdatenlänge
der Programmdaten Db(1), Db(2), ..., die übertragen werden sollen, hängt von
den technischen Daten oder der Speicherkapazität des Programmdaten-Speichermittels
(Speicher oder Register usw.) an dem zweiten Übertragungsziel ab.
-
Ab
dem dritten Übertragungsziel,
sind entsprechende Gruppen von Programmdaten nacheinander und in
demselben Format wie jenes, das oben beschrieben worden ist, in
den Speicherbereichen des ROM 10 gespeichert. Danach sind
das Ende angebende Daten DFend, die zeigen, dass diese Menge (die
K-te Menge) von Programmdaten hier endet, in der nächsten Adresse,
die auf den Speicherort, an dem die dem letzten Übertragungsziel entsprechende
Gruppe von Programmdaten gespeichert ist, folgt, gespeichert.
-
4 zeigt
ein Beispiel einer Schaltungskonfiguration des Programmladers 12.
Der Programmlader 12 besteht aus einer Anzahl von Registern 30–36,
wo verschiedene Informationen oder Daten temporär eingegeben und gehalten werden,
einem Adressenumschalter 38 und einer Steuereinheit 40,
die verschiedene Einheiten in dem Lader und externe funktionale
Schaltungen und dergleichen steuert. In diesem Beispiel ist der
Programmlader 12 mit dem Mikroprozessor 14 über eine
I2C-Bus-(Inter IC-Bus)-Schnittstellenschaltung 42 verbunden.
-
5 zeigt
einen Ablaufplan, der die steuernde oder verarbeitende Operation
der Steuereinheit 40 in dem Programmlader 12 zeigt.
-
Im
Folgenden wird die Operation erläutert, die
ausgeführt
wird, wenn der Programmlader 12 die K-te Menge von Programmdaten
aus dem ROM 10 ausliest und in die funktionalen Schaltungen
des Systems lädt.
Außerdem
zeigt 6 die Verteilung von Daten oder zugeordneten Adressensignalen,
die über
verschiedene Wege übertragen
werden, und näher
dargelegte Schritte im Fall des Ladens der ersten Gruppe von Programmdaten
in der K-te Menge von Programmdaten in das erste Übertragungsziel, beispielsweise
die funktionale Schaltung FC0.
-
Zuallererst
wird von dem Mikroprozessor 14 unmittelbar nach dem Einschalten
des Systems oder unmittelbar nach dem Umschalten in einer andere Betriebsart
eine Programmnummer PNK – 1,
die die gewünschte
Menge (in diesem Beispiel die K-te Menge) von Programmdaten an den
Programmlader 12 geschickt.
-
Wenn
die I2C-Bus-Schnittstellenschaltung 42 die
Programmnummer PNK – 1
empfängt,
zusammen mit dem Übertragen
eines Handshake-Signals, das die Steu ereinheit 40 über dieses
Ereignis benachrichtigt, wird die empfangene Programmnummer PNK – 1 in das
Register 30 geladen. Hier wirkt das Signal HS als Schreibfreigabesignal
WE des Registers 30.
-
Wenn
die Steuereinheit 42 [sic; 40] das oben genannte Handshake-Signal
HS empfängt,
initialisiert sie jede Einheit in dem Programmlader 12.
Insbesondere, soweit der Adressenumschalter 38 betroffen
ist, kann der Ausgangsanschluss (ROM-Adresssen-Ausgangsanschluss)
auf den Eingangsanschluss auf Seiten des Registers 30 umgeschaltet
werden (Schritte S1, S2).
-
Wenn
die Programmnummer PNK – 1
in das Register 30 geladen ist, werden die Datenbits um eine
Stelle nach links verschoben und eine "0" in
die tiefste Bitstelle eingesetzt. Im Ergebnis repräsentieren
die Daten in dem Register 30 einen Wert, der zweimal so
groß wie
die Programmnummer PNK1 (2☐PNK – 1) ist.
-
Somit
werden Daten (2☐PNK – 1)
aus dem Register 30 als eine erste ROM-Adresse über den Schalter 38 an
einen Adressenbus 16 ausgegeben und Daten an dem durch
diese ROM-Adresse (2☐PNK – 1) bezeichneten Speicherort,
mit anderen Worten, das obere Byte V(K – 1H) des Adressenzeigers VK – 1, aus
dem ROM 10 an einen Datenbus 18 ausgelesen (Schritt
S2).
-
Das
aus dem ROM 10 gelesene hohe Byte V(K – 1H des Adressenzeigers VK – 1 wird
in das Register 32 des Programmladers 12 geladen.
-
Als
Nächstes
inkrementiert die Steuereinheit 40 die Inhalte des Registers 30 um
eins, was daraus 2☐PNK – 1 macht. Somit werden Daten
(2☐PNK – 1 +
1) aus dem Register 30 als eine zweite ROM-Adresse über den
Schalter 38 an den Adressenbus 16 ausgegeben und
Daten an dem durch diese ROM-Adresse (2☐PNK – 1 + 1)
bezeichneten Speicherort, mit anderen Worten, das untere Byte V(K – 1)L des
Adressenzeigers VK – 1,
aus dem ROM 10 an den Datenbus 18 ausgelesen (Schritt S4).
-
Das
aus dem ROM 10 gelesene untere Byte V(VK – 1)L des
Adressenzeigers VK – 1
wird in das Register 32 des Programmladers 12 geladen.
-
Zu
dieser Zeit wird ein 2-Byte-Adressenzeiger VK – 1 erhalten (Schritt S5),
indem das obere Byte V(K – 1)H,
das vorher geladen wurde, um 8 Bitstellen nach links verschoben
wird, mit anderen Worten, indem eine Multiplikation mit 256 ausgeführt wird,
und das untere Byte V(K – 1)L
in die Bitstellen darunter gesetzt (addiert wird. Dieser Adressenzeiger
VK – 1
ist eine Adresse, die die Start-Speicheradresse des Speicherorts,
an dem die K-te Menge von Programmdaten gespeichert ist, zeigt.
-
Zum
anderen schaltet die Steuereinheit 30 den Adressenumschalter
auf die Seite des Registers 32 um. Somit wird der Adressenzeiger
VK – 1
als eine dritte ROM-Adresse über
den Schalter 38 an den Adressenbus 16 ausgegeben
und werden Übertragungsziel-Identifizierungsdaten
DFC0, die die Startdaten der K-ten Menge von Programmdaten angeben,
mit anderen Worten, das erste Übertragungsziel,
aus dem ROM 10 ausgelesen (Schritt S6).
-
Die
aus dem ROM 10 gelesenen Übertragungsziel-Identifizierungsdaten
DFC0 werden in das Register 34 des Programmladers 12 geladen,
wobei die Steuereinheit 40 die funktionale Schaltung FC, die
als erstes Übertragungsziel
dient, anhand der Inhalte des Registers 34 erkennt und
das Schreibfreigabesignal WE bezüglich
dieser funktionalen Schaltung aktiviert.
-
Unmittelbar
nach dem Lesen aus dem ROM inkrementiert die Steuereinheit 40 die
Inhalte des Registers 32 um eins (Schritt S6). Daher wird
als Nächstes
die auf die Start-Speicheradresse VK – 1 folgende Adresse (VK – 1 + 1)
als ROM-Adresse aus dem Register 32 über den Schalter 38 an
den Adressenbus 16 ausgegeben und das obere Byte LK0H der
Programmdatenlänge
LK0 für
das erste Übertragungsziel
aus dem ROM 10 an den Datenbus 18 ausgelesen (Schritt
S8). Unmittelbar danach inkrementiert die Steuereinheit 40 den
Wert des Registers 32 um eins.
-
Außerdem wird
das aus dem ROM 10 ausgelesene oben genannte obere Byte
LK0H der Programmdatenlänge
LK0 in das Register 36 des Programmladers 12 geladen.
-
Als
Nächstes
wird eine Adresse (VK – 1
+ 2) über
den Schalter 38 aus dem Register 32 an den Adressenbus 16 ausgegeben
und das untere Byte LK0L der Programmdatenlänge LK0 für das erste Übertragungsziel
aus dem ROM 10 ausgelesen (Schritt S9). Unmittelbar danach
inkrementiert die Steuereinheit 40 den Wert des Registers 32 um
eins.
-
Das
untere Byte LK0L der Programmdatenlänge LK0, das ausgelesen worden
ist, wird ebenfalls in das Register 36 geladen. Zu dieser
Zeit wird eine 2-Byte-Programmdatenlänge LK0
erhalten (Schritt S10), indem das obere Byte LK0H, das zuvor geladen
wurde, um 8 Ziffernstellen nach links verschoben wird, mit anderen
Worten, indem eine Multiplikation mit 256 ausgeführt wird, und dann das untere
Byte LK0L in die Bitstellen darunter gesetzt (addiert) wird. Die
Steuereinheit 40 kann die Inhalte des Registers 36 lesen.
-
Als
Nächstes
wird eine Adresse (VK – 1
+ 3) über
den Schalter 38 aus dem Register 32 an den Adressenbus 16 ausgegeben.
Nach dem Empfang dieser Adresse wird ein oberes Byte AD0H der "Übertragungszieladresse" AD0, die das Anfangs-Speicherziel
der Programmdaten in der funktionalen Schaltung, die als erstes Übertragungsziel
dient, zeigt, aus dem ROM 10 über den Datenbus 18 ausgelesen
(Schritt S12).
-
Das über den
Datenbus 18 aus dem ROM 10 gelesene obere Byte
AD0H der Übertragungszieladresse
AD0 wird direkt an den internen Bus 20 übertragen und über diesen
Bus 20 in die zum Schreiben freigegebene funktionale Schaltung
FC, die als erstes Übertragungsziel
dient, geladen. Zu dieser Zeit setzt die Steuereinheit 40 Signalidentifizierungsinformationen
ADT an einer Signalidentifizierungsleitung 22 auf einen
logischen Wert, der einen Adressenübertragungsmodus angibt, beispielsweise
auf Hochpegel. Außerdem
inkrementiert die Steuereinheit 40 die Inhalte des Registers 32 um
eins und aktualisiert die ROM-Leseadresse um eins, zusammen mit
dem Inkrementieren der Inhalte des Registers 36 um eins und
dem Verkleinern der verbleibenden Programmdatenlänge LK um eins (Schritt S12).
-
Im
nächsten
Lesezyklus wird eine Adresse (VK – 1 + 4) über den Schalter 38 aus
dem Register 32 an den Adressenbus 16 ausgegeben
und ein unteres Byte AD0L der Übertragungszieladresse
AD0 aus dem ROM 10 gelesen (Schritte S11, S12). Dann wird
in derselben Weise wie in dem vorhergehenden Zyklus das unter Byte
AD0L der Übertragungszieladresse
AD0, das ausgelesen worden ist, über
den internen Bus 20 in die funktionale Schaltung FC, die als
erstes Übertragungsziel
dient, geladen.
-
Im
nächsten
Lesezyklus wird eine Adresse (VK – 1 + 5) über den Schalter 38 aus
dem Register 32 an den Adressenbus 16 ausgegeben
und nach dem Empfang dieser Adresse ein Anfangs-Ein-Byte-DA(1) der
ersten Gruppe von Programmdaten, die dem ersten Übertragungsziel entspricht,
aus dem ROM 10 ausgelesen.
-
Dieses
einzelne Byte von Programmdaten Da1 wird über den internen Bus 20 in
die funktionale Schaltung FC, die als erstes Übertragungsziel dient, geladen.
Zu dieser Zeit setzt die Steuereinheit 40 die Signalunterscheidungsinformationen
ADT auf einen logischen Wert, der den Datenübertragungsmodus angibt, beispielsweise
auf Tiefpegel. Auf dieser Grundlage wird das einzelne Byte von Programmdaten
Da(1) an der Speicheradresse, die durch die zuvor geladene Übertragungszieladresse
AD0 angegeben wird, in die funktionale Schaltung geladen.
-
Danach
werden Lesezyklen, die den oben beschriebenen gleichen, wiederholt,
derart, dass während
jedes Zyklus ein Byte der ersten Gruppe von Programmdaten, die dem
ersten Übertragungsziel
entsprechen, aus dem ROM 10 ausgelesen wird, an die funktionale
Schaltung FC, die als erstes Übertragungsziel
dient, über
den internen Bus 20 übertragen
wird und an dem entsprechenden Speicherort in die funktionale Schaltung
geladen wird.
-
Jedes
Mal, wenn der oben beschriebene Lesezyklus ausgeführt wird,
inkrementiert die Steuereinheit 40 den Adressenwert in
dem Register 32 um eins, während sie die verbleibende
Programmdatenlänge
LK in dem Register 36 um eins dekrementiert.
-
Dann,
wenn LK in dem Register 36 0 erreicht, wird erkannt, dass
die Übertragung
der Programmdaten, die dem ersten Übertragungsziel entsprechen,
abgeschlossen ist, werden die im nächsten Zyklus aus dem ROM 10 ausgelesenen
Daten als Übertragungsziel-Unterscheidungsdaten
DFC1, die zum Identifizieren des nächsten (des zweiten) Übertragungsziels
verwendet werden, bestimmt und werden diese Daten DFC1 in das Register 34 gelegt (Schritte
S11, S6).
-
Eine
Operation, die zu der oben beschriebenen Operation, die für das erste Übertragungsziel verwendet
wurde, gleich ist, wird danach wiederholt (Schritte S6☐S7☐S8☐S9☐S10☐S11☐S12
..... ☐S11☐S6). Danach, wenn alle erforderlichen
Programmdaten an das letzte Übertragungsziel übertragen
worden sind und das Ende angebende Daten DFend aus der unmittelbar
folgenden ROM-Adresse gelesen sind, endet an diesem Punkt die gesamte Verarbeitung
für die
K-te Menge von Programmdaten (Schritte S7, S1).
-
7 zeigt
ein Beispiel einer Schaltungskonfiguration, die zum Laden von Programmdaten von
dem Programmlader 12 in die funktionalen Schaltung FC verwendet
wird.
-
Die
funktionalen Schaltungen FC sind mit einer Datenempfangseinheit 52 und
einer Adressenempfangseinheit 50 versehen, die Daten- bzw. Adressensignale
von dem internen Bus 20 empfangen.
-
Die
Adressenempfangseinheit 50 enthält ein Adressenregister 50a und
speichert Adressen, die zum Adressieren in Byteeinheiten in dem
Adressenregister 50a in dem Speicherbereich eines oder
mehrerer Register Reg0, Reg1, ..., Reg M oder Speicher, die Programmdaten
in den funktionalen Schaltungen FC halten, verwendet werden.
-
Die
Datenempfangseinheit 52 ist aus einem Datenpuffer gebildet,
der empfangene Daten temporär
hält, wobei
seine Datenausgangsanschlüsse
mit den Dateneingangsanschlüssen
der Speicher oder Register Reg0, Reg1, ..., Reg M verbunden sind.
-
Während der
Programmdatenzuweisung durch den Programmlader 12, wie
sie oben beschrieben worden ist, wird zuallererst ein Adressenübertragungsmodus
angegeben, indem der Pegel der Signalidentifizierungsinformationen
ADT an der Signalidentifizierungsleitung 22 auf Hochpegel
verändert
wird, und empfängt
die Adressenempfangseinheit 50 die in diesem Modus übertragenen
Anfangs-2-Byte-Daten
ADH, ADL als "Übertragungszieladresse" AD. Die Adressenempfangseinheit 50 speichert
die empfangene Übertragungszieladresse AD
in dem Adressenregister 50a.
-
Als
Nächstes
werden die Signalidentifizierungsinformationen ADT auf Tiefpegel
verändert
und danach von der Datenempfangseinheit 52 über den internen
Bus 20 gesendete Daten empfangen. Zu dieser Zeit gibt die
Adressenempfangseinheit 50 das Schreiben der Speicheradressen
oder Registeradressen, die durch die in dem Adressenregister 50a gespeicherten
Adressen bezeichnet sind, frei. Somit werden die in der Datenempfangseinheit 52 empfangenen
Daten an die ausgewählten
Adressen geschrieben. Unmittelbar danach inkrementiert die Steuereinheit 50 [sic]
die Inhalte des Adressenregisters 50a um eins und aktualisiert
einen Schreibadressenwert.
-
Somit
werden Daten in Einheiten von 1 Byte, die von dem Programmlader 12 übertragen
werden, über
die Datenempfangseinheit 52 in die Speicheradressen der
entsprechenden Register oder Speicher geladen.
-
Außerdem ist
die Musterkonfiguration von 7 lediglich
ein Beispiel: es sind verschiedene Modifikationen erlaubt. Insbesondere
können
verschiedene Schaltungskonfigurationen des Standes der Technik verwendet
werden, um die gewünschten Register-
oder Speicheradressen in den funktionalen Schaltungen FC zu adressieren
oder auszuwählen.
-
Wie
oben beschrieben worden ist, sind in dem System gemäß der vorliegenden
Ausführungsform
zusammen mit dem Speichern und Halten mehrerer Mengen von Programmdaten,
die mehreren Betriebsarten bzw. Anwendungen in bestimmten Speicherbereichen
des ROM 10 entsprechen, getrennt für jede Menge Adressenzeiger,
die die Speicheradressen jeder Menge von Programmdaten angeben,
an vorgegebenen Speicheradressen in dem ROM 10 gespeichert,
wobei dann, wenn von einem externen Mikroprozessor 14 eine
Programmnummer PN, die irgendeinem der Adressenzeiger entspricht, geliefert
wird, um die gewünschte
Gruppe von Programmdaten zu bezeichnen, der Programmlader 12 anhand
der Programmnummer PN den entsprechenden Adressenzeiger aus dem
ROM 10 liest und anhand des Adressenzeigers den Speicherort
der Zielmenge von Programmdaten bestimmt.
-
Daher
kann der Mikroprozessor 14 lediglich die Programmnummern
PN, die den Betriebsarten entsprechen, verarbeiten. Falls die Speicherorte
der in dem ROM 10 gespeicherten Programmdatenmengen verändert werden,
sind die Elemente, die zusammen mit ihnen verändert werden müssen, nur
die Werte der Adressenzeiger in dem ROM 10 und erübrigen sich Änderungen
oder Modifikationen außerhalb
des ROM 10. Insbesondere müssen keinen Änderungen
der Software des Mikroprozessors 14 ausgeführt werden.
-
Da
in dem System gemäß der vorliegenden Ausführungsform
das Lesen von Programmdaten aus dem ROM 10 und ihre Übertragung
an verschiedene funktionale Schaltungen nicht durch einen Mikroprozessor 14,
sondern durch einen Programmlader 12, der lediglich aus
Hardwareschaltungen gebildet sein kann, ausgeführt wird, kann das Laden außerdem mit
hoher Geschwindigkeit unter Verwendung einer minimalen Anzahl von
Schritten ausgeführt
werden.
-
Nebenbei
bemerkt ist es, wie oben beschrieben wurde, möglich, den Programmlader 12 einer
der funktionalen Schaltungen FC in diesem System hinzuzufügen. Dazu
kann eine Schaltung wie etwa jene, die in 7 gezeigt
ist, in der Steuereinheit 40 vorgesehen sein. Die Steuereinheit 40 kann
die Eigenschaften der oben erwähnten
Programmladeoperation in programmierbarer Weise und in Übereinstimmung
mit dem in ein integriertes Einstellwertregister Reg geladenen Einstellwert
verändern.
-
Als
passendes Beispiel dieses System gibt es ein Verfahren zum Steuern
der Zugriffszeit (Geschwindigkeit) des ROM-Auslesens in programmierbarer
Weise, das im Folgenden erläutert
wird.
-
Unter
handelsüblichen
ROMs gibt es Speicher mit einer kurzen Zugriffszeit (schnelle Speicher) und
mit einer langen Zugriffszeit (langsame Speicher), die sich in dieser
Hinsicht stark unterscheiden. In dem System gemäß der vorliegenden Ausführungsform
wird ein ROM 10, der in einfacher Weise eingebaut und ausgebaut
werden kann, bevorzugt, wobei in diesem Fall entweder ein langsamer
ROM oder ein sehr schneller ROM angeschlossen sein kann. Um unter
Verwendung einer gleichmäßigen Zugriffszeit
auf alle ROMs zugreifen zu können,
ist eine Beschränkung
auf die langsamste Geschwindigkeit in den technischen Daten geboten.
Jedoch bedeutet dies das Ausführen
eines Speicherzugriffs bei Geschwindigkeiten, die weitaus langsamer
sind als die spezifizierte Geschwindigkeit im Fall des Anschließens eines
sehr schnellen ROM, was zu einem verkleinerten Wirkungsgrad der
Programmdatenladeverarbeitung führt.
-
Somit
sind in einer Ausführungsform
der vorliegenden Erfindung zusammen mit dem Hinzufügen eines
Programmladers 12 zu einer der funktionalen Schaltungen
in dem System Daten, die die bei diesem ROM festgelegte spezifizierte
Zugriffszeit repräsentieren,
in der Programmdatengruppe, die dem Programmlader 12 entspricht,
unter den in dem ROM 10 gespeicherten Programmdatenmengen
enthalten. Dann wird die langsamste Zugriffszeit als Anfangswert
der ROM-Zugriffszeit
in der Steuereinheit 40 des Programmladers 12 voreingestellt.
Außerdem
sollte der Programmlader 12 auf das erste Übertragungsziel
voreingestellt sein.
-
Wenn
der Programmlader 12 von dem Mikroprozessor 14 eine
Programmnummer PN empfängt, beginnt
das Auslesen von Programmdaten aus dem ROM 10 unter Verwendung
der oben genannten voreingestellten, langsamsten Zugriffszeit.
-
In
dem oben beschriebenen Beispiel wird der Speicherzugriff von dem
Auslesen des Adressenzeigers bis wenigstens dem Auslesen der Übertragungszieladresse
AD unter Verwendung der voreingestellten, langsamsten Zugriffszeit
ausgeführt.
Daher kann die Zugriffsgeschwindigkeit des Programmladers 12 unabhängig davon,
welche spezifizierte Zugriffszeit der ROM 10 besitzt, nicht
so hoch sein, dass ein Auslesen unmöglich gemacht wird.
-
Nachdem
der Programmlader 12 Daten hinsichtlich der Standard-Zugriffszeit
für diesen
ROM aus dem ROM 10 ausgelesen und sie in sein eigenes Einstellwertregister
geladen hat, wird die Zugriffsgeschwindigkeit auf die Standard-Zugriffszeit verändert und
die Ladeverarbeitung dieser Gruppe von Programmdaten fortgesetzt.
-
Wenn
der ROM 10 ein sehr schneller ROM ist, der ab dem Moment
des Schaltens startet, wird daher das Lesen von Programmdaten unter
Verwendung des sehr schnellen Speicherzugriffs ausgeführt, was
zu einer bemerkenswerten Verringerung der für die Ladeverarbeitung erforderlichen
Gesamtzeit führt.
Außerdem
wird dann, wenn der ROM 10 ein Speicher mittlerer Geschwindigkeit
ist, das Auslesen unter Verwendung des Speicherzugriffs mit mittlerer Geschwindigkeit
ausgeführt,
wodurch das Erreichen einer wesentlichen Verringerung der Gesamt-Ladeverarbeitungszeit
möglich
wird.
-
Somit
kann unabhängig
von der spezifizierten Zugriffszeit des als ROM 10 verwendeten
ROM ein Speicherzugriff in völlig
zuverlässiger
Weise unter Verwendung einer Zugriffszeit, die mit der spezifizierten
Geschwindigkeit dieses ROM übereinstimmt, ausgeführt werden.
-
Um
die oben beschriebenen Veränderung der
Zugriffsgeschwindigkeit in dem Programmlader 12 vorzunehmen,
können
in der Steuereinheit 40 ein programmierbarer Zähler 62 und
ein Einstellwertregister 60 wie etwa jene, die in 8 gezeigt
sind, vorgesehen sein. Die oben beschriebenen Standard-Zugriffszeitdaten
Dt des ROM 10 werden in ein bestimmtes Feld FD des Einstellwertregisters 60, beispielsweise
als Vier-Bit-Daten (d3, d2, d1, d0), geladen und als Einstellwert
N an den Programm-Eingangsanschluss des programmierbaren Zählers 82 geführt.
-
Der
programmierbare Zähler 62 empfängt eine
Eingabe eines Referenztaktgebers CK, die der schnellsten Zugriffszeit
entspricht, und arbeitet als Zähler,
der den Referenztakt CK0 durch (16-N) bezüglich des über den Programm-Eingangsanschluss empfangenen
Einstellwerts N teilt. Jede Einheit in dem Programmlader, insbesondere
die Steuereinheit 40, arbeitet mit einer Taktgeschwindigkeit
SCKN, die von dem programmierbaren Zähler 62 ausgegeben wird.
-
Zum
Zeitpunkt, zu dem das ROM-Auslesen beginnt, ist in dem Feld FD des
Einstellwertregisters 60 ein Anfangswert "0" voreingestellt, so dass (d3, d2, d1,
d0) (0, 0, 0, 0) ist und ein Einstellwert "0" an den
Programm-Eingangsanschluss des programmierbaren Zählers 62 geführt wird.
Somit arbeitet der programmierbare Zähler 62 als 16-Bit-Zähler, wobei er
einen Takt SCK0 mit einer Geschwindigkeit von 1/16 des Referenztakts
CK ausgibt. Daher greift der Programmlader 12 unter Verwendung
einer Zugriffszeit (von beispielsweise 500 ns), die diesem langsamsten
Takt SCK0 entspricht, auf den ROM 10 zu.
-
Wie
oben beschrieben worden ist, werden Standard-Zugriffzeitdaten Dt
in das Feld FD des Einstellwertregisters (60) des ROM 10 geladen,
wobei beispielsweise dann, wenn dieser Wert "15" ist,
ein Einstellwert "15" an den Programm-Eingangsanschluss
des programmierbaren Zählers 62 geführt wird
und ein Takt SCK15 mit der gleichen Geschwindigkeit wie der Referenztakt
CK von dem Ausgangsanschluss des programmierbaren Zählers 62 ausgegeben
wird. Somit greift der Programmlader 12 unter Verwendung
einer Zugriffszeit (von beispielsweise 500 ns), die diesem schnellsten
Takt SCK0 entspricht, auf den ROM 10 zu.
-
10 zeigt
den Schaltplan eines Bildprozessors als Beispiel einer spezifischen
Anwendung eines auf dieser Ausführungsform
basierenden Systems.
-
Der
Bildprozessor enthält
eine Eingabeeinheit 70, die eine Eingabe aus digitalen
Videosignalen VS von außen
als Bilddaten, die verarbeitet werden sollen, annimmt, wobei ein
SVP (Scan-line-Videoprozessor) Bilddaten in Abtastlinien einheiten
empfängt, sie
verarbeitet und die Ergebnisse ausgibt, wobei ein Bildspeicher 74 Bilddaten
in Abtastlinieneinheiten schreibt und liest, wobei eine Ausgabeeinheit 76 Bilddaten
nach der Verarbeitung nach außen
ausgibt und wobei ein Datenbus 78 die Eingabeeinheit 70,
den SVP 72, den Bildspeicher 74 und die Ausgabeeinheit 76 verbindet.
-
Um
dem SVO 72 das Arbeiten als digitaler SIMD-Signalprozessor
(SIMD = Single-Instruction-Multiple-Data) zu ermöglichen, sind in diesem Bildprozessor
ein Befehlsspeicher 80, der aus einem RAM gebildet ist,
der Programme enthält,
die für
den SVP 72 verwendet werden, und eine Befehlserzeugungsschaltung
(IG) 82, die Befehle von dem Befehlsspeicher einzeln erhält und Mikrobefehle
und andere Steuersignale, die den Befehlen entsprechen, an den SVP 72 liefert,
vorgesehen.
-
Ferner
ist in dem Bildprozessor auch eine Taktregelungseinheit (TCU) 84,
die die erforderlichen Taktregelungssignale für die Eingabeeinheit 70,
den SVP 72, den Bildspeicher 74, die Ausgabeeinheit 76 und
die IG 82 liefert, vorgesehen.
-
Die
Eingabeeinheit 70, die digitalen Signalprozessoreinheiten 72, 80, 82,
der Bildspeicher 74, die Ausgabeeinheit 76 und
die TCU 84 in diesem Bildprozessor arbeiten in Übereinstimmung
mit den jeweiligen gelieferten Programmdaten, die den funktionalen
Schaltungen FG0, FG1, ..., FGn von 1 entsprechen.
-
Dann
sind außerdem
ein Programmlader 12 und eine I2C-Schnittstellenschaltung 42 enthalten, die
zum Verteilen der gewünschten
Programmdaten von dem ROM 10 über einen internen Bus 20 an
die Programmdaten-Halteeinheiten (die Speicher, die Register und
solche innerhalb der Einheiten des Bildprozessors, nämlich die
Eingabeeinheit 70, die digitalen SIMD-Signalprozessoreinheiten 72, 80, 82,
den Bildspeicher 74, die Ausgabeeinheit 76 und
die IG 82) verwendet werden. Außerdem ist ein Taktgeber, nicht
gezeigt, der beispielsweise aus einer PLL-Schaltung besteht und
dafür verwendet
wird, die erforderlichen Taktimpulse an die Einheiten in dem Prozessor
zu liefern, enthalten.
-
Der
SVP 12 besitzt eine Dreischichtenstruktur, die aus einem
Dateneingaberegister (DIR) 86, einer Verarbeitungselementeinheit
(Prozessoreinheit) 88 und einem Datenausgaberegister (DOR) 90 besteht.
-
Das
DIR 86 arbeitet in Übereinstimmung
mit Adressen (ADRESS), die von der IG 82 geliefert werden,
dem Takt, der von dem Taktgeber geliefert wird, und den Taktregelungssignalen,
die von der TCU 84 geliefert werden, wobei es die Eingabe
von Bilddaten D1–DN
für maximal
drei Kanäle
(beispielsweise 48 Bits) in Abtastlinieneinheiten wiederholt ausführt.
-
Die
Prozessoreinheit 88 ist durch paralleles Anordnen (Parallelschalten)
von Verarbeitungselementen PE1–PEn,
deren Anzahl gleich der Anzahl von Pixeln N in einer horizontalen
Abtastlinie (beispielsweise 864) ist, aufgebaut. Die Verarbeitungselemente
PE1–PEn
arbeiten parallel in Übereinstimmung
mit Adressen (ADDRESS) und Mikrobefehlen (MICROINSTRUCTION) von
der IG 82 und Taktimpulsen von dem Taktgeber, wobei sie
für jedes
entsprechende Stück
von Bilddaten D1, D2, ..., DN innerhalb einer Horizontalabtastperiode
dieselben Bildverarbeitungsberechnungen ausführen.
-
Das
DOR 90 arbeitet in Übereinstimmung
mit Adressen (ADRESS), die von der IG 82 geliefert werden,
Taktimpulsen, der von dem Taktgeber geliefert werden, und den Regelungssignalen,
die von der TCU 84 geliefert werden, wobei es die Daten,
die das Ergebnis der arithmetischen Verarbeitung durch die Verarbeitungselemente
PE1–PEn
sind, für
jede einzelne Horizontalabtastperiode kombiniert und in Form von
Bilddaten D1'–DN', die eine horizontale
Abtastlinie bilden, an maximal drei Kanäle ausgibt.
-
Die
an das DIR 86, die Prozessoreinheit 88 und das
DOR 90 gelieferten Takte können zueinander asynchron sein.
Außerdem
werden die Datenübertragung
von dem DIR 86 an die Prozessoreinheit 88 und
die Datenübertragung
von der Prozessoreinheit 88 an das DOR 90 innerhalb
jeweiliger Horizontalaustastungsperioden ausgeführt.
-
In
dieser Weise werden die Eingabe von Daten für eine horizontale Abtastlinie,
ihre parallele arithmetische Verarbeitung und die Datenausgabe durch
das DIR 86, die Prozessoreinheit 88 und das DOR 90 unter
dem Pipeline-System in einer asynchronen, parallelen Weise ausgeführt, womit
eine Echtzeit-Bildverarbeitung ausgeführt wird.
-
Außerdem werden
die gewünschten
Programmdaten (Befehle) von dem Programmlader 12 über einen
internen Bus 20 in den Befehlsspeicher 80 der
digitalen SIMD-Signalprozessoreinheit geladen.
-
Der
Bildspeicher 74, der einen SDRA (Synchroner Direktzugriffsspeicher)
als sehr schnellen Speicher, der Bilddaten temporär speichert,
enthält, enthält außerdem eine
einzige Schnittstelleneinheit (SDRAM-Schnittstelleneinheit), die
eine Anzahl von Eingangs-/Ausgangsschnittstellen zum Ausführen von
Daten-Schreib-/und-Leseoperationen
in paralleler und unabhängiger
Weise umfasst.
-
Die
Steuereinheit dieser SDRAM-Schnittstelleneinheit enthält ein Einstellwertregister
und übt eine
Steuerung des Speicherzugriffs auf den SDRAM sowie eine Steuerung
des Schreibens in die Eingangs- und Ausgangspuffer und des Lesens
aus denselben in Übereinstimmung
mit den Taktsteuersignalen von der TCU 84 und den in dieses
Register von dem Programmlader 12 geladenen Daten aus.
-
Die
TCU 84 enthält
einen Programmspeicher, einen sequenziellen Speicher und dergleichen, wobei
sie Programmdaten von dem Programmlader 12 in diesen Speichern
speichert. Dann werden auf der Grundlage dieser gespeicherten Programmdaten Taktsteuersignale,
die für
die verschiedenen Einheiten des Systems erforderlich sind, synchron
mit dem Pixeltakt, Horizontalsynchronisierungssignalen und Vertikalsynchronisierungssignalen,
die aus dem eingegebenen Bildsignal extrahiert werden, geliefert.
-
Da
in diesem Bildprozessor die digitalen SIMD-Bildprozessoreinheiten
(insbesondere der SVP 72) und der Bildspeicher 74,
der Schreib- und Leseoperationen in paralleler und unabhängiger Weise
ausführen
kann, über
einen Datenbus 78 miteinander verbunden sind und jede Einheit
in dem Prozessor (funktionale Schal tungen) in programmierbarer Weise
und in Übereinstimmung
mit den von dem Programmlader 12 geladenen Daten betrieben
wird, ermöglicht
eine Schaltungskonfiguration kleinen Maßstabs das Implementieren einer
hochwertigen und mannigfaltigen Bildverarbeitung.
-
Obwohl
in der oben beschriebenen Ausführungsform
ein ROM als Programmspeicher zum Speichern von Programmdaten in
dem System der vorliegenden Erfindung verwendet wurde, kann stattdessen
selbstverständlich
ein RAM (Direktzugriffsspeicher) verwendet werden. Außerdem können die Einheitsdatenlänge, die
Speicherpositionen oder Speicherorte der verschiedenen Daten (Adressenzeiger,
Programmdaten) und dergleichen, die in einem solchen Programmspeicher
gespeichert sind, frei gewählt
werden. Alle Systeme, die im Stand der Technik bekannt sind, können als
Verfahren zum Übertragen
von aus dem Programmspeicher gelesenen Programmdaten an die funktionalen
Schaltungen verwendet werden.
-
Da
in der oben beschriebenen Ausführungsform
Programmnummern, die die Speicheradressen der Adressenzeiger direkt
repräsentieren,
als Programmidentifizierungsinformationen verwendet wurden, kann
auf die entsprechenden Adressenzeiger ohne weiteres durch Ausführen einer
einfachen Datenoperation verwiesen werden. Falls jedoch der Programmlader
mit den notwendigen Decodierfunktionen ausgestattet ist, ist es
möglich,
anstelle der Programmnummern (Adressenwerte) geeignete Codes als
Programmbezeichnungsinformationen zu verwenden. Außerdem können Programmbezeichnungsinformationen,
obwohl sie in der oben beschriebenen Ausführungsform von dem Mikroprozessor 14 an
den Programmlader geliefert wurden, von irgendeiner Schaltung geliefert
werden.
-
Außerdem repräsentierten
die Adressenzeiger in der oben beschriebenen Ausführungsform
direkt die Speicheradressen der entsprechenden Mengen von Programmdaten.
Jedoch ist ebenso ein indirektes Verfahren möglich, wobei die Speicheradressen
der entsprechenden Mengen von Programmdaten durch Ausführen einer
bestimmten arithmetischen Verarbeitung an den Adressenzeigern ermittelt werden
können.
-
Wie
oben beschrieben worden ist, sind das Verfahren und die Vorrichtung
zum Programmdatenladen der vorliegenden Erfindung so aufgebaut,
dass neben dem Speichern mehrerer Mengen von Programmdaten getrennt
für jede
Menge in bestimmten Speicherbereichen eines Programmspeichers Adressenzeiger,
die die Speicheradressen jeder Menge von Programmdaten angeben,
an vorgegebenen Speicheradressen in dem Programmspeicher gespeichert
sind, wobei dann, wenn Programmbezeichnungsinformationen, die irgendeinem
einzelnen Adressenzeiger entsprechen, angegeben werden, um die gewünschte Menge
von Programmdaten durch die Programmbezeichnungsmittel zu bezeichnen,
der Programmlader anhand der Programmbezeichnungsinformationen die
entsprechenden Adressenzeiger aus dem Programmspeicher ausliest
und die Speicherorte der Zielmengen von Programmdaten auf der Grundlage
der Adressenzeiger berechnet werden. Somit erübrigt sich auch dann, wenn
die Datenlänge
und die Speicheradressen der in dem Programmspeicher gespeicherten
Programmdaten verändert
werden, eine Softwaremodifikation, wobei zudem die Ladeverarbeitung
von Programmdaten sehr schnell und wirksam ausgeführt werden
kann.
-
IN DER ZEICHNUNG
GEZEIGTE BEZUGSZEICHEN
-
In
den Figuren sind 10 ein ROM (Programmspeicher), 12 ein
Programmlader, 14 ein Mikroprozessor, 16 ein Adressenbus, 18 ein
Datenbus, 20 ein interner Bus, 22 eine Bus-Signalidentifizierungsleitung, 24 eine
Schreib-Steuerleitung, FC0, FC1, ..., FCn funktionale Schaltungen, 30, 32, 34, 36 Register, 36 ein
Adressenumschalter und 40 eine Steuereinheit.